




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、數字邏輯設計和制作報告團隊成員:姓名班級學號貢獻百分比盧振興cs1502u201414596100%實驗部分:實驗完成結果、時間 (亮點、完成、基本完成、未完成)總分(實驗部分70% +報告30%)第一個實驗第二個實驗第三個實驗檢查結果檢查時間檢查老師報告人 :盧振興指導教師 :李開報告批閱教師:李開計算機科學與技術學院2017年6月5日1/14、設計和制作名稱verilog hdl設計一個簡單的運算器。二、設計所用軟件vivado 2015.2 軟件 1 套。三、設計內容設計一個能實現兩種算術運算和兩種邏輯運算的4位運算器。參加運算的4 位二進制代碼分別存放在4個寄存器a、b、c、d中,要求
2、在選擇變量控制下 完成如下4種基本運算: 實現a加b,顯示運算結果并將結果送寄存器a; 實現a減b,顯示運算結果并將結果送寄存器b; 實現a與c,顯示運算結果并將結果送寄存器c; 實現a異或d,顯示運算結果并將結果送寄存器d。圖9給出了運算器的結構框圖。si so h運算結果顯示電路運算0)的功繼s|so功能說明0 0a+aa加b,結果送至a0 1a-bba«b結果送至b1 0acya與c,結果送至c11amda異或d結果送至d圖9.1運算器的結構框圖下圖給出了運算器的完整邏輯電路。fc4y74ls153 dodjdtdsg ao a|74ls139coinfc. 74ls283a.
3、 ai at ai b> bi bia, y* 74ls153 dodidxdia, y* 74ls153 dndidjd,a, yq 74ls153 °doddqb奇存4rd寄存u74ls194rc簣存 s! |74ls194cpcpi &174ls194a青存 si74ls194 so8奇存74ls194四、方案設計簡單運算器的verilog hdl描述。(a)源程序/主程序module main(a,b,c,d,cp,s,k,fc4,y,y 139,f,outa,outb,outc,outd);input 3:0 a,b,c,d;input cp;input 1:
4、0 s;input k;output fc4;output 3:0 y;output 3:0 y139;/wire 3:0 y139;output 3:0 f;output 3:0j outa,outb,outc,outd; /寄存器 a 的輸出譯碼器inter74139 yima(k,s,y139);四個寄存器reg74194 ji a(a,cp&(y1390d,outa,y);reg74194jib(b,cp &(y 139l),outb,y);reg74194 jic(c,cp &(y1392),outc,y);reg74194 jid(d,cp&(y13
5、93),outd,y);加法器add74283adder(outa,(-y 139l)aoutb 3,(y 139l)aoutb 2,(y 139l)aoutbl,(y 139l)aoutb0,y1391,fc4,f);4 個多路選擇器 module choose74153(d,g,a,y);choose74153 choose4(outa3aoutd3,outa3&outc3,f,f3,k, s,y3); choose74153 choose3(outa2aoutd2,outa2&outc2,f2,f2,k, s,y2); choose74153 choose2(outa 1
6、 sutd 1 ,outa 1 &outc 1 ,f 1 ,f 1 ,k, s,y 1 ); choose74153 choose 1(outa0aoutd0,outa0&outc0,f0,f0,k, s,y0);endmodule/寄存器74194module reg74194(in,cp,out,y);/input 1:0 s;input 3:0 y;input 3:0in;input cp;output reg 3:0out;reg flag = 0;初始化initial beginout = 4'b0000;end always (in)begin if(fla
7、g=o)begin out<=in;flag = 1;endelse;end always(posedge cp)begin if(flag=o)begin out <= in;flag = 1;endelse beginout<=y;endendendmodule加法器74283module add74283(a,b,c0,fc4,f);input 3:0 a,b;input co;output reg 3:0f;output reg fc4;reg c1,c2,c3;reg 4:0 data;initialbegindata = 5'booooo;endalway
8、s (*)begindata <= a + b + co;f<= data3:0;fc4 <= data 4;endendmodule多路選擇器74153module choose74153(d,fg, a,y);input 3:0 d;input fg;input 1:0 a;output reg y;/initial/begi n/ y <= 0;/endalways (*)beginif(fg=0)begincase(a)2'b00:y=d0;2'b01:y=dl;2'blo:y=d2;2,bll:y=d3;endcaseendelse y
9、 = 0;endendmodule譯碼器 74139 checked module inter74139(fg,a,fy); input fg;input 1:oa;output reg 3:0fy;initialbeginfy = 21111;endalways (*)begin if(fg=0)begincase(a)2,b00:fy = 4,blll0;2,b01:fy = 4,bll01;2,bl0:fy = 4,bl011;2,bll:fy = 4,b0111; default:fy = 4,bllll;endcaseendelse fy = 2,bllll;endendmodule
10、(b)仿真程序module simu;reg 3:0 a,b,c,d;reg cp;reg 1:0 s;reg k;wire fc4;wire 3:0 y;wire 3:0 y139;wire 3:0 addf;wire 3:0 outa,outb,outc,outd;main inst(a,b,c,d,cp,s,k,fc4,y,y 139,addf,outa,outb,outc,outd); always #50 cp = cp;initialbegink= 1;a = 4,b0111;b=4'b0001;0 = 40010;d = 4*bl000;cp = 0;s = 2'
11、b00;#260 s = 201;#390 s = 210;#520s = 2,bll;#650 s = 210;#780s = 2,b01;#910s = 2,bll;#1040s = 2'b00;# 1170s = 2'b01;#1300s = 2*bl0;endendmodule五、電路綜合和仿真結果記錄(1)給出verilog設計的簡單運算器的電路圖(rtl analysis下的schematic v)is"圖:11簡單運算器電路bs-ss-sss au 5-mbtssa.mw>邑亙o0工。二oo -o o o(2)仿真結果圖:12簡單運算器仿真六、仿真
12、結果分析在仿真時使用的是周期為100個單位時間的時鐘。a寄存器的初值置為0111; b寄存器的初值置為0001; c寄存器的初值置 為0010; d寄存器的初值置為1000c在第一個時鐘觸發時,s1s0的值為00,即選擇的運算方式為a+b->ao0111+0001 = 1000,在時鐘觸發后,a寄存器的輸出值變為1000,符合預期。如圖1.4所示。圖1.4 a寄存器從0111變為1000在幾個時鐘周期后,寄存器a已經累加到了 1010, b變為了 lollo此時,s1s0的值變為01,即選擇運算方式a-b->bo 1010-1011=1111 (借位),在時鐘觸發后,寄存器b的值變
13、為1111。如圖1.5所示。e?c4 w!y3:0 wly1393:0 ad<lf3:0 w! out a 3:0d outb3:0 rg outc3:0 w! outd3:0圖15 b寄存器從1011變為1111在幾個時鐘之后,寄存器a的輸出值為1010,寄存器c的值為0010。s1s0 的值變為10,此時進行a&c>c的運算,運算結果仍然為0010,寄存器c的輸出值保持不變。如圖1.6所示。込cp1uvu1蚯10e k1efc41 wfy3:00010 r8y1393:01011n w!ddp3:o°101y w! out a 3:01010 / r8outb
14、3:01011 / wloutc3:00010 / outd3:01000圖1.6c保持不變在幾個時鐘之后,寄存器a的輸出值為1010, d的輸出值為0010。s1s0的值 變為11,此時進行ad->d的運算,10100010=1000。寄存器d的輸出值變為 1000c如圖1.7所示。i門.3tut1&cpi wsl:0k1&fc4i wly3:0i wly1393:0i w! >ddf l3:0v outal3:0i w! outb3:0i w! outc3:0i wloutd3:0100011100100111010110101011001010000010圖1
15、.7d的輸出值由0010變為1000經過多組測試,運算器結果均符合任務要求。即s1s0輸入00時,實現a+b->a; s1s0 輸入 01 時,實現 a-b->b; s1s0 輸入 10 時,實現 a&c->c; s1s0 輸入11時,實現ad->d。綜上所述,仿真符合實驗要求。七、心得體會、意見與建議在本次實驗中,實驗者成功地實現了兩種算術運算和兩種邏輯運算的4位運 算器。在實現過程中,主要用到的是模塊化的思想,即將寄存器、譯碼器、加法器、 多路選擇器封裝成一個個的小模塊,再在主模塊中對這些模塊進行調用,從而實 現整個電路的連接。由于電路存在輸出的反饋,因此,寄存器的實現需要用到flag作為標志。即, 在第一次輸入時(flag=o)寄存器輸出的是設定的初始值,在之后的輸入中,寄存 器輸出結果y反饋的值。在加法器的實現中,采用了簡易的方法,即直接將輸入的a、b和進位co 相加,儲存到一個5位二進制數中。這樣一來,五位二進制數的最高位即位進位, 低4位即為加法的結果。這種簡易方法能很好地降低代碼的出錯幾率。在模塊聲明變量的過
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 工業旅游示范區開發策略
- 工業污染源控制與環境保護措施
- 工業機器人技術應用與展望
- 工業自動化中圖像處理與機器視覺的結合
- 工業生產中的能源管理與節能技術
- 工業物聯網的發展與挑戰分析
- 工業自動化中的機器學習技術探討
- 工業遺址改造為現代商業街區的實踐案例
- 工業自動化技術及其應用前景
- 工業設計與文化產品創新設計
- 第五單元《面積》(教學設計)-【大單元教學】三年級數學下冊同步備課系列(人教版)
- 閱讀認知策略的跨學科研究框架構建
- 摜蛋考試試題及答案
- GA/T 2159-2024法庭科學資金數據清洗規程
- DB63-T 2129-2023 鹽湖資源開發標準體系
- 企業風險管理-戰略與績效整合(中文版-雷澤佳譯)
- 業務學習踝關節骨折
- 實景演出制作合同協議
- 迅鐳激光切割機操作培訓
- JJF 2241-2025電子停車計時收費表校準規范
- 人文關懷示范病房工作分享課件
評論
0/150
提交評論