版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、EDA技術(shù)實(shí)驗(yàn)指導(dǎo)書王衛(wèi)平 編安徽理工大學(xué)計(jì)算機(jī)學(xué)院20129實(shí)驗(yàn)一 熟悉MAXPLUS設(shè)計(jì)環(huán)境(驗(yàn)證性實(shí)驗(yàn))一、實(shí)驗(yàn)?zāi)康牧私釳AX+PLUS開發(fā)集成環(huán)境的輸入編輯器、HDL綜合器、仿真器、適配器和下載器,熟悉EDA設(shè)計(jì)流程。二、實(shí)驗(yàn)內(nèi)容熟悉MAXPLUS操作界面和基本操作步驟。三、實(shí)驗(yàn)儀器與器材 PC機(jī)。四、實(shí)驗(yàn)基本原理MAX+plus II 界面友好,使用便捷,被譽(yù)為業(yè)界最易用易學(xué)的EDA軟件。MAX+plus II支持原理圖、VHDL和Verilog語言文本文件,以及波形與EDIF等格式的文件作為設(shè)計(jì)輸入,并支持這些文件的任意混合設(shè)計(jì)。MAX+plusII具有門級(jí)仿真器,可以進(jìn)行功能仿真
2、和時(shí)序仿真,能夠產(chǎn)生精確的仿真結(jié)果。在適配之后,MAX+plusII生成供時(shí)序仿真用的EDIF、VHDL和Verilog三種不同格式的網(wǎng)表文件。MAX+plusII支持主流的第三方EDA工具,如Synopsys、Cadence、Synplicity、Mentor、Viewlogic、Exemplar和Model Technology等。MAX+plusII支持除APEX20K系列之外的所有Altera FPGA/CPLD大規(guī)模邏輯器件。 附圖1-1 MAX+plusII的管理器窗口MAX+plusII的管理器窗口可以對(duì)MAX+plusII的所有功能進(jìn)行管理和控制。圖1-2 MAX+plusII
3、的圖形編輯器MAX+plusII圖形編輯器(Graphic Editor)是一個(gè)國標(biāo)選取模式的程序,可快速建立簡單或復(fù)雜的設(shè)計(jì)。完成的文件格式為*. gdf,也可讀入OrCAD*. sch。附圖1-3 MAX+plusII的HDL文本編輯器 MAX+plusII的HDL文本編輯器是很有彈性的工具,提供多種硬件描述語言的文字編輯與合成的環(huán)境。其中包括有:1、 Altera Hardware Description Language (AHDL)2、 Very High Integrated Circuit Hardware Description Language (VHDL)3、 Verilo
4、g Hardware Description Language (Verilig HDL) 以AHDL語法編寫的文件格式為*.tdf,以VHDL語法編寫的文件格式則為*.vhd,而以Verilog HDL語法編寫的文件格式則為*.v。可以設(shè)計(jì)程序創(chuàng)建一個(gè)符號(hào)文件供圖形編輯器使用。附圖1-4 MAX+plusII的波形編輯器MAX+plusII的波形編輯器是個(gè)可做多方面應(yīng)用的編輯器:一方面可用來設(shè)計(jì)電路,其文件格式為*.wdf,另一方面則可以用來觀察或輸入仿真時(shí)的波形,文件格式為*.scf。附圖1-5 MAX+plusII的符號(hào)編輯器 MAX+plusII的符號(hào)編輯器可以用來觀看一個(gè)邏輯電路的符
5、號(hào),也可以編輯或創(chuàng)建符號(hào)文件,文件的格式為*.sym??捎呻娐穲D編輯器中選取符號(hào)文件以圖形模式編輯。附圖1-6 MAX+plusII的編譯器窗口 MAX+plusII的編譯功能是將電路設(shè)計(jì)文件轉(zhuǎn)換成編程下載用的輸出文件,包括*.pof文件與*.sof文件。編譯成功后還會(huì)產(chǎn)生一些文件名相同但擴(kuò)展名不同的文件,如*.cnf文件、*.rpt文件與*.snf文件。設(shè)計(jì)的程序必須經(jīng)過編譯后才可以進(jìn)行時(shí)序分析、仿真與下載。附圖1-7 MAX+plusII的主菜單 MAX+plusII的主菜單用于啟動(dòng)各種應(yīng)用功能,并在各種應(yīng)用功能間切換。附圖1-8 MAX+plusII的新建文件MAX+plusII的新建文
6、件中包括4種類型,圖形編輯文件(Graphic Editor file)、符號(hào)編輯文件(Symbol Editor file)、文本編輯文件(Text Editor file)和波形編輯文件(Waveform Editor file)。附圖1-9 MAX+plusII的仿真器界面MAX+plusII的仿真功能非常強(qiáng)大,能夠測試顯現(xiàn)出所設(shè)計(jì)電路的邏輯與時(shí)序,故利用此仿真功能可以驗(yàn)證電路的正確性,并可以找出錯(cuò)誤的原因。附圖1-10 MAX+plusII的時(shí)序分析器界面MAX+plusII的時(shí)序分析功能可用來分析設(shè)計(jì)編譯后合成的性質(zhì)。將電路設(shè)計(jì)文件轉(zhuǎn)換成下載用的輸出文件,例如*.pof文件與*.so
7、f文件。借助時(shí)間分析的功能可達(dá)到最佳的布局規(guī)劃,從而加快所設(shè)計(jì)器件的的處理速度,時(shí)序分析器包括延時(shí)矩陣分析、建立和保持時(shí)間分析以及寄存器性能分析。附圖1-11 MAX+plusII的底層圖編輯器界面MAX+plusII的底層圖編輯器,也可以稱為引腳平面編輯器,此功能可以如同在實(shí)際器件配線般的配置電路輸入和輸出引腳,也可觀看和修改編譯后計(jì)算機(jī)自動(dòng)配線的結(jié)果。另外,利用底層圖編輯器可以很直觀地進(jìn)行器件管腳鎖定。在MAX+plusII的底層圖編輯器視圖上雙擊左鍵來改變一下觀察模式,包含Device view和LAB view兩種模式,同樣可以在菜單下選擇。附圖1-11為LAB view模式,附圖1-
8、12為Device view模式。附圖1-12 MAX+plusII的底層圖編輯器Device view模式附圖1-13 MAX+plusII的編程器界面MAX+plusII的編程器的功能是將電路設(shè)計(jì)文件轉(zhuǎn)換后的輸出文件,例如*.pof文件與*.sof文件,燒寫至FLEX系列器件或下載至MAX系列器件,亦可用來檢驗(yàn)與測試器件或轉(zhuǎn)換燒寫文件格式。此功能必須配合硬件實(shí)驗(yàn)設(shè)備才能進(jìn)行。在器件編程時(shí),首先應(yīng)該安裝軟件狗和下載線,這時(shí)需要進(jìn)行硬件設(shè)置。(備注:MAX+PLUSII在WIN2000/XP上的安裝設(shè)置:在Windows98 上,MAX+PLUSII一旦安裝完畢,經(jīng)過設(shè)置即可使用下載功能。在W
9、indows2000上的安裝,除了安裝軟件外,為使用ByteBlasterMV下載工功能,還必須安裝硬件驅(qū)動(dòng)(dirver),以支持MAX+PLUSII對(duì)PC機(jī)并口的操作。具體操作步驟如下:(1) 首先安裝MAX+PLUSII(2) 選擇(“開始”-“設(shè)置”-“控制面版”)(3) 雙擊“游戲選項(xiàng)”然后選擇“添加”-“添加其它”-“從磁盤安裝”命令,再單擊“瀏覽”瀏覽驅(qū)動(dòng)所在的目錄:MAX+PLUSII的安裝目錄dirverswin2000;(4) 選擇“WIN2000.inf”,單擊“確定”;(5) 在“數(shù)字簽名未找到”對(duì)話框中,選擇“是”;(6) 在“選擇一個(gè)設(shè)備驅(qū)動(dòng)程序”窗口中,選擇“Al
10、tera Bytblaster”,并單擊“下一步”;(7) 在接下去的“數(shù)字簽名未找到”對(duì)話框中,仍選擇“是”;(8) 安裝完成,依提示,重新啟動(dòng)計(jì)算機(jī)。 在WINXP/WINNT操作環(huán)境下,若要使用下載(DOWNLOAD)功能,同樣要安裝驅(qū)動(dòng),安裝方法可參考在WINDOWS2000上的安裝方法進(jìn)行,在此不再贅述。)五、實(shí)驗(yàn)要求要求熟悉MAX+PLUSII設(shè)計(jì)環(huán)境并將MAX+PLUSII設(shè)計(jì)環(huán)境中功能模塊介紹以及實(shí)驗(yàn)心得寫進(jìn)實(shí)驗(yàn)報(bào)告。六、實(shí)驗(yàn)思考題結(jié)合MAX+PLUSII編譯窗口中的7大模塊理解EDA技術(shù)的設(shè)計(jì)流程。實(shí)驗(yàn)二 原理圖輸入設(shè)計(jì)8位加法器(設(shè)計(jì)性實(shí)驗(yàn))一、實(shí)驗(yàn)?zāi)康氖煜だ肕AX+PL
11、US的原理圖輸入設(shè)計(jì)方法設(shè)計(jì)簡單組合電路,掌握層次化設(shè)計(jì)方法,并通過8位全加器的設(shè)計(jì)把握利用EDA軟件進(jìn)行電子線路設(shè)計(jì)的詳細(xì)流程。二、實(shí)驗(yàn)內(nèi)容利用圖形輸入法設(shè)計(jì)一個(gè)一位半加器及全加器,再利用層次設(shè)計(jì)方法構(gòu)成8位加法器。三、實(shí)驗(yàn)儀器與器材 PC機(jī)。四、實(shí)驗(yàn)設(shè)計(jì)思路 加法器是數(shù)字系統(tǒng)中的基本邏輯器件。例如,為了節(jié)省邏輯資源,減法器和硬件乘法器都可由加法器來構(gòu)成。寬位的加法器的設(shè)計(jì)是十分耗費(fèi)硬件資源的,因此在實(shí)際的設(shè)計(jì)和相關(guān)系統(tǒng)的開發(fā)中需要注意資源的利用率和進(jìn)位速度兩方面的問題。對(duì)此,首先應(yīng)選擇較適合組合邏輯設(shè)計(jì)的器件作為最終的目標(biāo)器件,如CPLD;其次在加法器的邏輯結(jié)構(gòu)的設(shè)計(jì)上,在芯片資源的利用率
12、和加法器的速度兩方面權(quán)衡得失,探尋最佳選擇,即選擇最佳的并行進(jìn)位最小加法單元的寬度。顯然,這種選擇與目標(biāo)器件的時(shí)延特性有直接關(guān)系。多位加法器的構(gòu)成有兩種方式:并行進(jìn)位和串行進(jìn)位方式。并行進(jìn)位加法器設(shè)有并行進(jìn)位產(chǎn)生邏輯,運(yùn)算速度較快;串行進(jìn)位方式是將全加器級(jí)聯(lián)構(gòu)成多位加法器。并行進(jìn)位加法器通常比串行級(jí)聯(lián)加法器占用更多的資源,隨著位數(shù)的增加,相同位數(shù)的并行加法器與串行加法器的資源占用差距快速增大。一般,4位二進(jìn)制并行加法器和串行級(jí)聯(lián)加法器占用幾乎相同的資源。這樣,多位數(shù)加法器由4位二進(jìn)制并行加法器級(jí)聯(lián)構(gòu)成是較好的折中選擇。附圖2-1 8位加法器硬件結(jié)構(gòu)圖設(shè)計(jì)重要提示:1、 首先應(yīng)該建立好工作庫目錄
13、,以作設(shè)計(jì)工程項(xiàng)目的工作庫:例如設(shè)文件夾為:E:Myproject ,以便將設(shè)計(jì)過程中的相關(guān)文件存儲(chǔ)在此。任何一項(xiàng)設(shè)計(jì)都是一項(xiàng)工程(Project),都必須首先為此工程建立一個(gè)放置與此工程相關(guān)文件的文件夾,此文件夾將被EDA軟件默認(rèn)為工作庫(Work Library)。注意,文件夾不能用中文。2、將當(dāng)前設(shè)計(jì)設(shè)定為工程:為了使Max+plusII能對(duì)輸入的設(shè)計(jì)項(xiàng)目進(jìn)行處理,在編譯/綜合設(shè)計(jì)文件之前,需要設(shè)置此文件為頂層文件,或稱工程文件:Project,或者說將此項(xiàng)設(shè)計(jì)設(shè)置成工程:選擇菜單“File”àProjectà“Set Project to Current File”
14、,當(dāng)前的設(shè)計(jì)工程即被指定。也可以通過選“File”à“Project”à“Name”,在跳出的“Project Name”窗中指定E: Myproject下的設(shè)計(jì)文件為當(dāng)前的工程。設(shè)定后可以看見MAX+plusII主窗左上方的工程項(xiàng)目路徑指向。這個(gè)路徑指向很重要!附圖2-2 將當(dāng)前設(shè)計(jì)設(shè)定為工程3、 選擇VHDL文本編譯版本號(hào)和排錯(cuò)選菜單“MAX+plus II”à“Compiler”菜單,選擇如圖2-3所示界面上方的“Interfaces”à“VHDL Netlist Reader Settings”,在彈出的窗口中選“VHDL1993”。附圖2-3
15、設(shè)定VHDL編譯版本號(hào)在按“START”鍵運(yùn)行編譯前,還需要作一件事,即在進(jìn)入編輯窗,選擇Processing項(xiàng),選“Fitter Setting”,進(jìn)入如圖2-4的窗口,消去最上的“Use Quartus Fitter”的勾。最后按“START”鍵,運(yùn)行編譯器。 附圖2-4 消去“Use Quartus Fitter”項(xiàng)注意,如果設(shè)計(jì)文件含有錯(cuò)誤,在編譯時(shí)會(huì)出現(xiàn)如圖2-5所示的出錯(cuò)信息指示。有時(shí)盡管只有1、2個(gè)小錯(cuò),但卻會(huì)出現(xiàn)大量的出錯(cuò)信息,確定錯(cuò)誤所在的最好辦法是找到最上一排錯(cuò)誤信息指示,用鼠標(biāo)點(diǎn)成黑色,然后點(diǎn)擊如圖2-5所示窗口左下方的“Locate”錯(cuò)誤定位鈕,就能發(fā)現(xiàn)在出現(xiàn)文本編譯窗
16、中閃動(dòng)的光標(biāo)附近找到錯(cuò)誤所在。糾正后再次編譯,直至排除所有錯(cuò)誤。 注意閃動(dòng)的光標(biāo)指示錯(cuò)誤所在只是相對(duì)的,錯(cuò)誤一般在上方。VHDL文本編輯中還可能出現(xiàn)許多其它錯(cuò)誤,如: 附圖2-5 確定設(shè)計(jì)文件中的錯(cuò)誤 1)、錯(cuò)將設(shè)計(jì)文件存入了根目錄,并將其設(shè)定成工程,由于沒有了工作庫,報(bào)錯(cuò)信息如下: Error :Can't open VHDL "WORK" 2)、錯(cuò)將設(shè)計(jì)文件的后綴寫成.tdf而非.vhd,報(bào)錯(cuò)信息如下:Error :Line1,F(xiàn)ile e:muxfilemux21a.tdf: TDF syntax error: . 3)、未將設(shè)計(jì)文件名存為其實(shí)體名,如錯(cuò)寫為m
17、uxa.vhd,報(bào)錯(cuò)信息如下:Error :Line1,.VHDL Design File "muxa.vhd" must contain .4、 時(shí)序仿真具體步驟如下:(1)、建立波形文件。為此設(shè)計(jì)建立一個(gè)波形測試文件。選擇菜單“File”項(xiàng)及其“New”,再選擇New窗中的Waveform Editer.項(xiàng),打開波形編輯窗。(2)、輸入信號(hào)節(jié)點(diǎn)。在圖2-6所示的波形編輯窗的上方選擇Node項(xiàng),在下拉菜單中選擇輸入信號(hào)節(jié)點(diǎn)項(xiàng)Enter Nodes from SNF。在彈出的窗口(圖2-7)中首先點(diǎn)擊List鍵,這時(shí)左窗口將列出該項(xiàng)設(shè)計(jì)所以信號(hào)節(jié)點(diǎn)。由于有時(shí)只需要觀察其中部
18、分信號(hào)的波形,因此要利用中間的“=>”鍵將需要觀察的信號(hào)選到右欄中,然后點(diǎn)擊OK鍵即可將測試信號(hào)輸入仿真波形編輯窗。附圖2-6從SNF文件中輸入設(shè)計(jì)文件的信號(hào)節(jié)點(diǎn)附圖2-7 列出并選擇需要觀察的信號(hào)節(jié)點(diǎn)(3)、設(shè)置波形參量。首先設(shè)定相關(guān)的仿真參數(shù)。如圖2-8所示, 在Options選項(xiàng)中消去網(wǎng)格對(duì)齊Snap to Grid的選擇(消去勾),以便能夠任意設(shè)置輸入電平位置,或設(shè)置輸入時(shí)鐘信號(hào)的周期。 (4)、如圖2-9,2-10所示,設(shè)定仿真時(shí)間寬度。選擇File項(xiàng)及其End time選項(xiàng),在End time選擇窗中選擇適當(dāng)?shù)姆抡鏁r(shí)間域,如可選50us(50微秒),以便有足夠長的觀察時(shí)間。(
19、5)、加上輸入信號(hào)。圖2-11顯示了波形編輯窗各按鈕的功能。 附圖2-8 在Options選項(xiàng)中消去網(wǎng)格對(duì)齊Snap to Grid的選擇(消去勾) 附圖2-9 設(shè)定仿真時(shí)間寬度附圖2-10 設(shè)定仿真時(shí)間寬度注意,仿真波形文件的建立,一定要十分注意仿真時(shí)間區(qū)域的設(shè)定,以及時(shí)鐘信號(hào)的周期設(shè)置,否則即使設(shè)計(jì)正確也無法獲得正確的仿真結(jié)果。設(shè)定比較合理的仿真時(shí)間區(qū)域和信號(hào)頻率,即仿真時(shí)間區(qū)域不能太小,仿真頻率不能太高,即信號(hào)周期不能小到與器件的延時(shí)相比擬。 附圖2-11 為輸入信號(hào)設(shè)定必要的測試電平或數(shù)據(jù)(6)、波形文件存盤。選擇File項(xiàng)及其Save as選項(xiàng),按OK鍵即可。存盤窗(圖2-12)中的
20、波形文件名是默認(rèn)的(.scf),所以直接存盤即可。附圖2-12 仿真波形文件存盤 (7)、運(yùn)行仿真器。選擇MAX+plusII項(xiàng)及其中的仿真器Simulator選項(xiàng),點(diǎn)擊跳出的仿真器窗口(圖2-13)中的Start鍵。圖2-14是仿真運(yùn)算完成后的時(shí)序波形。注意,剛進(jìn)入圖2-14窗口時(shí),應(yīng)該將最下方的滑標(biāo)拖向最左側(cè),以便可觀察到初始波形。附圖2-13 運(yùn)行仿真器(8)、觀察分析波形。還可以進(jìn)一步了解信號(hào)的延時(shí)情況。圖2-14右側(cè)的豎線是測試參考線,它與鼠標(biāo)箭頭間的時(shí)間差顯示在窗口上方的Interval小窗中。由圖可見輸入與輸出波形間有一個(gè)小的延時(shí)量。附圖2-14 仿真波形 也可以打開時(shí)序觀察詳細(xì)
21、的延時(shí)參數(shù)信息,如圖2-15附圖2-15 延時(shí)參數(shù)提取五、實(shí)驗(yàn)要求將實(shí)驗(yàn)原理、設(shè)計(jì)過程、編譯仿真波形和分析結(jié)果寫進(jìn)實(shí)驗(yàn)報(bào)告。六、實(shí)驗(yàn)思考題 為了提高加法器的速度,如何改進(jìn)加法器的進(jìn)位方式?實(shí)驗(yàn)三 簡單組合電路VHDL設(shè)計(jì)(設(shè)計(jì)性實(shí)驗(yàn))一、實(shí)驗(yàn)?zāi)康氖煜AXPLUS的VHDL文本設(shè)計(jì)過程,學(xué)習(xí)簡單組合電路的設(shè)計(jì)、仿真和測試。二、實(shí)驗(yàn)內(nèi)容利用MAX+plus完成2選1多路選擇器的文本編輯輸入(mux21a.vhd)和仿真測試等步驟。三、實(shí)驗(yàn)儀器與器材 PC機(jī)。四、實(shí)驗(yàn)設(shè)計(jì)思路設(shè)計(jì)提示: 圖3-1 mux21a實(shí)體 圖3-2 mux21a結(jié)構(gòu)體例3-1是2選1多路選擇器的VHDL完整描述,即可以直接
22、綜合出實(shí)現(xiàn)相應(yīng)功能的邏輯電路及其功能器件。圖3-1是此描述對(duì)應(yīng)的邏輯圖或者器件圖,圖中,a和b分別是兩個(gè)數(shù)據(jù)輸入端的端口名,s為通道選擇控制信號(hào)輸入端的端口名,y為輸出端的端口名?!癿ux21a”是此器件的名稱,這類似于“74LS138”、“CD4013”等器件的名稱。電路圖圖3-2是例3-1綜合后獲得的電路,因而可以認(rèn)為是多路選擇器“mux21a”內(nèi)部電路結(jié)構(gòu)。 【例3-1】ENTITY mux21a IS PORT ( a, b : IN BIT; s : IN BIT; y : OUT BIT );END ENTITY mux21a;ARCHITECTURE one OF mux21a
23、IS BEGIN y <= a WHEN s='0' ELSE b ; END ARCHITECTURE one ; 五、實(shí)驗(yàn)要求將實(shí)驗(yàn)原理、設(shè)計(jì)過程、編譯仿真波形和分析結(jié)果寫進(jìn)實(shí)驗(yàn)報(bào)告。實(shí)驗(yàn)四 時(shí)序電路VHDL設(shè)計(jì)(設(shè)計(jì)性實(shí)驗(yàn))一、實(shí)驗(yàn)?zāi)康氖煜AXPLUS的VHDL文本設(shè)計(jì)過程,學(xué)習(xí)時(shí)序電路的設(shè)計(jì)、仿真和測試。二、實(shí)驗(yàn)內(nèi)容設(shè)計(jì)觸發(fā)器(類型可自定)和鎖存器,給出程序設(shè)計(jì)、軟件編譯、仿真分析詳細(xì)實(shí)驗(yàn)過程。三、實(shí)驗(yàn)儀器與器材PC機(jī)。四、實(shí)驗(yàn)設(shè)計(jì)思路設(shè)計(jì)提示:組合邏輯電路與時(shí)序邏輯電路的差別在于,時(shí)序邏輯電路多了存儲(chǔ)元件功能部件,該功能部件可以記錄目前的輸出信號(hào)狀態(tài),來作為與
24、輸入信號(hào)共同決定下一次輸出信號(hào)的狀態(tài)。觸發(fā)器是數(shù)字電路中最基本的結(jié)構(gòu)單元之一。在時(shí)序電路里主要應(yīng)用于:1) 數(shù)據(jù)暫存2) 時(shí)間延遲3) 計(jì)數(shù)、分頻4) 波形產(chǎn)生(脈沖、方波、雙相波)5)波形修整 五、實(shí)驗(yàn)要求將實(shí)驗(yàn)原理、設(shè)計(jì)過程、編譯仿真波形和分析結(jié)果寫進(jìn)實(shí)驗(yàn)報(bào)告。六、實(shí)驗(yàn)思考題用不同的時(shí)鐘邊沿檢測表述,如何獲得電平觸發(fā)型鎖存器?實(shí)驗(yàn)五 含有控制信號(hào)的計(jì)數(shù)器VHDL設(shè)計(jì)(設(shè)計(jì)性實(shí)驗(yàn))一、實(shí)驗(yàn)?zāi)康膶W(xué)習(xí)計(jì)數(shù)器的設(shè)計(jì)、仿真和硬件測試,進(jìn)一步熟悉VHDL設(shè)計(jì)技術(shù)。二、實(shí)驗(yàn)內(nèi)容在MAX+plusII上設(shè)計(jì)一個(gè)含計(jì)數(shù)使能、異步復(fù)位和計(jì)數(shù)值并行預(yù)置功能的4位加法計(jì)數(shù)器,并進(jìn)行編輯、編譯、綜合、適配、仿真,給
25、出其所有信號(hào)的時(shí)序仿真波形。三、實(shí)驗(yàn)儀器與器材 PC機(jī)。四、實(shí)驗(yàn)設(shè)計(jì)思路 圖5-1是一含計(jì)數(shù)使能、異步復(fù)位和計(jì)數(shù)值并行預(yù)置功能的4位加法計(jì)數(shù)器。如圖所示,圖中間是4位鎖存器;rst是異步清信號(hào),高電平有效;clk是鎖存信號(hào);D3:0是4位數(shù)據(jù)輸入端。當(dāng)ENA為1時(shí),多路選擇器將加1器的輸出值加載于鎖存器的數(shù)據(jù)端;當(dāng)ENA為0時(shí)將“0000”加載于鎖存器。參考程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT4B IS PORT (CLK : IN STD_LOGIC; RS
26、T : IN STD_LOGIC; ENA : IN STD_LOGIC; OUTY : OUT STD_LOGIC_VECTOR(3 DOWNTO 0); COUT : OUT STD_LOGIC ); END CNT4B;ARCHITECTURE behav OF CNT4B IS SIGNAL CQI : STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINP_REG: PROCESS(CLK, RST, ENA) BEGIN IF RST = '1' THEN CQI <= "0000" ELSIF CLK'EVENT
27、AND CLK = '1' THEN IF ENA = '1' THEN CQI <= CQI + 1; END IF; END IF; OUTY <= CQI ; END PROCESS P_REG ; -進(jìn)位輸出 COUT<=CQI(0) AND CQI(1) AND CQI(2) AND CQI(3);END behav;附圖5-1 4位加法計(jì)數(shù)器的RTL電路圖五、實(shí)驗(yàn)要求將實(shí)驗(yàn)原理、設(shè)計(jì)過程、編譯仿真波形和分析結(jié)果寫進(jìn)實(shí)驗(yàn)報(bào)告。六、實(shí)驗(yàn)思考題1、是否可以不定義信號(hào) CQI,而直接用輸出端口信號(hào)完成加法運(yùn)算,即 : OUTY <=
28、OUTY + 1 ? 為什么?2、用進(jìn)程語句實(shí)現(xiàn)進(jìn)位信號(hào)的檢出。實(shí)驗(yàn)六 數(shù)碼顯示電路的VHDL設(shè)計(jì)(設(shè)計(jì)性實(shí)驗(yàn))一、實(shí)驗(yàn)?zāi)康?通過數(shù)碼顯示電路的設(shè)計(jì)學(xué)習(xí)VHDL的CASE語句應(yīng)用及多層次設(shè)計(jì)方法。二、實(shí)驗(yàn)內(nèi)容在MAX+plusII設(shè)計(jì)一個(gè)7段數(shù)碼顯示電路進(jìn)行編輯、編譯、綜合、適配、仿真,給出其所有信號(hào)的時(shí)序仿真波形。三、實(shí)驗(yàn)儀器與器材 PC機(jī)四、實(shí)驗(yàn)設(shè)計(jì)思路7段數(shù)碼顯示是純組合電路,通常的小規(guī)模專用IC,如74或4000系列的器件只能作十進(jìn)制BCD碼譯碼,然而數(shù)字系統(tǒng)中的數(shù)據(jù)處理和運(yùn)算都是2進(jìn)制的,所以輸出表達(dá)都是16進(jìn)制的,為了滿足16進(jìn)制數(shù)的譯碼顯示,最方便的方法就是利用譯碼程序在FPGA
29、/CPLD中來實(shí)現(xiàn)。但為了簡化過程,首先完成7段BCD碼譯碼器的設(shè)計(jì)。作為7段BCD碼譯碼器,輸出信號(hào)LED7S的7位分別接如圖6-1數(shù)碼管的7個(gè)段,高位在左,低位在右。例如當(dāng)LED7S輸出為“1101101”時(shí),數(shù)碼管的7個(gè)段:g、f、e、d、c、b、a分別接1、1、0、1、1、0、1;接有高電平的段發(fā)亮,于是數(shù)碼管顯示“5”。圖6-1 共陰數(shù)碼管及其電路 設(shè)計(jì)提示:給出所有信號(hào)的時(shí)序仿真波形時(shí)用輸入總線的方式給出輸入信號(hào)仿真數(shù)據(jù))。參考程序: LIBRARY IEEE ; USE IEEE.STD_LOGIC_1164.ALL ; ENTITY DecL7S IS PORT ( A : I
30、N STD_LOGIC_VECTOR(3 DOWNTO 0) ; LED7S : OUT STD_LOGIC_VECTOR(6 DOWNTO 0) ) ; END ; ARCHITECTURE one OF DecL7S IS BEGIN PROCESS( A ) BEGIN CASE A(3 DOWNTO 0) IS WHEN "0000" => LED7S <= "0111111" ; - X“3F”à0 WHEN "0001" => LED7S <= "0000110" ;
31、- X“06”à1 WHEN "0010" => LED7S <= "1011011" ; - X“5B”à2 WHEN "0011" => LED7S <= "1001111" ; - X“4F”à3 WHEN "0100" => LED7S <= "1100110" ; - X“66”à4 WHEN "0101" => LED7S <= "1101101&
32、quot; ; - X“6D”à5 WHEN "0110" => LED7S <= "1111101" ; - X“7D”à6 WHEN "0111" => LED7S <= "0000111" ; - X“07”à7 WHEN "1000" => LED7S <= "1111111" ; - X“7F”à8 WHEN "1001" => LED7S <= "
33、1101111" ; - X“6F”à9 WHEN "1010" => LED7S <= "1110111" ; - X“77”à10 WHEN "1011" => LED7S <= "1111100" ; - X“7C”à11 WHEN "1100" => LED7S <= "0111001" ; - X“39”à12 WHEN "1101" => LED7S &
34、lt;= "1011110" ; - X“5E”à13 WHEN "1110" => LED7S <= "1111001" ; - X“79”à14 WHEN "1111" => LED7S <= "1110001" ; - X“71”à15 WHEN OTHERS => NULL ; END CASE ; END PROCESS ; END ;五、實(shí)驗(yàn)要求根據(jù)以上的實(shí)驗(yàn)內(nèi)容寫出實(shí)驗(yàn)報(bào)告,包括程序設(shè)計(jì)、軟件編譯、仿真分析和實(shí)驗(yàn)過程;設(shè)計(jì)
35、程序、程序分析報(bào)告、仿真波形圖及其分析報(bào)告。圖6-2 計(jì)數(shù)器和譯碼器連接電路的頂層文件原理圖六、實(shí)驗(yàn)思考題1、討論語句WHEN OTHERS=>NULL的作用。對(duì)于不同的VHDL綜合器,此句是否具有相同含義和功能?2、思考如何實(shí)現(xiàn)計(jì)數(shù)器與譯碼器連接(如附圖6-2所示)以及不同字母顯示電路的設(shè)計(jì)?實(shí)驗(yàn)七 狀態(tài)機(jī)設(shè)計(jì)ADC0809采樣控制電路(設(shè)計(jì)性實(shí)驗(yàn))一、實(shí)驗(yàn)?zāi)康膶W(xué)習(xí)用狀態(tài)機(jī)實(shí)現(xiàn)A/D轉(zhuǎn)換器ADC0809的采樣控制電路。二、實(shí)驗(yàn)內(nèi)容利用MAX+plusII實(shí)現(xiàn)A/D轉(zhuǎn)換器ADC0809的采樣控制電路狀態(tài)機(jī)設(shè)計(jì);給出仿真波形。三、實(shí)驗(yàn)儀器與器材 PC機(jī)。四、實(shí)驗(yàn)設(shè)計(jì)思路用VHDL 設(shè)計(jì)的狀
36、態(tài)機(jī)的一般結(jié)構(gòu)有以下幾部分組成:1 說明部分: 說明部分中有新數(shù)據(jù)類型TYPE 的定義及其狀態(tài)類型(狀態(tài)名)和在此新數(shù)據(jù)類型下定義的狀態(tài)變量。狀態(tài)類型一般用枚舉類型,其中每一個(gè)狀態(tài)名可任意選取。但為了便于辨認(rèn)和含義明確,狀態(tài)名最好有明顯的解釋性意義。狀態(tài)變量應(yīng)定義為信號(hào),便于信息傳遞。說明部分一般放在ARCHITECTURE 和BEGIN之間。2 主控時(shí)序進(jìn)程:狀態(tài)機(jī)是隨外部時(shí)鐘信號(hào)以同步時(shí)序方式工作的,因此狀態(tài)機(jī)中必須包含一個(gè)對(duì)工作時(shí)鐘信號(hào)敏感的進(jìn)程作為狀態(tài)機(jī)的“驅(qū)動(dòng)泵”。當(dāng)時(shí)鐘發(fā)生有效跳變時(shí),狀態(tài)機(jī)的狀態(tài)才發(fā)生變化。狀態(tài)機(jī)的下一狀態(tài)(包括再次進(jìn)入本狀態(tài))僅僅取決于時(shí)鐘信號(hào)的到來。一般地,主
37、控時(shí)序進(jìn)程不負(fù)責(zé)進(jìn)入的下一狀態(tài)的具體狀態(tài)取值。當(dāng)時(shí)鐘的有效跳變到來時(shí),時(shí)序進(jìn)程只是機(jī)械地將代表下一狀態(tài)的信號(hào)next_state 中的內(nèi)容送入代表本狀態(tài)的信current_state 中,而信號(hào)next_state 中的內(nèi)容完全由其它的進(jìn)程根據(jù)實(shí)際情況來決定。當(dāng)然此進(jìn)程中也可以放置一些同步或異步清零、置位方面的控制信號(hào)??傮w來說,主控時(shí)序進(jìn)程的設(shè)計(jì)比較固定、單一和簡單。3 主控組合進(jìn)程:主控組合進(jìn)程的任務(wù)是根據(jù)外部輸入的控制信號(hào)(包括來自狀態(tài)機(jī)外部的信號(hào)和來自狀態(tài)機(jī)內(nèi)部其它非主控的組合或時(shí)序進(jìn)程的信號(hào)),或(和)當(dāng)前狀態(tài)的狀態(tài)值確定下一狀態(tài)(next_state)的取向,即next_state
38、的取值內(nèi)容,以及確定對(duì)外輸出或?qū)?nèi)部其它組合或時(shí)序進(jìn)程輸出控制信號(hào)的內(nèi)容。4 普通組合進(jìn)程用于配合狀態(tài)機(jī)工作的其它組合進(jìn)程,如為了完成某種算法的進(jìn)程。5 普通時(shí)序進(jìn)程用于配合狀態(tài)機(jī)工作的其它時(shí)序進(jìn)程,如為了穩(wěn)定輸出設(shè)置的數(shù)據(jù)鎖存器等。一個(gè)狀態(tài)機(jī)的最簡結(jié)構(gòu)應(yīng)至少由兩個(gè)進(jìn)程構(gòu)成(也有單進(jìn)程狀態(tài)機(jī),但并不常用)即一個(gè)主控時(shí)序進(jìn)程和一個(gè)主控組合進(jìn)程,一個(gè)進(jìn)程作“驅(qū)動(dòng)泵”,描述時(shí)序邏輯,包括狀態(tài)寄存器的工作和寄存器狀態(tài)的輸出;另一個(gè)進(jìn)程描述組合邏輯,包括進(jìn)程間狀態(tài)值的傳遞邏輯以及狀態(tài)轉(zhuǎn)換值的輸出。當(dāng)然必要時(shí)還可以引入第3 個(gè)和第4 個(gè)進(jìn)程,以完成其它的邏輯功能。從一般意義上說進(jìn)程間是并行運(yùn)行的,但由于敏
39、感信號(hào)的設(shè)置不同以及電路的延遲,在時(shí)序上進(jìn)程間的動(dòng)作是有先后的。在設(shè)計(jì)中,如果希望輸出的信號(hào)具有寄存器鎖存功能,則需要為此輸出寫第3 個(gè)進(jìn)程,并把clk 和reset信號(hào)放入敏感信號(hào)表中。用于進(jìn)程間信息傳遞的信號(hào)current_state 和next_state ,在狀態(tài)機(jī)設(shè)計(jì)中稱為反饋信號(hào)。狀態(tài)機(jī)運(yùn)行中,信號(hào)傳遞的反饋機(jī)制的作用是實(shí)現(xiàn)當(dāng)前狀態(tài)的存儲(chǔ)和下一個(gè)狀態(tài)的譯碼設(shè)定等功能。在VHDL中可以有兩種方式來創(chuàng)建反饋機(jī)制,即使用信號(hào)的方式和使用變量的方式,通常傾向于使用信號(hào)的方式。附圖7-1為一般狀態(tài)機(jī)結(jié)構(gòu)圖。 圖7-1 一般狀態(tài)機(jī)結(jié)構(gòu)框圖工作示意圖附圖7-2和7-3為控制ADC0809采樣狀態(tài)
40、機(jī)結(jié)構(gòu)圖和狀態(tài)轉(zhuǎn)換圖圖7-2 采樣狀態(tài)機(jī)結(jié)構(gòu)框圖圖7-3 控制采樣狀態(tài)圖ADC0809是CMOS的8位A/D轉(zhuǎn)換器,片內(nèi)有8路模擬開關(guān),可控制8個(gè)模擬量中的一個(gè)進(jìn)入轉(zhuǎn)換器中。ADC0809的分辨率為8位,轉(zhuǎn)換時(shí)間約100us,含鎖存控制的8路多路開關(guān),輸出有三態(tài)緩沖器控制,單5V電源供電。主要控制信號(hào)說明:如圖7-4所示,START是轉(zhuǎn)換啟動(dòng)信號(hào),高電平有效;ALE是3位通道選擇地址(ADDC、ADDB、ADDA)信號(hào)的鎖存信號(hào)。當(dāng)模擬量送至某一輸入端(如IN1或IN2等),由3位地址信號(hào)選擇,而地址信號(hào)由ALE鎖存;EOC是轉(zhuǎn)換情況狀態(tài)信號(hào)(類似于AD574的STATUS),當(dāng)啟動(dòng)轉(zhuǎn)換約10
41、0us后,EOC產(chǎn)生一個(gè)負(fù)脈沖,以示轉(zhuǎn)換結(jié)束;在EOC的上升沿后,若使輸出使能信號(hào)OE為高電平,則控制打開三態(tài)緩沖器,把轉(zhuǎn)換好的8位數(shù)據(jù)結(jié)果輸至數(shù)據(jù)總線。至此ADC0809的一次轉(zhuǎn)換結(jié)束了。參考程序: LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY ADCINT IS PORT ( D : IN STD_LOGIC_VECTOR(7 DOWNTO 0); -0809的8位轉(zhuǎn)換數(shù)據(jù)輸出 CLK ,EOC : IN STD_LOGIC; -CLK是轉(zhuǎn)換工作時(shí)鐘 LOCK1, ALE, START, OE, ADDA : OUT STD_LOGIC;
42、Q : OUT STD_LOGIC_VECTOR(7 DOWNTO 0) );END ADCINT;ARCHITECTURE behav OF ADCINT ISTYPE states IS (st0, st1, st2, st3,st4,st5,st6) ; -定義各狀態(tài)子類型 SIGNAL current_state, next_state: states :=st0 ; SIGNAL REGL : STD_LOGIC_VECTOR(7 DOWNTO 0); SIGNAL LOCK : STD_LOGIC; - 轉(zhuǎn)換后數(shù)據(jù)輸出鎖存時(shí)鐘信號(hào) BEGIN ADDA <= '1' LOCK1 <=LOCK; PRO: PROCESS(current_state,EOC) BEGIN -規(guī)定各狀態(tài)轉(zhuǎn)換方式 CASE current_state IS WHEN st0 => ALE<='0'START<='0'OE<='0'LOCK<='0' ;next_state <= st1; WHEN st1 => ALE<=&
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 四川省綿陽市平武縣2024-2025學(xué)年七年級(jí)上學(xué)期1月期末考試道德與法治試卷(含答案)
- 湖南省株洲市2025屆高三年級(jí)教學(xué)質(zhì)量統(tǒng)一檢測數(shù)學(xué)試題(含答案)
- 重大版小學(xué)英語(2012版)三年級(jí)下冊期末試卷(含答案含聽力原文無音頻)
- 2024高端紅酒進(jìn)口及分銷業(yè)務(wù)承包合同
- 2024施工建筑垃圾外運(yùn)及環(huán)保處理一體化項(xiàng)目管理合同3篇
- 2024環(huán)保設(shè)備采購及運(yùn)行維護(hù)合同
- 2024年運(yùn)輸服務(wù)合同詳細(xì)條款
- 2024版住宅區(qū)前期物業(yè)管理服務(wù)協(xié)議范本版B版
- 2025年度GRC防火板采購合同模板3篇
- 2024石子銷售合同范例:違約責(zé)任、爭議解決
- 做賬實(shí)操-期貨公司的賬務(wù)處理示例
- Java Web 開發(fā)從入門到實(shí)戰(zhàn) 課件 第8章 過濾器與監(jiān)聽器
- 人教版二年級(jí)上冊100以內(nèi)加減法豎式計(jì)算題300道及答案
- 高考重慶語文試卷及答案
- DB13(J)T 8542-2023 建筑施工塔式起重機(jī)檢驗(yàn)技術(shù)規(guī)程
- 2023年航空公司招聘:機(jī)場安檢員基礎(chǔ)知識(shí)試題(附答案)
- 《現(xiàn)在完成時(shí)》語法復(fù)習(xí)課件(共44張-)
- 巖溶地區(qū)建筑地基基礎(chǔ)技術(shù)規(guī)范DBJ-T 15-136-2018
- 自動(dòng)控制原理(山東大學(xué))智慧樹知到期末考試答案2024年
- ba年會(huì)快閃開場模板
- 游戲你來比劃我來猜的PPT
評(píng)論
0/150
提交評(píng)論