版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p> 《VLSI設(shè)計基礎(chǔ)》課程設(shè)計報告</p><p> 班 級: 電子10-02班</p><p> 學(xué) 號: 1006040208</p><p><b> 姓 名: </b></p><p><b> 指導(dǎo)教師: </b></p>
2、<p><b> 8位移位寄存器設(shè)計</b></p><p><b> 一、設(shè)計要求 </b></p><p> 1.查閱書籍資料,根據(jù)題目要求確定電路結(jié)構(gòu); </p><p> 2.明確電路實現(xiàn)的功能;</p><p> 3.明確電路中端口的數(shù)目、所聯(lián)接的信號類型以及工作時序
3、;</p><p> 4.采用Modelsim、Quartus II、Altium designer 中的任一種軟件,基于Verilog或VHDL語言設(shè)計綜合設(shè)計題目中電路,實現(xiàn)功能仿真。 </p><p><b> 二、設(shè)計目的 </b></p><p> 1.培養(yǎng)學(xué)生綜合運用所學(xué)知識獨立完成課題的工作能力,為畢業(yè)設(shè)計打好基</p
4、><p><b> 礎(chǔ);</b></p><p> 2.培養(yǎng)學(xué)生從文獻和調(diào)查研究中獲取知識的能力,提高學(xué)生從別人經(jīng)驗,從</p><p> 其他學(xué)科找到解決問題的新途徑的悟性;</p><p> 3.培養(yǎng)學(xué)生綜合運用本專業(yè)基本理論、基本知識和基本技能的能力,使學(xué)生</p><p> 獲得從事
5、本專業(yè)工程技術(shù)工作的基本訓(xùn)練; </p><p> 4.培養(yǎng)學(xué)生勇于探索,嚴謹推理,實事求是,用實踐來檢驗理論、全方位地</p><p> 考慮問題等科學(xué)技術(shù)人員應(yīng)具有的素質(zhì); </p><p> 5.提高學(xué)生對工作認真負責、一絲不茍,對同學(xué)友愛團結(jié)、協(xié)作攻關(guān),對新</p><p> 事物能潛心考察,勇于開拓,勇于實踐的基本素質(zhì)。&l
6、t;/p><p><b> 三、設(shè)計的具體實現(xiàn)</b></p><p><b> 1.電路概述 </b></p><p> 此電路由8個4選1數(shù)據(jù)選擇器、8個帶異步清零的D觸發(fā)器組成。所有的數(shù)據(jù)選擇器編碼端分別對應(yīng)地接在一起,同時選擇D觸發(fā)器的信號數(shù)據(jù)來源。D觸發(fā)器時鐘端CP接一起,清零端也同樣接在一起,這樣可以保證級聯(lián)
7、D觸發(fā)器的同步,和并行輸出數(shù)據(jù)的清零。另,每個D觸發(fā)器的輸出對應(yīng)一位并行輸入。Dsr是右移串行數(shù)據(jù)輸入端,Dsl是左移串行數(shù)據(jù)輸入端,分別接最低有效位對應(yīng)的數(shù)據(jù)選擇器和最高有效位對應(yīng)的數(shù)據(jù)選擇器。</p><p> 圖3 8位雙向移位寄存器</p><p> 表2 8位雙向移位寄存器真值表</p><p> 2. 設(shè)計綜合電路 </p>&l
8、t;p><b> 設(shè)計流程</b></p><p> 編寫源代碼。打開QuartusII軟件平臺,點擊File中得New建立一個文件。編寫的文件名與實體名一致,點擊File/Save as以“.vhd”為擴展名存盤文件;</p><p> 按照實驗箱上FPGA的芯片名更改編程芯片的設(shè)置。操作是點擊Assign/Device,選取芯片的類型;</p&g
9、t;<p> 編譯與調(diào)試。確定源代碼文件為當前工程文件,點擊Complier進行文件編譯。編譯結(jié)果有錯誤或警告,則將要調(diào)試修改直至文件編譯成功;</p><p> 波形仿真及驗證。在編譯成功后,點擊Waveform開始設(shè)計波形。點擊“insert the node”,按照程序所述插入節(jié)點。</p><p> 時序仿真。將波形區(qū)域分段顯示,如每個10.0ns重復(fù)一次步驟四
10、,分別設(shè)置不同的a,b的輸入波形,點擊保存按鈕保存,從而得出相應(yīng)的結(jié)果,最后形成完整的連續(xù)的時序仿真圖。</p><p><b> 程序源代碼</b></p><p> ENTITY shifter IS</p><p><b> PORT (</b></p><p> data_in
11、: IN STD_LOGIC_VECTOR(7 DOWNTO 0); --輸入的數(shù)據(jù)</p><p> n : IN STD_LOGIC_VECTOR(2 DOWNTO 0); --移位的數(shù)量</p><p> dir : IN STD_LOGIC; --移動的方向 0:左 1:右</p><p> ki
12、nd : IN STD_LOGIC_VECTOR(1 DOWNTO 0); </p><p> --移動類型 00:算術(shù)移 01:邏輯移 10:循環(huán)移</p><p> clock : IN BIT; --手動時鐘PULSE</p><p> data_out : OUT STD
13、_LOGIC_VECTOR(7 DOWNTO 0) --移位的結(jié)果</p><p><b> );</b></p><p> END shifter;</p><p> ARCHITECTURE behav of shifter IS</p><p><b> BEGIN</b><
14、/p><p> PROCESS (data_in, n, dir, kind) </p><p> VARIABLEx,y : STD_LOGIC_VECTOR(7 DOWNTO 0);</p><p> VARIABLEctrl0,ctrl1,ctrl2 : STD_LOGIC_VECTOR (3 DOWNTO 0);</p><p&g
15、t;<b> BEGIN</b></p><p> IF (clock'EVENT AND clock = '1')THEN --產(chǎn)生控制向量ctrl</p><p> ctrl0 := n(0) & dir & kind(1) & kind(0);</p><p>
16、ctrl1 := n(1) & dir & kind(1) & kind(0);</p><p> ctrl2 := n(2) & dir & kind(1) & kind(0);</p><p> CASE ctrl0 IS</p><p> WHEN "0000" | "0001
17、" | "0010" | "0100" | "0101" | "0110"=> x := data_in; </p><p> --n=0時不移動WHEN "1000" => x := data_in(6 DOWNTO 0) & data_in(0); --算術(shù)左移1位 &
18、lt;/p><p> WHEN "1001" => x := data_in(6 DOWNTO 0) & '0'; --邏輯左移1位 </p><p> WHEN "1010" => x := data_in(6 DOWNTO 0) & data_in(7); --循環(huán)左移
19、1位</p><p> WHEN "1100" => x := data_in(7) & data_in(7 DOWNTO 1); --算術(shù)右移1位 </p><p> WHEN "1101" => x := '0' & data_in(7 DOWNTO 1); --邏
20、輯右移1位 </p><p> WHEN "1110" => x := data_in(0) & data_in(7 DOWNTO 1); --循環(huán)右移1位</p><p> WHEN others => null;</p><p><b> END CASE;</b></p>
21、;<p> CASE ctrl1 IS </p><p> WHEN "0000" | "0001" | "0010" | "0100" | "0101" | "0110" => y := x;</p><p><b&g
22、t; --n=0時不移動</b></p><p> WHEN "1000" => y := x(5 DOWNTO 0) & x(0) & x(0); --算術(shù)左移2位 </p><p> WHEN "1001" => y := x(5 DOWNTO 0) & "00&q
23、uot;; --邏輯左移2位 </p><p> WHEN "1010" => y := x(5 DOWNTO 0) & x(7 DOWNTO 6); --循環(huán)左移2位</p><p> WHEN "1100" => y := x(7) & x(7) & x(7 DOWNT
24、O 2); --算術(shù)右移2位 </p><p> WHEN "1101" => y := "00" & x(7 DOWNTO 2); --邏輯右移2位 </p><p> WHEN "1110" => y := x(1 DOWNTO 0) & x(7
25、DOWNTO 2); --循環(huán)右移2位</p><p> WHEN others => null;</p><p><b> END CASE;</b></p><p> CASE ctrl2 IS</p><p> WHEN "0000" | "0001"
26、| "0010" | "0100" | "0101" | "0110"=> data_out <= y; </p><p><b> --n=0時不移動</b></p><p> WHEN "1000" => data_out <= y(3
27、DOWNTO 0) & y(0) & y(0) & y(0) & y(0); </p><p> --算術(shù)左移4位 </p><p> WHEN "1001" => data_out <= y(3 DOWNTO 0) & "0000"; --邏輯左移4位 </p>&
28、lt;p> WHEN "1010" | "1110" => data_out <= y(3 DOWNTO 0) & y(7 DOWNTO 4); </p><p> --循環(huán)左(右)移4位</p><p> WHEN "1100" => data_out <= y(7) & y(
29、7) & y(7) & y(7) & y(7 DOWNTO 4); </p><p><b> --算術(shù)右移4位 </b></p><p> WHEN "1101" => data_out <= "0000" & y(7 DOWNTO 4); --邏輯右移4位
30、 </p><p> WHEN others => null;</p><p> END CASE; </p><p><b> END IF;</b></p><p> END PROCESS;</p><p> END behav;</p>
31、<p><b> 編譯過程、調(diào)試結(jié)果</b></p><p><b> 3.仿真 </b></p><p> 時序仿真過程及仿真結(jié)果</p><p> 多次實驗后比以前更熟悉軟件,所以運行時序仿真功能的過程也較為順利。雖然把波段為50ns,但從截圖中還是可以看出,輸出信號較輸入信有時間差,即電路信號通過門
32、電路時還是有延遲的現(xiàn)象。設(shè)置為算數(shù)移(kind=00),每次都移動一位(n=001),前半部分選定右移(dir=1)后半部分選定左移(dir=0),可以清楚地看到功能的實現(xiàn)。</p><p> 功能仿真過程及仿真結(jié)果</p><p> 完成時序仿真之后在Assignment的Settings中選定仿真類型為Function(功能仿真),對波形圖進行保存然后運行,即生成功能仿真圖。從圖中
33、可以看到,延遲現(xiàn)象得到解決,各個波段輸入對應(yīng)輸出更加清楚。在時序仿真中弄不太明白的clock的作用也在這里得到解決:clock=1左/右移功能實現(xiàn),clock=0功能未執(zhí)行,輸出保留為上一個波段的結(jié)果。</p><p><b> 四、結(jié)論與展望 </b></p><p> 通過這次的實驗,我移位寄存器無論從功能還是原理方面都有了較為系統(tǒng)的了解和學(xué)習(xí)。這次實驗沒有給
34、現(xiàn)成的代碼,不過在網(wǎng)上可以找到對應(yīng)的源代碼,而且源代碼附著較為詳細的注釋,方便了我的學(xué)習(xí)。找到源代碼之后的編譯、仿真部分因為熟能生巧,都較為順利。但一開始仿真時候波段的值沒有選好,亂七八糟的找不到對比,這對理解分析功能造成了一定的困惑。多次重復(fù)試驗之后,終于畫出來可以幫助我更好理解左/右移意義的仿真圖。雖然有點繁瑣,但是所幸有所收獲。</p><p><b> 五、心得體會及建議</b>&
35、lt;/p><p> 通過此次課程設(shè)計,使我更加扎實的掌握了有關(guān)8位移位寄存器的知識,在設(shè)計過程中雖然遇到了一些問題,但經(jīng)過一次又一次的思考,一遍又一遍的檢查終于找出了原因所在,這也讓我們發(fā)現(xiàn)了自身的不足。在課程設(shè)計過程中,我們不斷發(fā)現(xiàn)錯誤,不斷改正,不斷領(lǐng)悟,不斷獲齲最終的檢測調(diào)試環(huán)節(jié),本身就是在踐行“過而能改,善莫大焉”的知行觀。這次課程設(shè)計終于順利完成了,在設(shè)計中遇到了很多問題,最后在老師的指導(dǎo)下,終于迎刃而
36、解。在今后社會的發(fā)展和學(xué)習(xí)實踐過程中,一定要不懈努力,不能遇到問題就想到要退縮,一定要不厭其煩的發(fā)現(xiàn)問題所在,然后一一進行解決,只有這樣,才能成功的做成想做的事,才能在今后的道路上劈荊斬棘,而不是知難而退,那樣永遠不可能收獲成功,收獲喜悅,也永遠不可能得到社會及他人對你的認可!課程設(shè)計誠然是一門專業(yè)課,給我很多專業(yè)知識以及專業(yè)技能上的提升,同時又是一門講道課,一門辯思課,給了我許多道,給了我很多思,給了我莫大的空間。同時,設(shè)計讓我感觸很
37、深。使我對抽象的理論有了具體的認識。通過這次課程設(shè)計,我掌握了常用元件的識別和測試,熟悉了常用儀器、儀表,了解了電路的連線方法,以及如何提高電路的性能等等,掌握了焊</p><p> 回顧起此課程設(shè)計,至今我仍感慨頗多,從理論到實踐,在這段日子里,可以說得是苦多于甜,但是可以學(xué)到很多很多的東西,同時不僅可以鞏固了以前所學(xué)過的知識,而且學(xué)到了很多在書本上所沒有學(xué)到過的知識。通過這次課程設(shè)計使我懂得了理論與實際相結(jié)
38、合是很重要的,只有理論知識是遠遠不夠的,只有把所學(xué)的理論知識與實踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會服務(wù),從而提高自己的實際動手能力和獨立思考的能力。在設(shè)計的過程中遇到問題,可以說得是困難重重,但可喜的是最終都得到了解決。實驗過程中,也對團隊精神的進行了考察,讓我們在合作起來更加默契,在成功后一起體會喜悅的心情。果然是團結(jié)就是力量,只有互相之間默契融洽的配合才能換來最終完美的結(jié)果。此次設(shè)計也讓我明白了思路即出路,有什么不懂不明
39、白的地方要及時請教或上網(wǎng)查詢,只要認真鉆研,動腦思考,動手實踐,就沒有弄不懂的知識,收獲頗豐。</p><p><b> 六、參考文獻 </b></p><p> [1]康華光.電子技術(shù)基礎(chǔ)數(shù)字部分[M].北京:高等教育出版社, 2006</p><p> [2]趙艷華,曹丙霞,張睿.基于Quartus II的FPGA/CPLD設(shè)計與應(yīng)用
40、[M].北京:電子工業(yè)出版社, 2009</p><p> [3]周潤景,蘇良碧.基于Quartus II的數(shù)字系統(tǒng)Verilog HDL設(shè)計實例詳解[M].北京:電子工業(yè)出版社,2010</p><p> [4]喬廬峰,王志功.Verilog HDL數(shù)字系統(tǒng)設(shè)計與驗證[M].北京:電子工業(yè)出版社,2009</p><p> [5]何賓.EDA原理及Veril
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 移位寄存器
- 74hc164是8位移位寄存器
- 設(shè)計8位雙向移位寄存器電路
- 移位寄存器型彩燈控制器課程設(shè)計
- 8位串入并出移位寄存器電路的設(shè)計
- eda課程設(shè)計---串入并出移位寄存器
- 雙向移位寄存器
- 實驗5 移位寄存器設(shè)計
- 移位寄存器71669
- 移位寄存器66874
- 移位寄存器70889
- eda課程設(shè)計報告---串入并出移位寄存器
- 移位寄存器66798
- 移位寄存器的設(shè)計與實現(xiàn)
- 移位寄存器66934
- 移位寄存器66762
- 移位寄存器及其應(yīng)用
- 線性反饋移位寄存器
- 集成移位寄存器應(yīng)用實驗
- 移位寄存器及應(yīng)用
評論
0/150
提交評論