隨著個人素質(zhì)的提升,報告使用的頻率越來越高,我們在寫報告的時候要注意邏輯的合理性。大家想知道怎么樣才能寫一篇比較優(yōu)質(zhì)的報告嗎?這里我整理了一些優(yōu)秀的報告范文,希望對大家有所幫助,下面我們就來了解一下吧。
EDA實驗報告篇一
----移位相加8位硬件乘法器電路計
ou 1
移位相加硬件乘法器設(shè)計
一.實驗?zāi)康?/p>
1、學(xué)習(xí)移位相加8 位硬件乘法器電路設(shè)計;
2、學(xué)習(xí)應(yīng)用eda 技術(shù)進(jìn)行項目設(shè)計的能力
二.實驗原理
該乘法器是由8位加法器構(gòu)成的以時序方式設(shè)計的8位乘法器。其乘法原理是:乘法通過逐項移位相加原理來實現(xiàn),從被乘數(shù)的最低位開始,若
為1,則乘數(shù)左移后與上一次的和相加;若為0,左移后以全零相加,直至被乘數(shù)的最高位。
實驗箱內(nèi)部結(jié)構(gòu)圖
:
三.實驗設(shè)備
1.安裝quartus ii 軟件的pc一臺;
2.實驗箱一個 四.實驗步驟
1.輸入下列vhdl程序:
2.編譯程序,并連接實驗箱并下載 3.在實驗箱上按下列要求進(jìn)行設(shè)置:
①選擇模式1 ②clkk控制移位相加速度,接clock0=4hz ③a[7..0]、b[7..0]輸入數(shù)據(jù) 顯示于此4個數(shù)碼管上
④dout[15..0]接數(shù)碼管8/7/6/5,顯示16位乘積:pio31—pio16 ⑤接鍵8(pio49):高電平清0,低電平計算允許
⑥a[7..0]接鍵2/1,輸入8位乘數(shù) pio7—pio0(模式1)⑦b[7..0]接鍵2/1,輸入8位被乘數(shù) pio7—pio0(模式1)
五.實驗結(jié)果
實驗程序編譯運行后rtl電路圖
ou 1)2
(模式
實驗rtl電路
a[7..0]接鍵2/1,輸入8位乘數(shù):a2(十六進(jìn)制)b[7..0]接鍵4/3,輸入8位被乘數(shù):33(十六進(jìn)制)可得結(jié)果dout[15..0]:2046(十六進(jìn)制)六:心得體會
通過電子設(shè)計的數(shù)字部分eda設(shè)計,我們掌握了系統(tǒng)的數(shù)字電子設(shè)計的方法,也知道了實驗調(diào)試適配的具體操作方法。
通過實驗,進(jìn)一步加深了對eda的了解,讓我對它有了濃厚的興趣。但是在調(diào)試程序時,遇到了不少問題,編譯下載程序時,總是有錯誤,在細(xì)心的檢查下,終于找出了錯誤和警告,排除困難后,程序編譯就通過了,心里終于舒了一口氣。
ou 3
EDA實驗報告篇二
eda 實驗報告
張佳興 2220131738 電氣工程及其自動化1班
一、verilog語言反應(yīng)硬件特性舉例
cc(clk,en,cout)、input、output,這三個語句用verilog語言定義了一個邏輯器件,module后邊括號內(nèi)為端口名稱,每個端口都對應(yīng)硬件的一個引腳,引腳的輸入輸出性質(zhì)都由input、output所定義,c語言中對變量的定義,都是int等反應(yīng)數(shù)據(jù)大小的數(shù)據(jù)類型,不能反映硬件特性。
寄存器類型,表示一個具有保持作用的數(shù)據(jù)儲存單元,它只能在always語句和initial語句中被賦值,并且它的值從一個賦值到另一個賦值被保存下來。這種類型就和實際芯片中的寄存器作用一樣,可以將其中數(shù)據(jù)狀態(tài)保存一定時間,c語言中沒有這一類型。
語句當(dāng)其檢測到適當(dāng)狀態(tài)時,執(zhí)行其中內(nèi)容。always @(posedge clk)語句就表明,檢測到高電平執(zhí)行,和實際芯片引腳狀態(tài)變化引起內(nèi)部變化原理一致,c語言中沒有過程賦值這種語句,c中也沒有對高低電平、上升下降沿的判斷條件。
g語言中的模塊例化,將各個模塊程序在例化程序里結(jié)合起來,在硬件層面就相當(dāng)于將各個小的模塊互相連接,構(gòu)成一個大的模塊,c語言中類似的形式是函數(shù),一個函數(shù)可以有子函數(shù),但是c中的函數(shù)不能反應(yīng)硬件特性。
二、數(shù)字頻率計設(shè)計與調(diào)試總結(jié)
在進(jìn)行課程設(shè)計的過程中我遇到了以下幾點困難:
1.在最初設(shè)計時,沒能利用硬件的思想來設(shè)計這個題目,導(dǎo)致頻率頻率計數(shù)的邏輯控制部分設(shè)計不清。在參考老師所提供的框圖后了解應(yīng)將邏輯控制部分單獨設(shè)計成一個模塊,通過en和clr來控制計數(shù),這樣技術(shù)部分就可以將之前的實驗內(nèi)容移植過來,十分簡便。
2.在設(shè)計過程中的,鎖存部分原理沒有搞懂。按照老師的框圖,從前向后分析,發(fā)現(xiàn)鎖存的時鐘clk是之前邏輯控制部分的lock引腳所提供,這樣就將每個周期所計得的頻率結(jié)果在同一個時序通過鎖存器向后傳輸。
3.配置引腳時出錯,將數(shù)碼管的位選引腳順序弄反,導(dǎo)致數(shù)碼管顯示錯誤。仔細(xì)檢查,發(fā)現(xiàn)錯誤,改正后正常運行。4.在拓展功能一的設(shè)計中,將十分頻部分弄錯,最后出來的結(jié)果和預(yù)期差了一些。在當(dāng)堂實驗課中,這個錯誤我沒能及時糾正,回來之后,我對應(yīng)程序認(rèn)真檢查,發(fā)現(xiàn)我的十分頻,被我設(shè)計成了逢9進(jìn)1,導(dǎo)致最后結(jié)果錯誤。
5.發(fā)現(xiàn)了自己很多語法問題,比如在過程賦值中對wire類型數(shù)據(jù)進(jìn)行賦值導(dǎo)致錯誤,module定義的模塊名稱沒有和文件名稱對應(yīng)導(dǎo)致錯誤等,最終我通過ppt及網(wǎng)絡(luò)途徑解決了這些問題。
在這次實驗中,基本功能全部實現(xiàn),并且是我自行制作,拓展功能一,同樣是我自行完成,不過我當(dāng)時得到的結(jié)果有誤差,實驗后我已經(jīng)發(fā)現(xiàn)了問題,改正了錯誤。拓展功能二沒有實現(xiàn)。
三、對課程的建議
1.我希望老師以后的實驗過程中能夠有一個答疑環(huán)節(jié),在實驗前,我們可以對預(yù)習(xí)中不懂的部分進(jìn)行提問。
2..希望老師能增加一些課時,或者給我們一些課外時間去到實驗室,我們的實驗我自我感覺相對別的實驗來說難度還是比較大的,我覺得如果有充足的時間,灑家可以將拓展部分做出來,為自己爭取更好的分?jǐn)?shù)。
EDA實驗報告篇三
實驗一:
quartus ii 軟件使用及組合電路設(shè)計仿真
實驗?zāi)康模?/p>
學(xué)習(xí)quartus ii 軟件的使用,掌握軟件工程的建立,vhdl源文件的設(shè)計和波形仿真等基本內(nèi)容。
實驗內(nèi)容:
1.四選一多路選擇器的設(shè)計 基本功能及原理 :
選擇器常用于信號的切換,四選一選擇器常用于信號的切換,四選一選擇器可以用于4路信號的切換。四選一選擇器有四個輸入端a,b,c,d,兩個信號選擇端s(0)和s(1)及一個信號輸出端y。當(dāng)s輸入不同的選擇信號時,就可以使a,b,c,d中某一個相應(yīng)的輸入信號與輸出y端接通。
邏輯符號如下:
程序設(shè)計:
軟件編譯:
在編輯器中輸入并保存了以上四選一選擇器的vhdl源程序后就可以對它進(jìn)行編譯了,編譯的最終目的是為了生成可以進(jìn)行仿真、定時分析及下載到可編程器件的相關(guān)文件。仿真分析:
仿真結(jié)果如下圖所示
分析:
由仿真圖可以得到以下結(jié)論:
當(dāng)s=0(00)時y=a;當(dāng)s=1(01)時y=b;當(dāng) s=2(10)時y=c;當(dāng)s=3(11)時y=d。符合我們最開始設(shè)想的功能設(shè)計,這說明源程序正確。2.七段譯碼器程序設(shè)計 基本功能及原理:
七段譯碼器是用來顯示數(shù)字的,7段數(shù)碼是純組合電路,通常的小規(guī)模專用ic,如74或4000系列的器件只能作十進(jìn)制bcd碼譯碼,然而數(shù)字系統(tǒng)中的數(shù)據(jù)處理和運算都是2進(jìn)制的,所以輸出表達(dá)都是16進(jìn)制的,為了滿足16進(jìn)制數(shù)的譯碼顯示,最方便的方法就是利用vhdl譯碼程序在fpga或cpld中實現(xiàn)。本項實驗很容易實現(xiàn)這一目的。輸出信號的7位分別接到數(shù)碼管的7個段,本實驗中用的數(shù)碼管為共陽極的,接有低電平的段發(fā)亮。數(shù)碼管的圖形如下
七段譯碼器的邏輯符號:
程序設(shè)計:
軟件編譯:
在編輯器中輸入并保存了以上七段譯碼器的vhdl源程序后就可以對它進(jìn)行編譯了,編譯的最終目的是為了生成可以進(jìn)行仿真、定時分析及下載到可編程器件的相關(guān)文件
。仿真分析:
仿真結(jié)果如下圖所示:
分析: 由仿真的結(jié)果可以得到以下結(jié)論:
當(dāng)a=0(0000)時led7=1000000 此時數(shù)碼管顯示0; 當(dāng)a=1(0001)時led7=1111001 此時數(shù)碼管顯示1; 當(dāng)a=2(0010)時led7=0100100 此時數(shù)碼管顯示2; 當(dāng) a=3(0011)時led7=0110000 此時數(shù)碼管顯示3; 當(dāng) a=4(0100)時led7=0011001 此時數(shù)碼管顯示4; 當(dāng) a=5(0101)時led7=0010010 此時數(shù)碼管顯示5; 當(dāng) a=6(0110)時led7=0000010 此時數(shù)碼管顯示6; 當(dāng) a=7(0111)時led7=1111000 此時數(shù)碼管顯示7; 當(dāng) a=8(1000)時led7=0000000 此時數(shù)碼管顯示8; 當(dāng)a=9(1001)時led7=0010000 此時數(shù)碼管顯示9; 當(dāng)a=10(1010)時led7=0001000 此時數(shù)碼管顯示a; 當(dāng)a=11(1011)時led7=0000011 此時數(shù)碼管顯示b; 當(dāng) a=12(1100)時led7=1000110 此時數(shù)碼管顯示c; 當(dāng)a=13(1101)時led7=0100001 此時數(shù)碼管顯示d; 當(dāng)a=14(1110)時led7=0000110 此時數(shù)碼管顯示e; 當(dāng)a=15(1111)時led7=0001110 此時數(shù)碼管顯示f;
這完全符合我們最開始的功能設(shè)計,所以可以說明源vhdl程序是正確的。
實驗心得:
通過這次實驗,我基本掌握了quartus ii軟件的使用,也掌握了軟件工程的建立,vhdl源文件的設(shè)計和波形仿真等基本內(nèi)容。在實驗中,我發(fā)現(xiàn)eda這門課十分有趣,從一個器件的功能設(shè)計到程序設(shè)計,再到編譯成功,最后得到仿真的結(jié)果,這其中的每一步都需要認(rèn)真分析,一遍又一遍的編譯,修改。當(dāng)然,中間出現(xiàn)過錯誤,但我依然不放棄,一點一點的修改,驗證,最終終于出現(xiàn)了正確的仿真結(jié)果,雖然有一些毛刺,但是總的來說,不影響整體的結(jié)果。
實驗二:計數(shù)器設(shè)計與顯示
實驗?zāi)康模?/p>
(1)熟悉利用quartus ii中的原理圖輸入法設(shè)計組合電路,掌握層次化的設(shè)計方法;
(2)學(xué)習(xí)計數(shù)器設(shè)計,多層次設(shè)計方法和總線數(shù)據(jù)輸入方式的
仿真,并進(jìn)行電路板下載演示驗證。實驗內(nèi)容:
1.完成計數(shù)器設(shè)計
基本功能及原理:
本實驗要設(shè)計一個含有異步清零和計數(shù)使能的4位二進(jìn)制加減可控計數(shù)器,即有一個清零端和使能端,當(dāng)清零端為1時異步清零,即所有輸出值都為0,當(dāng)使能端為0時,計數(shù)器停止工作,當(dāng)使能端為1時,正常工作,由時鐘控制。另外,還應(yīng)該有一個控制端,當(dāng)控制端為0時,進(jìn)行減法運算,當(dāng)控制端為1時,進(jìn)行加法運算。輸出端有輸出值和進(jìn)位端,當(dāng)進(jìn)行加法運算時,輸出值遞增,當(dāng)減法運算時,輸出值遞減,同時進(jìn)位端進(jìn)行相應(yīng)的變化。
4位二進(jìn)制加減計數(shù)器的邏輯符號:
程序設(shè)計:
軟件編譯:
在編輯器中輸入并保存了以上4位二進(jìn)制加減計數(shù)器的vhdl源程序后就可以對它進(jìn)行編譯了,編譯的最終目的是為了生成可以進(jìn)行仿真、定時分析及下載到可編程器件的相關(guān)文件。仿真分析: 仿真結(jié)果如下:
分析:
由仿真圖可以得到以下結(jié)論:
當(dāng)enable端為0時,所有數(shù)值都為0,當(dāng)enable端為1時,計數(shù)器正常工作;當(dāng)reset端為1時,異步清零,所有輸出數(shù)值為0,當(dāng)reset端為0時,正常工作;當(dāng)updown端為0時,進(jìn)行減法運算,當(dāng)updown為1時,進(jìn)行加法運算;另外,當(dāng)程序進(jìn)行減法運算時,出現(xiàn)借位時,co為1,其余為0,當(dāng)進(jìn)行加法運算時,出現(xiàn)進(jìn)位時,co為1,其余為0。圖中所有的功能與我們設(shè)計的完全一樣,所以說明源程序正確。2.50m分頻器的設(shè)計
基本功能及原理:
50m分頻器的作用主要是控制后面的數(shù)碼管顯示的快慢。即一個模為50m的計數(shù)器,由時鐘控制,分頻器所有的端口基本和上述4位二進(jìn)制加減計數(shù)器的端口一樣,原理也基本相同。分頻器的進(jìn)位端(co)用來控制加減計數(shù)器的時鐘,將兩個器件連接起來。50m分頻器的邏輯符號如下:
程序設(shè)計:
軟件編譯:
在編輯器中輸入并保存了以上50m分頻器的vhdl源程序后就可以對它進(jìn)行編譯了,編譯的最終目的是為了生成可以進(jìn)行仿真、定時分析及下載到可編程器件的相關(guān)文件。仿真分析: 結(jié)果如下:
上圖為仿真圖的一部分,由于整個圖太大,所以顯示一部分即可,其余部分如圖以上圖規(guī)律一直遞增,直到50m為止,然后再重復(fù),如此循環(huán)。
上圖是部分輸出的顯示,由于整個圖太大,所以只顯示部分,其余部分如圖遞增。
分析:
由仿真圖可以看出,當(dāng)reset為0,enable為1時(因為本實驗中計數(shù)器的模值太大,為了盡可能多的觀察出圖形,可讓reset一直為0,enable一直為1,即一直正常工作),輸出值由0一直遞增到50m,構(gòu)成一個加法計數(shù)器,與我們設(shè)計的功能一致。3.七段譯碼器程序設(shè)計
基本功能及原理:
七段譯碼器是用來顯示數(shù)字的,7段數(shù)碼是純組合電路,通常的小規(guī)模專用ic,如74或4000系列的器件只能作十進(jìn)制bcd碼譯碼,然而數(shù)字系統(tǒng)中的數(shù)據(jù)處理和運算都是2進(jìn)制的,所以輸出表達(dá)都是16進(jìn)制的,為了滿足16進(jìn)制數(shù)的譯碼顯示,最方便的方法就是利用vhdl譯碼程序在fpga或cpld中實現(xiàn)。本項實驗很容易實現(xiàn)這一目的。輸出信號的7位分別接到數(shù)碼管的7個段,本實驗中用的數(shù)碼管為共陽極的,接有低電平的段發(fā)亮。
七段譯碼器的邏輯符號:
程序設(shè)計:
軟件編譯:
在編輯器中輸入并保存了以上七段譯碼器的vhdl源程序后就可以對它進(jìn)行編譯了,編譯的最終目的是為了生成可以進(jìn)行仿真、定時分析及下載到可編程器件的相關(guān)文件。仿真分析:
仿真結(jié)果如下圖所示:
分析:具體分析與實驗一中七段譯碼器的分析相同,在此不再贅述。計數(shù)器和譯碼器連接電路的頂層文件原理圖:
原理圖連接好之后就可以進(jìn)行引腳的鎖定,然后將整個程序下載到已經(jīng)安裝好的電路板上,即可進(jìn)行仿真演示。
實驗心得:
經(jīng)過本次試驗,我學(xué)到了很多。首先,我加強了對quartus ii軟件的掌握;其次,我掌握了電路圖的頂層文件原理圖的連接,學(xué)會了如何把自己設(shè)計的程序正確的轉(zhuǎn)化為器件,然后正確的連接起來,形成一個整體的功能器件;最后,我學(xué)會了如何安裝以及如何正確的把完整的程序下載到電路板上,并進(jìn)行演示驗證。
實驗三:大作業(yè)設(shè)計
(循環(huán)彩燈控制器)
實驗?zāi)康模?/p>
綜合應(yīng)用數(shù)字電路的各種設(shè)計方法,完成一個較為復(fù)雜的電路設(shè)計。實驗內(nèi)容:
流水燈(循環(huán)彩燈)的設(shè)計 設(shè)計任務(wù):
設(shè)計一個循環(huán)彩燈控制器,該控制器可控制10個發(fā)光二極管循環(huán)點亮,間隔點亮或者閃爍等花型。要求至少三種以上花型,并用按鍵控制花型之間的轉(zhuǎn)換,用數(shù)碼管顯示花型的序號?;驹恚?/p>
該控制器由兩部分組成,一部分是一個50m的分頻器,其主要用來控制花色變化的快慢;另一部分是一個彩燈控制器,該彩燈控制器可由兩個開關(guān)控制花型的序號,10個輸出分別控制10個發(fā)光二極管的亮暗,當(dāng)輸出為1時,該發(fā)光二極管亮,輸出為0時,該二極管滅。將分頻器的co端用來控制彩燈控制器的時鐘,將兩個器件連接起來。1.分頻器的設(shè)計
50m分頻器與實驗二中的分頻器一樣,這里不再贅述。2.彩燈控制器的設(shè)計 基本原理:
該彩燈控制器由時鐘控制,reset異步清零,enable當(dāng)做使能端,由兩個開關(guān)do(0-1)來控制選擇不同的花型,10個輸出端lig(0-9)來控制10個led燈的亮滅。因為用了兩個開關(guān)來控制花型,所以一共有4種花色。
彩燈控制器的邏輯符號:
程序設(shè)計:
3.七段譯碼器的設(shè)計
七段譯碼器是用來顯示不同花型的序號的,其設(shè)計與實驗一中的設(shè)計一樣,這里不再贅述。循環(huán)彩燈控制器的原理圖:
仿真波形如下: 第一種花型:
第二種花型:
第三種花型:
第四種花型:
仿真分析:
將以上仿真波形圖和源程序?qū)Ρ龋覀兛梢钥吹?,仿真出來的波形和我們設(shè)計的功能一致,這說明源vhdl程序是正確的。實驗心得:
本次試驗是在沒有老師指導(dǎo)的情況下自己完成的,我在參考了網(wǎng)上的程序的情況下,最終成功的設(shè)計并正確的演示出了循環(huán)彩燈的不同花型。通過本次試驗,我真正的體會到了dea這門課的樂趣,也發(fā)現(xiàn)它對我們的學(xué)習(xí)和生活帶來很大的方便。
EDA實驗報告篇四
eda
實驗報告
姓名:湯燦亮 學(xué)號:2012118060 班級:1211自動化
實驗一 quartus ⅱ的設(shè)計流程
一、實驗?zāi)康模?/p>
1、掌握quartusⅱ安裝過程;
2、熟悉quartusⅱ設(shè)計環(huán)境;
3、掌握quartusⅱ的設(shè)計過程。
二、實驗內(nèi)容:
用文本輸入法設(shè)計一個二進(jìn)制加法器。
三、實驗步驟:
(一)、創(chuàng)建工作文件夾
在windows中新建一個文件夾(又稱工作庫或work library),用于保存設(shè)計工程項目的有關(guān)文件。注:設(shè)計工程項目的所有有關(guān)文件不能保存在根目錄下,必須保存在一個文件夾之下。例如建立的文件夾:e:cnt10
(二)、啟動quartus ii 點擊quartusⅱ9.0圖標(biāo)打開quartusⅱ9.0設(shè)計窗口?;螯c擊quartusⅱ9.0圖標(biāo)打開quartusⅱ9.0設(shè)計窗口
(三)、設(shè)計文件輸入
1、打開輸入文件編輯器
點擊菜單filenew?選擇verilog hdl file建立一個文本設(shè)計文件。用文本輸入法輸入程序。
2、保存文件,文件名同程序的模塊名。后綴.v
(四)、全編譯(邏輯綜合)
1、創(chuàng)建工程
點擊菜單filenew project wizard…….進(jìn)行工程設(shè)置。完成工程文件夾的選定、工程名、頂層設(shè)計文件名(主程序)、編程器件的選擇等工程設(shè)置。
2、編譯前的相關(guān)設(shè)置設(shè)置
⑴選擇pld芯片:assignmenmtssettingsdevice彈出的窗口中選擇選擇芯片。
⑵選擇配置芯片的工作方式assignmenmtssettingsdevicedevice&pin options彈出的窗口中首選general項,在options欄中選擇auto-restart-configuration after error.⑶選擇配置芯片和編程方式:assignmenmtssettingsdevicedevice&pin options彈出的窗口中選擇configuration欄,在窗口中設(shè)置配置方式,配置芯片和是否需要生成壓縮的配置文件。
⑷選擇輸出設(shè)置:(1)-(4)項默認(rèn)方式,可以不做任何操作,⑸選擇目標(biāo)器件閑置引腳的狀態(tài):assignmenmtssettingsdevicedevice&pin options彈出的窗口中選擇unused pins欄,在窗口中對閑置的引腳設(shè)置,推薦設(shè)置為as input tri-stated。
3、執(zhí)行全程編譯:processingstart compilation。完成對設(shè)計項目的檢 錯、邏輯綜合、結(jié)構(gòu)綜合、配置文件生成以及時序分析。
(五)、功能仿真(或時序仿真)
建議先做功能仿真,以檢驗設(shè)計項目的邏輯真確性,這樣可以提高設(shè)計效率。
1、功能仿真設(shè)置:assignmenmtssettings彈出的窗口中選擇simulator settings。在右邊simulation mode中選擇 functional.2、processinggenerate functional simulation netlist,生成功能仿真所需的文件。
3、建立波形文件并進(jìn)行功能仿真
⑴filenew,在窗口中選擇vector waveform file打開向量波形文件編輯器。
⑵設(shè)置仿真時間區(qū)域:可默認(rèn)。一般幾十微妙。時間區(qū)域過長,使仿真時間變長,影響仿真效率。
⑶在向量波形文件編輯器中添加項目的相關(guān)引腳。原則上是所有引腳,但有的項目引腳很多,可以只添加必要的一些引腳。雙擊向量波形文件編輯器name欄的空白區(qū)域后,會彈出一個“insert node or bus”對話框,在彈出的對話框中選擇“node finder?”按鈕,則彈出“node finder?”對話框,選擇filter:pins:all,然后點擊list,nodes found欄將列出所有輸入、輸出端口。選擇要觀察的信號,點擊“>”命令按鈕加入到觀察目標(biāo)窗口中。選擇ok,則在波形圖中加入了待觀察信號的圖形。
或者執(zhí)行viewutility windowsnode finder命令打開node finder窗口,在彈出的窗口中將所需引腳拖入波形編輯器中。
⑷編輯輸入波形:對所有的輸入引腳設(shè)置合適的波形。⑸啟動仿真器:processingstart simulation.⑹觀察分析仿真結(jié)果。仿真結(jié)果保存于文件“simulation report”,此文件在仿真完成后會自動彈出。若仿真結(jié)果有出入,重新修改程序,直到仿真結(jié)果沒有問題。
(六)、下載驗證:
1、芯片選擇acex1kep1k30qc208-2;
2、引腳鎖定:
3、全編譯;
4、下載線連接:將25針連下一端連接電腦lpt1口,一端連接到編程模塊的db25接口,再用十針連線一頭插入通用編程模塊jtga下載接口處,另一頭連接到目標(biāo)芯片的下載接口。
5、打開實驗箱電源,將模式選擇開關(guān)ctrl的(2)(4)(8)撥至on,使按鍵kd1,kd2,led1,led2,led3,led4,led5等有效。
6、下載:toolsprogrammer,完成下載。
7、撥動開關(guān)按鍵kd1,kd2驗證電路。
四、實驗程序及仿真結(jié)果
(一)、實驗程序:
時序仿真結(jié)果:
波形文件及仿真:
五、實驗箱現(xiàn)象描述
注:在程序正確,正確操作實驗箱并成功下載并正常運行程序的前提下,現(xiàn)象為:實驗箱上一排設(shè)定的led燈,分別為4個表示四位二進(jìn)制碼,一個表示使能信號en,一個表示復(fù)位信號rst,一個表示置數(shù)信號,一個進(jìn)位位cout,高電平時表示進(jìn)位,四個用于置數(shù)的燈。en信號高電平有效,低電平起保持作用,rst低電平有效,起復(fù)位作用,load信號低電平有效,起置數(shù)作用。啟動實驗箱,讓en燈亮(高電平),rst燈亮(高電平),load燈亮(高電平),此時表示四位二進(jìn)制碼的led燈分別從0到9計數(shù)(約為1s記一個數(shù)),到10的時候,顯示數(shù)的四個led燈表示成0(全滅),進(jìn)位位燈(cout)閃動一次(表示進(jìn)一位),如此反復(fù)。使en燈熄滅(低電平),顯示數(shù)的燈停止變動,保持在它當(dāng)前所表示的數(shù)值。恢復(fù)en燈亮,繼續(xù)計數(shù)。使rst燈熄滅(低電平),顯示數(shù)的燈立即變?yōu)槿珳纾ū硎緩?fù)位為0)。設(shè)置任意值,使load燈熄滅(低電平),顯示燈變成設(shè)置的數(shù)值,然后正常計數(shù)。
六、心得體會
在這次實驗中,quartus ii軟件是英文版的,一下基本功能在第一次中還是不夠熟悉,通過問老師同學(xué),慢慢的了解到quartus ⅱ軟件的基本使用方法,以及從編寫程序到下載到實驗箱驗證運行的基本流程,實驗二用原理圖輸入法設(shè)計2位頻率計
一、實驗?zāi)康模?/p>
1.熟悉和掌握用quartus ⅱ的原理圖輸入方法設(shè)計簡單數(shù)字系統(tǒng)的方法,并通過一個2位頻率計的設(shè)計掌握用eda軟件進(jìn)行數(shù)字系統(tǒng)設(shè)計的詳細(xì)流程。2.掌握用eda技術(shù)的層次化設(shè)計方法; 3.掌握多個數(shù)碼管動態(tài)顯示的原理與方法
二、實驗內(nèi)容
用原理圖輸入法設(shè)計一個2位頻率計
三、實驗步驟
1.在頂層文件設(shè)計窗口中設(shè)計頻率計,頻率計的設(shè)計分成幾部分設(shè)計,分別是一個2位十進(jìn)制計數(shù)器,一個時序控制電路,一個顯示電路模塊。
2.先設(shè)計2位十進(jìn)制計數(shù)器,如圖顯示為設(shè)計好的2位十進(jìn)制計數(shù)器。
步驟:(1)、點擊file—new,彈出如圖所示窗口,點擊design file中block diagram/schematic file,再點擊ok即可。(2)、在彈出的bdf文件設(shè)計窗口中設(shè)計所需的設(shè)計,設(shè)計完成后,點擊編譯按鈕,編譯無誤后,再進(jìn)行時序仿真。
結(jié)果如圖:
(3)、即可點擊file—created/update—create symbol files for current file.生成元件符號,供高層次設(shè)計調(diào)用。注意:需要獨立建立工程,2位十進(jìn)制計數(shù)器的工程名和bdf文件名都為counter8。
3、設(shè)計時序控制電路,設(shè)計步驟與設(shè)計2位類似,設(shè)計完成后,一樣需要設(shè)計文件符號供高層次設(shè)計調(diào)用,如圖為設(shè)計好的時序控制電路。
4.在頂層設(shè)計窗口中設(shè)計頂層設(shè)計,最終的設(shè)計如圖
進(jìn)行時序仿真無誤后進(jìn)行波形仿真,結(jié)果如圖:
可以從波形仿真中看出,當(dāng)輸入的待測信號的周期為410ns的時候,所測的的頻率的最后兩位為39。
四、試驗箱驗證及現(xiàn)象描述
引腳正確設(shè)定并正確下載到試驗箱后,調(diào)節(jié)待測信號頻率,當(dāng)輸入為4hz時,數(shù)碼管上顯示04,當(dāng)輸入為8hz,數(shù)碼管上顯示08,當(dāng)輸入為16hz時,數(shù)碼管
上顯示為16,當(dāng)輸入為128hz時,數(shù)碼管上顯示為28。
五、心得體會
這次實驗中,按照書上面的接線圖,完成基本的接線,然后在電腦上面設(shè)計原理圖,進(jìn)行實驗的測試,掌握用eda技術(shù)的層次化設(shè)計方法,在實驗中也出現(xiàn)過點失誤,軟件運行出錯,經(jīng)過檢查,發(fā)現(xiàn)軟件沒有破解,在實驗中還是要注意小細(xì)節(jié)。
實驗三簡易正弦波信號發(fā)生器設(shè)計
一、實驗?zāi)康模?/p>
1、進(jìn)一步熟悉quartusii設(shè)計流程;
2、熟悉lmp_rom與fpga硬件資源的使用方法。3、熟悉signaltap ii嵌入式邏輯分析儀的使用方法。
二、實驗內(nèi)容
用原理圖設(shè)計一個簡易的正弦波信號發(fā)生器。
三、實驗步驟
1.建立一個工程,取名為sin_gnt。
文件,用直接編輯法。點擊file—new—memory file—memory initialization file,點擊ok,選number為128位,word size為8位,點擊ok,填寫 表格,結(jié)果如圖
3.以原理圖方式對lpm_rom進(jìn)行設(shè)置和調(diào)用,在工程原理圖編輯窗中雙擊,出現(xiàn)symbol框圖中點擊megawizard plug-in manager,在所示窗口中點擊memory compiler的rom:1-port,取文件名為rom78,,即可生成正弦信號數(shù)據(jù)存儲器rom,如圖所示
4.用原理圖方式對7為計數(shù)器lpm模塊,方法與制作rom78模塊類似,如圖所示
5.新建一個原理圖設(shè)計窗口,取名為sin_gnt,在窗口里面設(shè)計所需的電路,結(jié)果如圖,進(jìn)行時序仿真,無誤后建立波形文件,結(jié)果如圖
由圖可知,在時間脈沖的作用下,ar計數(shù),相對于的,q也從正弦信號數(shù)據(jù)存儲器rom中輸出相對應(yīng)的數(shù)值,由這兩項,這可以在示波器上輸出正弦波。
四、心得體會
在實驗中,lpm 是參數(shù)可設(shè)置模塊庫library of parameterized modules 的英語縮寫,altera 提供的可參數(shù)化宏功能模塊和lpm 函數(shù)均基于altera 器件的結(jié)構(gòu)做了優(yōu)化設(shè)計。在許多實用情況中,必須使用宏功能模塊才可以使用一些altera 特定器件的硬件功能。例如各類片上存儲器、dsp 模塊、lvds 驅(qū)動器、嵌入式pll 以及serdes 和ddio 電路模塊等等。這些可以以圖形或硬件描述語言模塊形式方便調(diào)用的宏功能塊,使得基于eda 技術(shù)的電子設(shè)計的效率和可靠性有了很大的提高lpm可實現(xiàn)基于lpm的流水線的累加器的設(shè)計,邏輯數(shù)據(jù)采樣電路設(shè)計,簡易正弦信號發(fā)生器的設(shè)計
實驗四用狀態(tài)機實現(xiàn)序列檢測器的設(shè)計
一、實驗?zāi)康?/p>
1、熟悉狀態(tài)機的作用及設(shè)計方法;
2、學(xué)習(xí)用狀態(tài)機實現(xiàn)序列檢測器的設(shè)計,并對其進(jìn)行仿真和硬件測試。
二、實驗原理
序列檢測器可用于檢測一組或多組由二進(jìn)制碼組成的脈沖序列信號,當(dāng)序列檢測器連續(xù)收到一組串行二進(jìn)制碼后,如果與檢測器預(yù)先設(shè)置的碼相同,則輸出為1,否則輸出為0。
三、實驗內(nèi)容
設(shè)計一個序列檢測器,對1110010進(jìn)行檢測,對設(shè)計進(jìn)行仿真測試并給出仿 真波形。
四、實驗步驟
(1)運行軟件,創(chuàng)建一個工程,取名為shck,打開文本文件編輯窗口,輸入編寫好的程序,如圖所示。
取名為shiyan4,保存生成shiyan4.v文件。
(2)編譯,時序仿真,直至無錯誤。
(3)建立波形文件,保存,取名為shck。設(shè)置各個需要的設(shè)置的參數(shù),仿真時間設(shè)置為50us,時鐘信號周期為4us,復(fù)位信號高電平有效,一般情況保持低電平,設(shè)置輸入信號din含有輸入數(shù)據(jù)段如圖1110010,如圖所示
(4)點擊波形仿真,結(jié)果如圖
由仿真結(jié)果可以看出,只有當(dāng)輸入完整的1110010時,輸出信號才是高電平。(5)點擊tools—netlist viewers—state machine viewers,查看狀態(tài)轉(zhuǎn)換表。
四、心得體會
通過本次實驗掌握了如何用verilog hdl語言實現(xiàn)狀態(tài)機的原理,運用狀態(tài)機實現(xiàn)序列檢測器的設(shè)計,進(jìn)一步掌握了課堂上所學(xué)到的知識,但同時充分的感覺到了自己的不足之處,今后一定要加強自己弱勢方面的學(xué)習(xí),用心學(xué)好eda教科書上的知識,并抽時間在課外進(jìn)行深入地學(xué)習(xí),相信下次試驗情況會有很大程度的改觀
EDA實驗報告篇五
xx大學(xué)
university 《eda技術(shù)》實驗報告
學(xué)
院:電子與信息工程學(xué)院
專
業(yè):電子信息科學(xué)與技術(shù)
姓
名:
xxx
班
級:
xxx
學(xué)
號:
xxxxxxxxx
指導(dǎo)老師:
xxx
這是模板,僅供參考,做實驗報告的步驟都有,大家最好自己操練下,里面只有三個實驗的例子
max+plus 實驗名稱:設(shè)計作業(yè)(實驗一)四選一多路選擇器
一、實驗?zāi)康模菏煜ax+plus軟件的操作及應(yīng)用
二、實驗步驟
1建立存儲工程的文件夾,如下:
2.打開max+plusii軟件
3.建立工程
4.新建文本文件并以vhd格式保存()
5.敲入mux21代碼使其生成四選一芯片
5.1點擊max+puls ii/compiler進(jìn)行編譯
5.2點擊file/edit symbol即可對生成的四選一芯片進(jìn)行編輯
6.建立電路圖文件并保存(注意保存的名字不能與文本名字一致)
然后在空白處點擊右鍵再點擊enter symbol,雙擊剛剛建立的芯片即可
接下來就構(gòu)建原理圖了
進(jìn)行編譯后,如果要下載到開發(fā)板上的話還要選擇引腳
點擊此處拖到芯片的引腳即可
7.建立波形圖并保存
點擊node/enter nodes from...這樣在波形圖中就把電路圖的輸入輸出引腳全部調(diào)進(jìn)來了 在里面選擇各個輸入引腳的的信號就行了
經(jīng)過編譯后再仿真(點擊max +plus/simulator)就可得到輸出的波形了 max+plus 設(shè)計作業(yè)(實驗二)實驗名稱:全加器的制作
一、實驗?zāi)康模菏炀氄莆誱ax+plus軟件的操作
二、實驗步驟
1.組成部件半加器源代碼 library ieee;use ;use ;use ;entity h_addr is port(a,b :in std_logic;co,so:out std_logic);end h_addr;architecture a of h_addr is begin so <= a xor b;co <= a and b;end a;2 全加器電路原理圖如下圖一所示:
圖一時序仿真圖形
max+plus 設(shè)計作業(yè)(實驗三)實驗名稱:矩陣鍵盤的制作
一、實驗?zāi)康模菏煜ax+plus軟件的操作及應(yīng)用
二、實驗步驟 文件的設(shè)計
library ieee;use ;use ;entity scanselect is port(clk:in std_logic;
res:in std_logic;in1,in2,in3,in4,in5,in6:in std_logic_vector(3 downto 0);sel:out std_logic_vector(2 downto 0);daout:out std_logic_vector(3 downto 0));end scanselect;architecture behave of scanselect is begin process(clk)variable cnt:std_logic_vector(2 downto 0);begin if(clk'event and clk='1')then
if res='0'then
cnt:=“000”;
else if cnt=“101” then cnt:=“000”;else cnt:=cnt+1;end if;end if;if cnt=“000” then daout(0)<=in1(0);daout(1)<=in1(1);daout(2)<=in1(2);daout(3)<=in1(3);elsif cnt=“001” then daout(0)<=in2(0);daout(1)<=in2(1);daout(2)<=in2(2);daout(3)<=in2(3);elsif cnt=“010” then daout(0)<=in3(0);daout(1)<=in3(1);daout(2)<=in3(2);daout(3)<=in3(3);elsif cnt=“011” then daout(0)<=in4(0);daout(1)<=in4(1);daout(2)<=in4(2);daout(3)<=in4(3);elsif cnt=“100” then daout(0)<=in5(0);daout(1)<=in5(1);daout(2)<=in5(2);daout(3)<=in5(3);elsif cnt=“101” then daout(0)<=in6(0);daout(1)<=in6(1);daout(2)<=in6(2);daout(3)<=in6(3);end if;end if;sel<=cnt;end process;end behave;
2.生成的圖形
2.電路圖層的設(shè)計