亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

蟲蟲首頁(yè)| 資源下載| 資源專輯| 精品軟件
登錄| 注冊(cè)

功能指令應(yīng)用詳解

  • at91rm9200啟動(dòng)過程教程

    at91rm9200啟動(dòng)過程教程 系統(tǒng)上電,檢測(cè)BMS,選擇系統(tǒng)的啟動(dòng)方式,如果BMS為高電平,則系統(tǒng)從片內(nèi)ROM啟動(dòng)。AT91RM9200的ROM上電后被映射到了0x0和0x100000處,在這兩個(gè)地址處都可以訪問到ROM。由于9200的ROM中固化了一個(gè)BOOTLOAER程序。所以PC從0X0處開始執(zhí)行這個(gè)BOOTLOAER(準(zhǔn)確的說應(yīng)該是一級(jí)BOOTLOADER)。這個(gè)BOOTLOER依次完成以下步驟: 1、PLL SETUP,設(shè)置PLLB產(chǎn)生48M時(shí)鐘頻率提供給USB DEVICE。同時(shí)DEBUG USART也被初始化為48M的時(shí)鐘頻率; 2、相應(yīng)模式下的堆棧設(shè)置; 3、檢測(cè)主時(shí)鐘源(Main oscillator); 4、中斷控制器(AIC)的設(shè)置; 5、C 變量的初始化; 6、跳到主函數(shù)。 完成以上步驟后,我們可以認(rèn)為BOOT過程結(jié)束,接下來的就是LOADER的過程,或者也可以認(rèn)為是裝載二級(jí)BOOTLOER。AT91RM9200按照DATAFLASH、EEPROM、連接在外部總線上的8位并行FLASH的順序依次來找合法的BOOT程序。所謂合法的指的是在這些存儲(chǔ)設(shè)備的開始地址處連續(xù)的存放的32個(gè)字節(jié),也就是8條指令必須是跳轉(zhuǎn)指令或者裝載PC的指令,其實(shí)這樣規(guī)定就是把這8條指令當(dāng)作是異常向量表來處理。必須注意的是第6條指令要包含將要裝載的映像的大小。關(guān)于如何計(jì)算和寫這條指令可以參考用戶手冊(cè)。一旦合法的映像找到之后,則BOOT程序會(huì)把找到的映像搬到SRAM中去,所以映像的大小是非常有限的,不能超過16K-3K的大小。當(dāng)BOOT程序完成了把合法的映像搬到SRAM的任務(wù)以后,接下來就進(jìn)行存儲(chǔ)器的REMAP,經(jīng)過REMAP之后,SRAM從映設(shè)前的0X200000地址處被映設(shè)到了0X0地址并且程序從0X0處開始執(zhí)行。而ROM這時(shí)只能在0X100000這個(gè)地址處看到了。至此9200就算完成了一種形式的啟動(dòng)過程。如果BOOT程序在以上所列的幾種存儲(chǔ)設(shè)備中找到合法的映像,則自動(dòng)初始化DEBUG USART口和USB DEVICE口以準(zhǔn)備從外部載入映像。對(duì)DEBUG口的初始化包括設(shè)置參數(shù)115200 8 N 1以及運(yùn)行XMODEM協(xié)議。對(duì)USB DEVICE進(jìn)行初始化以及運(yùn)行DFU協(xié)議。現(xiàn)在用戶可以從外部(假定為PC平臺(tái))載入你的映像了。在PC平臺(tái)下,以WIN2000為例,你可以用超級(jí)終端來完成這個(gè)功能,但是還是要注意你的映像的大小不能超過13K。一旦正確從外部裝載了映像,接下來的過程就是和前面一樣重映設(shè)然后執(zhí)行映像了。我們上面講了BMS為高電平,AT91RM9200選擇從片內(nèi)的ROM啟動(dòng)的一個(gè)過程。如果BMS為低電平,則AT91RM9200會(huì)從片外的FLASH啟動(dòng),這時(shí)片外的FLASH的起始地址就是0X0了,接下來的過程和片內(nèi)啟動(dòng)的過程是一樣的,只不過這時(shí)就需要自己寫啟動(dòng)代碼了,至于怎么寫,大致的內(nèi)容和ROM的BOOT差不多,不同的硬件設(shè)計(jì)可能有不一樣的地方,但基本的都是一樣的。由于片外FLASH可以設(shè)計(jì)的大,所以這里編寫的BOOTLOADER可以一步到位,也就是說不用像片內(nèi)啟動(dòng)可能需要BOOT好幾級(jí)了,目前AT91RM9200上使用較多的bootloer是u-boot,這是一個(gè)開放源代碼的軟件,用戶可以自由下載并根據(jù)自己的應(yīng)用配置。總的說來,筆者以為AT91RM9200的啟動(dòng)過程比較簡(jiǎn)單,ATMEL的服務(wù)也不錯(cuò),不但提供了片內(nèi)啟動(dòng)的功能,還提供了UBOOT可供下載。筆者寫了一個(gè)BOOTLODER從片外的FLASHA啟動(dòng),效果還可以。 uboot結(jié)構(gòu)與使用uboot是一個(gè)龐大的公開源碼的軟件。他支持一些系列的arm體系,包含常見的外設(shè)的驅(qū)動(dòng),是一個(gè)功能強(qiáng)大的板極支持包。其代碼可以 http://sourceforge.net/projects/u-boot下載 在9200上,為了啟動(dòng)uboot,還有兩個(gè)boot軟件包,分別是loader和boot。分別完成從sram和flash中的一級(jí)boot。其源碼可以從atmel的官方網(wǎng)站下載。 我們知道,當(dāng)9200系統(tǒng)上電后,如果bms為高電平,則系統(tǒng)從片內(nèi)rom啟動(dòng),這時(shí)rom中固化的boot程序初始化了debug口并向其發(fā)送'c',這時(shí)我們打開超級(jí)終端會(huì)看到ccccc...。這說明系統(tǒng)已經(jīng)啟動(dòng),同時(shí)xmodem協(xié)議已經(jīng)啟動(dòng),用戶可以通過超級(jí)終端下載用戶的bootloader。作為第一步,我們下載loader.bin.loader.bin將被下載到片內(nèi)的sram中。這個(gè)loder完成的功能主要是初始化時(shí)鐘,sdram和xmodem協(xié)議,為下載和啟動(dòng)uboot做準(zhǔn)備。當(dāng)下載了loader.bin后,超級(jí)終端會(huì)繼續(xù)打印:ccccc....。這時(shí)我們就可以下在uboot了。uboot將被下載到sdram中的一個(gè)地址后并把pc指針調(diào)到此處開始執(zhí)行uboot。接著我們就可以在終端上看到uboot的shell啟動(dòng)了,提示符uboot>,用戶可以u(píng)boot>help 看到命令列表和大概的功能。uboot的命令包含了對(duì)內(nèi)存、flash、網(wǎng)絡(luò)、系統(tǒng)啟動(dòng)等一些命令。 如果系統(tǒng)上電時(shí)bms為低電平,則系統(tǒng)從片外的flash啟動(dòng)。為了從片外的flash啟動(dòng)uboot,我們必須把boot.bin放到0x0地址出,使得從flash啟動(dòng)后首先執(zhí)行boot.bin,而要少些boot.bin,就要先完成上面我們講的那些步驟,首先開始從片內(nèi)rom啟動(dòng)uboot。然后再利用uboot的功能完成把boot.bin和uboot.gz燒寫到flash中的目的,假如我們已經(jīng)啟動(dòng)了uboot,可以這樣操作: uboot>protect off all uboot>erase all uboot>loadb 20000000 uboot>cp.b 20000000 10000000 5fff uboot>loadb 21000000 uboot>cp.b 210000000 10010000 ffff 然后系統(tǒng)復(fù)位,就可以看到系統(tǒng)先啟動(dòng)boot,然后解壓縮uboot.gz,然后啟動(dòng)uboot。注意,這里uboot必須壓縮成.gz文件,否則會(huì)出錯(cuò)。 怎么編譯這三個(gè)源碼包呢,首先要建立一個(gè)arm的交叉編譯環(huán)境,關(guān)于如何建立,此處不予說明。建立好了以后,分別解壓源碼包,然后修改Makefile中的編譯器項(xiàng)目,正確填寫你的編譯器的所在路徑。 對(duì)loader和boot,直接make。對(duì)uboot,第一步:make_at91rm9200dk,第二步:make。這樣就會(huì)在當(dāng)前目錄下分別生成*.bin文件,對(duì)于uboot.bin,我們還要壓縮成.gz文件。 也許有的人對(duì)loader和boot搞不清楚為什么要兩個(gè),有什么區(qū)別嗎?首先有區(qū)別,boot主要完成從flash中啟動(dòng)uboot的功能,他要對(duì)uboot的壓縮文件進(jìn)行解壓,除此之外,他和loader并無大的區(qū)別,你可以把boot理解為在loader的基礎(chǔ)上加入了解壓縮.gz的功能而已。所以這兩個(gè)并無多大的本質(zhì)不同,只是他們的使命不同而已。 特別說名的是這三個(gè)軟件包都是開放源碼的,所以用戶可以根據(jù)自己的系統(tǒng)的情況修改和配置以及裁減,打造屬于自己系統(tǒng)的bootloder。

    標(biāo)簽: 9200 at 91 rm

    上傳時(shí)間: 2013-10-27

    上傳用戶:wsf950131

  • 用51單片機(jī)設(shè)計(jì)的時(shí)鐘電路畢業(yè)論文

    用51單片機(jī)設(shè)計(jì)的時(shí)鐘電路畢業(yè)論文第一章電路原理分析1-1 顯示原理1-2 數(shù)碼管結(jié)構(gòu)及代碼顯示1-3 鍵盤及讀數(shù)原理1-4 連擊功能的實(shí)現(xiàn)第 二 章 程序設(shè)計(jì)思想和相關(guān)指令介紹2-1 數(shù)據(jù)與代碼轉(zhuǎn)換2-2 計(jì)時(shí)功能的實(shí)現(xiàn)與中斷服務(wù)程序2-3 時(shí)間控制功能與比較指令2-4 時(shí)鐘誤差的分析附錄A 電路圖附錄B 存儲(chǔ)單元地址表附錄C 輸入輸出口功能分配表附錄D 定時(shí)中斷程序流程圖附錄F 調(diào)時(shí)功能流程圖附錄G 程序清單

    標(biāo)簽: 51單片機(jī) 時(shí)鐘電路 畢業(yè)論文

    上傳時(shí)間: 2013-10-29

    上傳用戶:hoperingcong

  • 8051單片機(jī)指令系統(tǒng),計(jì)算機(jī)的指令系統(tǒng)

    計(jì)算機(jī)的指令系統(tǒng)是表征計(jì)算機(jī)性能的重要指標(biāo),每種計(jì)算機(jī)都有自己的指令系統(tǒng)。MCS—51單片機(jī)的指令系統(tǒng)是一個(gè)具有255種代碼的集合,絕大多數(shù)指令包含兩個(gè)基本部分:操作碼和操作數(shù)。操作碼表明指令要執(zhí)行的操作的性質(zhì);操作數(shù)說明參與操作的數(shù)據(jù)或數(shù)據(jù)所存放的地址。MCS—51指令系統(tǒng)中所有程序指令是以機(jī)器語言形式表示,可分為單字節(jié)、雙字節(jié)、三字節(jié)3種格式。用二進(jìn)制編碼表示的機(jī)器語言由于閱讀困難,且難以記憶。因此在微機(jī)控制系統(tǒng)中采用匯編語言指令來編寫程序。本章介紹MCS—51指令系統(tǒng)就是以匯編語言來描述的。 一條匯編語言指令中最多包含4個(gè)區(qū)段,如下所示: 標(biāo)號(hào): 操作碼目的操作數(shù),源源操作數(shù);注釋 標(biāo)號(hào)與操作碼之間“:”隔開; 操作碼與操作數(shù)之間用“空格”隔開; 目的操作數(shù)和源源操作數(shù)之間有“,”分隔; 操作數(shù)與注釋之間用“;”隔開。 標(biāo)號(hào)是由用戶定義的符號(hào)組成,必須用英文大寫字母開始。標(biāo)號(hào)可有可無,若一條指令中有標(biāo)號(hào),標(biāo)號(hào)代表該指令所存放的第一個(gè)字節(jié)存儲(chǔ)單元的地址,故標(biāo)號(hào)又稱為符號(hào)地址,在匯編時(shí),把該地址賦值給標(biāo)號(hào)。 操作碼是指令的功能部分,不能缺省。MCS—51指令系統(tǒng)中共有42種助記符,代表了33種不同的功能。例如MOV是數(shù)據(jù)傳送的助記符。 操作數(shù)是指令要操作的數(shù)據(jù)信息。根據(jù)指令的不同功能,操作數(shù)的個(gè)數(shù)有3、2、1或沒有操作數(shù)。例如MOV A,#20H,包含了兩個(gè)操作數(shù)A和#20H,它們之間用“,”隔開。注釋可有可無,加入注釋主要為了便于閱讀,程序設(shè)計(jì)者對(duì)指令或程序段作簡(jiǎn)要的功能說明,在閱讀程序或調(diào)試程序時(shí)將會(huì)帶來很多方便。

    標(biāo)簽: 8051 指令系統(tǒng) 單片機(jī) 計(jì)算機(jī)

    上傳時(shí)間: 2013-11-04

    上傳用戶:kr770906

  • PIC單片機(jī)設(shè)計(jì)電子密碼鎖

    介紹用PIC16F84單片機(jī)制作的電子密碼鎖。PIC16F84單片機(jī)共18個(gè)引腳,13個(gè)可用I/O接口。芯片內(nèi)有1K×14的FLASHROM程序存儲(chǔ)器,36×8的靜態(tài)RAM的通用寄存器,64×8的EEPROM的數(shù)據(jù)存儲(chǔ)器,8級(jí)深度的硬堆棧。 用PIC單片機(jī)設(shè)計(jì)的電子密碼鎖微芯公司生產(chǎn)的PIC8位COMS單片機(jī),采用類RISC指令集和哈弗總線結(jié)構(gòu),以及先進(jìn)的流水線時(shí)序,與傳統(tǒng)51單片機(jī)相比其在速度和性能方面更具優(yōu)越性和先進(jìn)性。PIC單片機(jī)的另一個(gè)優(yōu)點(diǎn)是片上硬件資源豐富,集成常見的EPROM、DAC、PWM以及看門狗電路。這使得硬件電路的設(shè)計(jì)更加簡(jiǎn)單,節(jié)約設(shè)計(jì)成本,提高整機(jī)性能。因此PIC單片機(jī)已成為產(chǎn)品開發(fā),尤其是產(chǎn)品設(shè)計(jì)和研制階段的首選控制器。本文介紹用PIC16F84單片機(jī)制作的電子密碼鎖。PIC16F84單片機(jī)共18個(gè)引腳,13個(gè)可用I/O接口。芯片內(nèi)有1K×14的FLASHROM程序存儲(chǔ)器,36×8的靜態(tài)RAM的通用寄存器,64×8的EEPROM的數(shù)據(jù)存儲(chǔ)器,8級(jí)深度的硬堆棧。硬件設(shè)計(jì)  電路原理見圖1。Xx8位數(shù)據(jù)線接4x4鍵盤矩陣電路,面板布局見表1,A、B、C、D為備用功能鍵。RA0、RA7輸出4組編碼二進(jìn)制數(shù)據(jù),經(jīng)74LS139譯碼后輸出逐行掃描信號(hào),送RB4-RB7列信號(hào)輸入端。余下半個(gè)139譯碼器動(dòng)揚(yáng)聲器。RB2接中功率三極管基極,驅(qū)動(dòng)繼電器動(dòng)作。有效密碼長(zhǎng)度為4位,根據(jù)實(shí)際情況,可通過修改源程序增加密碼位數(shù)。產(chǎn)品初始密碼為3345,這是一隨機(jī)數(shù),無特殊意義,目的是為防止被套解。用戶可按*號(hào)鍵修改密碼,按#號(hào)鍵結(jié)束。輸入密碼并按#號(hào)確認(rèn)之后,腳輸出RB2腳輸出高電平,繼電器閉合,執(zhí)行一次開鎖動(dòng)作。  若用戶輸入的密碼正確,揚(yáng)聲器發(fā)出一聲稍長(zhǎng)的“滴”提示聲,若輸入的密碼與上次修改的不符,則發(fā)出短促的“滴”聲。連續(xù)3次輸入密碼錯(cuò)誤之后,程序鎖死,揚(yáng)聲器報(bào)警。直到CPU被復(fù)位或從新上電。軟件設(shè)計(jì)  軟件流程圖見圖3。CPU上電或復(fù)位之后將最近一次修改并保存到EEPROM的密碼讀出,最為參照密匙。然后等待用戶輸入開鎖密碼。若5分鐘以內(nèi)沒有接受到用戶的任何輸入,CPU自動(dòng)轉(zhuǎn)入掉電模式,用戶輸入任意值可喚醒CPU。每次修改密碼之后,CPU將新的密碼存入內(nèi)部4個(gè)連續(xù)的EEPROM單元,掉電后該數(shù)據(jù)任有效。每執(zhí)行一次開鎖指令,CPU將當(dāng)前輸入密碼與該值比較,看是否真確,并給出相應(yīng)的提示和控制。布     局  所有元件均使用SMD表貼封裝,縮小體積,便于產(chǎn)品安裝,60X60雙面PCB板,頂層是一體化輸入鍵盤,底層是元件層。成型后的產(chǎn)品體積小巧,能很方便的嵌入防盜鐵門、保險(xiǎn)箱柜。

    標(biāo)簽: PIC 單片機(jī)設(shè)計(jì) 電子密碼鎖

    上傳時(shí)間: 2013-10-31

    上傳用戶:uuuuuuu

  • 指令功能及匯編語言程序設(shè)計(jì)

    7-1. 設(shè)計(jì)范例——數(shù)碼管顯示7-2. 51單片機(jī)的并行I/O接口的使用方法7-3. 數(shù)碼管的知識(shí)和使用方法7-4. 傳送類指令的功能7-5. 匯編語言程序設(shè)計(jì)的一般步驟要求在最左側(cè)的數(shù)碼管上顯示數(shù)字1。范例分析:硬件分析       電路中用到了單片機(jī)的并行I/O口和數(shù)碼管軟件設(shè)計(jì)       由于硬件電路中數(shù)碼管接在單片機(jī)的P0口上,故將顯示內(nèi)容送至單片機(jī)的P0口就可以在數(shù)碼管上看到顯示內(nèi)容。8051單片機(jī)的并口是幾位的?在四個(gè)并口中,真正的雙向口是哪一個(gè)?它的用法有多少種?四個(gè)并口中功能相對(duì)較為簡(jiǎn)單的是哪一個(gè)?在作為輸入、輸出口使用時(shí)有何不同?在實(shí)際應(yīng)用中,并口的使用要考慮其負(fù)載能力,在四個(gè)并口中負(fù)載力相對(duì)較強(qiáng)的是哪一個(gè)?

    標(biāo)簽: 指令 匯編語言 程序設(shè)計(jì)

    上傳時(shí)間: 2013-10-13

    上傳用戶:Maple

  • 51單片機(jī)c語言

    這是一本關(guān)于Intel 80C51 以及廣大的51 系列單片機(jī)的書這本書介紹給讀者一些新的技術(shù)使你的8051 工程和開發(fā)過程變得簡(jiǎn)單請(qǐng)注意這本書的目的可不是教你各種8051 嵌入式系統(tǒng)的解決方法為使問題討論更加清晰在適當(dāng)?shù)牡胤浇o出了程序代碼我們以討論項(xiàng)目的方法來說明每章碰到的問題所有的代碼都可在附帶的光盤上找到你必須熟系C 和8051 匯編因?yàn)楸緯皇且槐綜 和匯編的指導(dǎo)書你可以買到不少關(guān)于ANSI C 的書最佳選擇當(dāng)然是Intel的數(shù)據(jù)書可從你的芯片供應(yīng)商處免費(fèi)索取和隨編譯工具附送的手冊(cè)附送光盤中有我為這本書編寫和收集的程序這些程序已經(jīng)通過測(cè)試這并不意味著你可以隨時(shí)把這些程序加到你的應(yīng)用系統(tǒng)或工程中有些地方必須首先經(jīng)過修改才能結(jié)合到你的程序中這本書將教你充分使用你的工具如果你只有8051 的匯編程序你也可以學(xué)習(xí)該書和使用這些例子但是你必須把C 語言的程序裝入你的匯編程序中這對(duì)懂得C 語言和8051匯編程序指令的人來說并不是一件困難的事如果你有C 編譯器的話那恭喜你使用C 語言進(jìn)行開發(fā)是一個(gè)好的決定你會(huì)發(fā)現(xiàn)使用C 進(jìn)行開發(fā)將使你的工程開發(fā)和維護(hù)的時(shí)間大大減少如果你已經(jīng)擁有Keil C51 那你已經(jīng)選擇了一個(gè)非常好的開發(fā)工具我發(fā)現(xiàn)Keil 軟件包能夠提供最好的支持本書支持Keil C 的擴(kuò)展如果你有其它的開發(fā)工具像Archimedes 和Avocet 這本書也能很好地為你服務(wù)但你必須根據(jù)你所用的開發(fā)工具改變一些Keil 的特殊指令在書的一些地方有硬件圖實(shí)例程序在這些硬件上運(yùn)行這些圖繪制地不是很詳細(xì)主要是方框圖但足以使讀者明白軟件和硬件之間的接口讀者應(yīng)該把這本書看成工具書而不是用來學(xué)習(xí)各種系統(tǒng)設(shè)計(jì)通過本書你可以了解給定一定的硬件和軟件設(shè)計(jì)之后8051 的各種性能希望你能從本書中獲取靈感并有助于你的設(shè)計(jì)使你豁然開朗當(dāng)然我希望你也能夠從本書中學(xué)到有用的知識(shí)使之能夠提升你的設(shè)計(jì) 8051 系列微處理器基于簡(jiǎn)化的嵌入式控制系統(tǒng)結(jié)構(gòu)被廣泛應(yīng)用于從軍事到自動(dòng)控制再到PC 機(jī)上的鍵盤上的各種應(yīng)用系統(tǒng)上僅次于Motorola 68HC11 在 8 位微控制器市場(chǎng)上的銷量很多制造商都可提供8051 系列單片機(jī)像Intel Philips Siemens 等這些制造商給51 系列單片機(jī)加入了大量的性能和外部功能像I2C 總線接口模擬量到數(shù)字量的轉(zhuǎn)換看門狗PWM 輸出等不少芯片的工作頻率達(dá)到40M 工作電壓下降到1.5V 基于一個(gè)內(nèi)核的這些功能使得8051 單片機(jī)很適合作為廠家產(chǎn)品的基本構(gòu)架它能夠運(yùn)行各種程序而且開發(fā)者只需要學(xué)習(xí)這一個(gè)平臺(tái)8051 系列的基本結(jié)構(gòu)如下1 一個(gè)8 位算術(shù)邏輯單元2 32 個(gè)I/O 口4 組8 位端口可單獨(dú)尋址3 兩個(gè)16 位定時(shí)計(jì)數(shù)器4 全雙工串行通信5 6 個(gè)中斷源兩個(gè)中斷優(yōu)先級(jí)6 128 字節(jié)內(nèi)置RAM7 獨(dú)立的64K 字節(jié)可尋址數(shù)據(jù)和代碼區(qū)每個(gè)8051 處理周期包括12 個(gè)振蕩周期每12 個(gè)振蕩周期用來完成一項(xiàng)操作如取指令和計(jì)算指令執(zhí)行時(shí)間可把時(shí)鐘頻率除以12 取倒數(shù)然后指令執(zhí)行所須的周期數(shù)因此如果你的系統(tǒng)時(shí)鐘是11.059MHz 除以12 后就得到了每秒執(zhí)行的指令個(gè)數(shù)為921583條指令取倒數(shù)將得到每條指令所須的時(shí)間1.085ms

    標(biāo)簽: 51單片機(jī) c語言

    上傳時(shí)間: 2013-11-09

    上傳用戶:chenlong

  • 用ModelSimSE進(jìn)行功能仿真和時(shí)序仿真的方法(ALTERA篇)

    用ModelSimSE進(jìn)行功能仿真和時(shí)序仿真的方法(ALTERA篇)

    標(biāo)簽: ModelSimSE ALTERA 功能仿真 時(shí)序仿真

    上傳時(shí)間: 2013-10-20

    上傳用戶:hehuaiyu

  • Verilog_HDL的基本語法詳解(夏宇聞版)

            Verilog_HDL的基本語法詳解(夏宇聞版):Verilog HDL是一種用于數(shù)字邏輯電路設(shè)計(jì)的語言。用Verilog HDL描述的電路設(shè)計(jì)就是該電路的Verilog HDL模型。Verilog HDL既是一種行為描述的語言也是一種結(jié)構(gòu)描述的語言。這也就是說,既可以用電路的功能描述也可以用元器件和它們之間的連接來建立所設(shè)計(jì)電路的Verilog HDL模型。Verilog模型可以是實(shí)際電路的不同級(jí)別的抽象。這些抽象的級(jí)別和它們對(duì)應(yīng)的模型類型共有以下五種:   系統(tǒng)級(jí)(system):用高級(jí)語言結(jié)構(gòu)實(shí)現(xiàn)設(shè)計(jì)模塊的外部性能的模型。   算法級(jí)(algorithm):用高級(jí)語言結(jié)構(gòu)實(shí)現(xiàn)設(shè)計(jì)算法的模型。   RTL級(jí)(Register Transfer Level):描述數(shù)據(jù)在寄存器之間流動(dòng)和如何處理這些數(shù)據(jù)的模型。   門級(jí)(gate-level):描述邏輯門以及邏輯門之間的連接的模型。   開關(guān)級(jí)(switch-level):描述器件中三極管和儲(chǔ)存節(jié)點(diǎn)以及它們之間連接的模型。   一個(gè)復(fù)雜電路系統(tǒng)的完整Verilog HDL模型是由若干個(gè)Verilog HDL模塊構(gòu)成的,每一個(gè)模塊又可以由若干個(gè)子模塊構(gòu)成。其中有些模塊需要綜合成具體電路,而有些模塊只是與用戶所設(shè)計(jì)的模塊交互的現(xiàn)存電路或激勵(lì)信號(hào)源。利用Verilog HDL語言結(jié)構(gòu)所提供的這種功能就可以構(gòu)造一個(gè)模塊間的清晰層次結(jié)構(gòu)來描述極其復(fù)雜的大型設(shè)計(jì),并對(duì)所作設(shè)計(jì)的邏輯電路進(jìn)行嚴(yán)格的驗(yàn)證。   Verilog HDL行為描述語言作為一種結(jié)構(gòu)化和過程性的語言,其語法結(jié)構(gòu)非常適合于算法級(jí)和RTL級(jí)的模型設(shè)計(jì)。這種行為描述語言具有以下功能:   · 可描述順序執(zhí)行或并行執(zhí)行的程序結(jié)構(gòu)。   · 用延遲表達(dá)式或事件表達(dá)式來明確地控制過程的啟動(dòng)時(shí)間。   · 通過命名的事件來觸發(fā)其它過程里的激活行為或停止行為。   · 提供了條件、if-else、case、循環(huán)程序結(jié)構(gòu)。   · 提供了可帶參數(shù)且非零延續(xù)時(shí)間的任務(wù)(task)程序結(jié)構(gòu)。   · 提供了可定義新的操作符的函數(shù)結(jié)構(gòu)(function)。   · 提供了用于建立表達(dá)式的算術(shù)運(yùn)算符、邏輯運(yùn)算符、位運(yùn)算符。   · Verilog HDL語言作為一種結(jié)構(gòu)化的語言也非常適合于門級(jí)和開關(guān)級(jí)的模型設(shè)計(jì)。因其結(jié)構(gòu)化的特點(diǎn)又使它具有以下功能:   - 提供了完整的一套組合型原語(primitive);   - 提供了雙向通路和電阻器件的原語;   - 可建立MOS器件的電荷分享和電荷衰減動(dòng)態(tài)模型。   Verilog HDL的構(gòu)造性語句可以精確地建立信號(hào)的模型。這是因?yàn)樵赩erilog HDL中,提供了延遲和輸出強(qiáng)度的原語來建立精確程度很高的信號(hào)模型。信號(hào)值可以有不同的的強(qiáng)度,可以通過設(shè)定寬范圍的模糊值來降低不確定條件的影響。   Verilog HDL作為一種高級(jí)的硬件描述編程語言,有著類似C語言的風(fēng)格。其中有許多語句如:if語句、case語句等和C語言中的對(duì)應(yīng)語句十分相似。如果讀者已經(jīng)掌握C語言編程的基礎(chǔ),那么學(xué)習(xí)Verilog HDL并不困難,我們只要對(duì)Verilog HDL某些語句的特殊方面著重理解,并加強(qiáng)上機(jī)練習(xí)就能很好地掌握它,利用它的強(qiáng)大功能來設(shè)計(jì)復(fù)雜的數(shù)字邏輯電路。下面我們將對(duì)Verilog HDL中的基本語法逐一加以介紹。

    標(biāo)簽: Verilog_HDL

    上傳時(shí)間: 2013-11-23

    上傳用戶:青春給了作業(yè)95

  • 用FPGA設(shè)計(jì)多功能數(shù)字鐘

    用FPGA設(shè)計(jì)多功能數(shù)字鐘

    標(biāo)簽: FPGA 多功能 數(shù)字

    上傳時(shí)間: 2013-11-16

    上傳用戶:1234567890qqq

  • ARM系列處理器體系結(jié)構(gòu)與指令系統(tǒng)詳解

    ARM系列處理器體系結(jié)構(gòu)與指令系統(tǒng)詳解

    標(biāo)簽: ARM 列處理器 指令系統(tǒng)

    上傳時(shí)間: 2013-11-15

    上傳用戶:a67818601

主站蜘蛛池模板: 长葛市| 荆州市| 囊谦县| 十堰市| 哈密市| 梅州市| 洛川县| 乌什县| 南投县| 怀柔区| 大宁县| 南靖县| 柘荣县| 凌云县| 灵台县| 山阳县| 容城县| 五莲县| 元阳县| 浙江省| 防城港市| 泾源县| 琼海市| 枣阳市| 西华县| 靖安县| 霞浦县| 城口县| 腾冲县| 贵德县| 青冈县| 浦东新区| 宁德市| 海兴县| 石狮市| 喀喇沁旗| 涞水县| 泰来县| 大同市| 寿阳县| 普陀区|