




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、實驗八 數(shù)字電路功能與實現(xiàn)本章運用FPGA來完成數(shù)字電路的功能實現(xiàn)。數(shù)字電路實驗主要包括4位全加器、觸發(fā)器、8位計數(shù)器、8位乘法器、鎖存器、7段數(shù)碼管顯示譯碼器以及七人投票表決器,文中介紹了實驗原理、ISE功能仿真、chipscope在線觀測與調(diào)試。8.1 4位全加器實驗1 實驗原理全加器是指能進行加數(shù)、被加數(shù)和低位來的進位信號相加,并根據(jù)求和結(jié)果給出該位的進位。四位加法器可以采用四個一位全加器級連成串行進位加法器,實現(xiàn)框圖如圖8-1所示,其中CSA為一位全加器。顯然,對于這種方式,因高位運算必須要等低位進位來到后才能進行,因此它的延遲非??捎^,高速運算肯定無法勝任。圖8-1 四位串行加法器原
2、理圖8-1中,A和B為加法器的輸入位串,對于四位加法器則位寬為4位,D為加法器輸出位串,和輸入位串相同,C為進位輸入( Ci ) 或輸出 ( Co )。全加器的真值表如下所示。 表8-1 全加器的真值表輸入輸出Xi Yi Ci-1Si Ci 0 0 00 0 10 1 00 1 11 0 01 0 11 1 01 1 10 01 01 00 11 00 10 11 1實現(xiàn)代碼為:module adder4(cout,sum,ina,inb,cin);output3:0 sum;output cout;input3:0 ina,inb;input cin;assign cout,sum=ina+
3、inb+cin;endmodule2. 實驗目的(1) 熟悉 ISE9.1 開發(fā)環(huán)境,掌握工程的生成方法;(2) 熟悉 SEED-XDTK XUPV2Pro 實驗環(huán)境;(3) 了解 Verilog HDL語言在 FPGA 中的使用;(4) 了解4位全加器的Verilog HDL語言實現(xiàn)。3. 實驗內(nèi)容(1)用Verilog HDL語言設計4位全加器,進行功能仿真驗證;(2)使用chipscope-Pro 生成 ILA/ICON 核,在線觀測調(diào)試。4. 實驗準備(1)將 USB 下載電纜與計算機及 XUPV2Pro 板的 J8 連接好; (2)將 RS232 串口線一端與計算機連接好,另一端與板
4、卡的 J11 相連接; (3)啟動計算機后,將 XUPV2Pro 板的電源開關 SW11 打開到 ON 上。觀察 XUPV2Pro 板上的2.5V,3.3V,1.5V 的電源指示燈是否均亮,若有不亮的,請斷開電源,檢查電源;5. 實驗步驟(1)創(chuàng)建工程及設計輸入1) 在E:project目錄下,新建名為count8的新工程;器件族類型(Device Family)選擇“Virtex2P”器件型號(Device)選“XC2VP30 ff896 -7”綜合工具(Synthesis Tool)選“XST (VHDL/Verilog)”仿真器(Simulator)選“ISE Simulator”2)設
5、計輸入,在源代碼窗口中單擊右鍵,在彈出的菜單中選擇New Source,在彈出的對話框中選擇Verilog Moudle ,在右端的File name 中輸入源文件名adder4,下面各步點next,然后在彈出的源代碼編輯框內(nèi)輸入前面所示的源代碼并保存即可。(2) 功能仿真1)在sources窗口sources for中選擇Behavioral Simulation;2)由Test Bench WaveForm添加激勵源,如下圖所示。圖8-2 波形激勵編輯窗口然后在processes窗口中點擊simulater behavioral model即開始仿真,仿真結(jié)果如下:圖8-3 仿真結(jié)果從圖中
6、可以驗證由Verilog HDL語言設計的4位全加器的工作是正確的。由于此全加器沒有時鐘輸入,所以不必進行User Constraints。(3)用chipscope進行在線調(diào)試這里使用的是核生成法。1) 生成chipscope核代碼比較簡單,這里只需要ICON和VIO這兩個核即可。打開chipscope pro core generator,下面的8-4圖至8-6圖是ICON核的生成過程,8-7圖至8-8圖是VIO核的生成過程。圖8-4 操作示意圖8-5操作示意在output netlist位置指向adder4所在的路徑,在device family里選virtex2p器件,由于只用了VIO
7、核,所以ICON的控制端口數(shù)設置為1。圖8-6 操作示意如上圖中選定HDL語言為verilog,綜合工具為xilinx XST。 在接下來的VIO和生成過程中,選定VIO前的復選框進入VIO核的生成過程。路徑也選擇adder4所在位置,器件類型為virtex2p,然后在輸入輸出端口設置過程中選定異步輸入端口和異步輸出端口。異步輸入端口寬度根據(jù)ina(4位)、inb(4位)、cin(1位)、sum(4位)、cout(1位)的總位數(shù)設定,異步輸出端口根據(jù)ina(4位)、inb(4位)、cin(1位)的總位數(shù)設定。如下面兩圖所示。 圖8-7 操作示意 圖8-8 操作示意2) 添加ICON和VIO核到
8、工程 點擊file>open,在adder4所在位置找到icon_xst_example.v和vio_xst_example.v文件并打開,將兩部分的模塊聲明加到源代碼中endmodule后面,然后分別將icon_xst_example.v,vio_xst_example.v示例中例化模塊所用到的代碼加到adder4.v相應的位置,并進行修改,最后得到的代碼如下:module adder4(cout,sum);output3:0 sum;output cout;wire 3:0 ina,inb;wire cin;wire 35:0control0;wire 13:0 async_in;w
9、ire 8:0 async_out;icon i_icon ( .control0(control0) );vio i_vio ( .control(control0), .async_in(async_in), .async_out(async_out) );assign async_in3:0=ina3:0;assign async_in7:4=inb3:0;assign async_in8=cin;assign async_in12:9=sum3:0;assign async_in13=cout;assign ina3:0=async_out3:0;assign inb3:0=async
10、_out7:4;assign cin=async_out8;assign cout,sum=ina+inb+cin;endmodulemodule icon ( control0 ); output 35:0 control0;endmodulemodule vio ( control, async_in, async_out ); input 35:0 control; input 13:0 async_in; output 8:0 async_out;endmodule 然后在ISE里進行綜合、實現(xiàn)并generate programming file。3) 在chipscope里觀測調(diào)試
11、點擊analyze design using chipscope進入chipscope pro analyzer窗口,點擊圖標,找到前面生成的比特文件,在所用器件名上右擊然后選configuration將bit文件下載到板子上,然后打開vio consle窗口,在這里即可進行觀測調(diào)試,調(diào)試結(jié)果如下面兩圖所示。圖8-9 調(diào)試結(jié)果圖8-10 調(diào)試結(jié)果在這里可以看出全加器的設計是正確的。8. 2 觸發(fā)器實驗1. 實驗原理(1)主從D觸發(fā)器下面是主從觸發(fā)器的邏輯圖及邏輯符號。 圖8-11 主從觸發(fā)器原理圖主從結(jié)構(gòu)的觸發(fā)器狀態(tài)改變是在時鐘脈沖下降沿完成的,因而這種結(jié)構(gòu)的觸發(fā)器無空翻現(xiàn)象。 若CP下降沿前
12、D=1,則Qn+1=1;若CP下降沿前D=0,則Qn+1=0。代碼如下:module dtrigger(Q,QB,clk,D);input clk,D;output Q,QB;reg Q,QB;always (negedge clk)beginQ<=D;QB=Q;endendmodule(2) 主從JK觸發(fā)器 主從JK觸發(fā)器的邏輯圖及邏輯符號如圖8-12所示,其狀態(tài)轉(zhuǎn)換是在時鐘下降沿完成的。圖8-12 JK觸發(fā)器原理圖其真值表如下表所示。 表8-2 真值表Verilog代碼如下:module jktrigger(Q,QB,J,K,clk);input J,K,clk;output Q,Q
13、B;reg Q;assign QB=Q;always(negedge clk)begincase(J,K)2'b00 : Q <= Q;2'b01 : Q <= 1'b0;2'b10 : Q <= 1'b1;2'b11 : Q <= Q;default: Q<= 1'bx;endcaseendendmodule(3) JK觸發(fā)器轉(zhuǎn)換的D觸發(fā)器真值表如下表所示。 表8-3 真值表根據(jù)上表可寫出JK與D、Q的關系:J=D、K=/D圖8-13 JK轉(zhuǎn)D觸發(fā)器原理圖Verilog代碼如下:module jkdtrig
14、ger(cp,D,Qn,Qnb);input cp, D;output Qn,Qnb;wire J,K;jktrigger a2(Qn,Qnb,J,K,cp);not a1(K,D);assign J=D;endmodulemodule jktrigger(Q,QB,J,K,clk);input J,K,clk;output Q,QB;reg Q;assign QB=Q;always(negedge clk)begincase(J,K)2'b00 : Q <= Q;2'b01 : Q <= 1'b0;2'b10 : Q <= 1'b1;
15、 2'b11 : Q <= Q;default: Q<= 1'bx;endcaseendendmodule此代碼中添加了子模塊jktrigger();說明程序?qū)懛ㄓ凶陨隙碌奶攸c。2. 實驗目的(1)熟悉 ISE9.1 開發(fā)環(huán)境,掌握工程的生成方法;(2)熟悉 SEED-XDTK XUPV2 Pro 實驗環(huán)境;(3)了解 Verilog HDL語言在 FPGA 中的使用;(4)了解觸發(fā)器的Verilog HDL語言實現(xiàn)。3. 實驗內(nèi)容(1)用Verilog HDL語言設計D觸發(fā)器、JK觸發(fā)器和JK觸發(fā)器轉(zhuǎn)換的D觸發(fā)器,進行功能仿真驗證;(2)使用chipscope-
16、Pro 生成 ILA/ICON 核,在線觀測調(diào)試。4. 實驗準備(1)將 USB 下載電纜與計算機及 XUPV2Pro 板的 J8 連接好; (2)將 RS232 串口線一端與計算機連接好,另一端與板卡的 J11 相連接; (3)啟動計算機后,將 XUPV2Pro 板的電源開關 SW11 打開到 ON 上。觀察 XUPV2Pro 板上的2.5V,3.3V,1.5V 的電源指示燈是否均亮,若有不亮的,請斷開電源,檢查電源;5. 實驗步驟(1) D觸發(fā)器設計1)創(chuàng)建工程 及設計輸入在E:project目錄下,新建名為dtrigger的新工程;器件族類型(Device Family)選擇“Virte
17、x2P”器件型號(Device)選“XC2VP30 ff896 -7”綜合工具(Synthesis Tool)選“XST (VHDL/Verilog)”仿真器(Simulator)選“ISE Simulator”設計輸入,在源代碼窗口中單擊右鍵,在彈出的菜單中選擇New Source,在彈出的對話框中選擇Verilog Moudle ,在右端的File name 中輸入源文件名dtrigger,下面各步點next,然后在彈出的源代碼編輯框內(nèi)輸入D觸發(fā)器的源代碼并保存即可。2)功能仿真在sources窗口sources for中選擇Behavioral Simulation;由Test Benc
18、h WaveForm添加激勵源,如下圖所示;圖8-14 波形激勵編輯窗口 然后在processes窗口中點擊simulater behavioral model開始仿真,仿真結(jié)果如下:圖8-15仿真結(jié)果從圖中可以驗證由Verilog HDL語言設計的D觸發(fā)器的工作是正確的。3) 添加引腳約束首先對生成的工程進行綜合;添加引腳約束。雙擊User Constraints 下的Assign Package Pins,由于采用chipscope進行調(diào)試,因此引腳約束只需要添加時鐘引腳的約束就可以了,如圖8-16所示。 圖8-16引腳約束4) Chipscope進行調(diào)試這里也是用的核生成法,所用到的核有
19、ICON核和VIO核。生成ICON核和VIO核核的生成過程同4位加法器里的生成過程一樣。ICON的生成中文件路徑指向dtrigger所在位置,器件類型為virtex2p,控制端口數(shù)為1,語言為verilog,綜合工具為xilinx XST。VIO的生成中,異步輸入端口寬度為3,異步輸出端口數(shù)為1。添加ICON和VIO核到工程 點擊file>open,在dtrigger所在位置找到icon_xst_example.v和vio_xst_example.v文件并打開,將兩部分的模塊聲明加到源代碼中endmodule后面,然后分別將icon_xst_example.v,vio_xst_examp
20、le.v示例中例化模塊所用到的代碼加到dtrigger.v相應的位置,并進行修改,最后得到的代碼如下:module dtrigger(Q,QB,clk);input clk;output Q,QB;reg Q,QB;wire D;wire 35:0control0;wire 2:0async_in;wire async_out;assign async_in0=D;assign async_in1=Q;assign async_in2=QB;assign D=async_out;icon i_icon ( .control0(control0) ); vio i_vio ( .control(
21、control0), .async_in(async_in), .async_out(async_out) );always (negedge clk)beginQ<=D;QB=Q;endendmodulemodule icon ( control0 ); output 35:0 control0;endmodulemodule vio ( control, async_in, async_out ); input 35:0 control; input 2:0 async_in; output 0:0 async_out;endmodule在chipscope里觀測調(diào)試 點擊analy
22、ze design using chipscope進入chipscope pro analyzer窗口,點擊圖標,找到前面生成的比特文件,在所用器件名上右擊然后選configuration將bit文件下載到板子上,然后打開vio console窗口,在這里即可進行觀測調(diào)試,調(diào)試結(jié)果如下面兩圖所示。 圖8-17調(diào)試結(jié)果 圖8-18 調(diào)試結(jié)果(2) JK觸發(fā)器設計1) 創(chuàng)建工程 及設計輸入在E:project目錄下,新建名為jktrigger的新工程;器件族類型(Device Family)選擇“Virtex2P”器件型號(Device)選“XC2VP30 ff896 -7”綜合工具(Synthe
23、sis Tool)選“XST (VHDL/Verilog)”仿真器(Simulator)選“ISE Simulator”設計輸入,在源代碼窗口中單擊右鍵,在彈出的菜單中選擇New Source,在彈出的對話框中選擇Verilog Moudle ,在右端的File name 中輸入源文件名jktrigger,下面各步點next,然后在彈出的源代碼編輯框內(nèi)輸入JK觸發(fā)器的源代碼并保存即可,工程名稱為jktrigger。2) 功能仿真由Test Bench WaveForm添加激勵源,如下圖所示。圖8-19 波形激勵編輯窗口仿真結(jié)果如下圖所示:圖8-20仿真結(jié)果由圖中可以看出JK觸發(fā)器的設計是正確的
24、。3)添加引腳約束首先對生成的工程進行綜合;添加引腳約束。雙擊User Constraints 下的Assign Package Pins,由于采用chipscope進行調(diào)試,因此引腳約束只需要添加時鐘引腳的約束就可以了,如圖8-21所示。 圖8-21引腳約束4)Chipscope進行調(diào)試 用核生成法,所用到的核有ICON核和VIO核。 按照前面的步驟生成ICON核和VIO核并將它們添加到工程。ICON核的控制端口數(shù)為1,VIO核的異步輸入端口寬度為4,異步輸出端口寬度為2。 最后得到的代碼如下:module jktrigger(Q,QB,clk);input clk;output Q,QB;
25、reg Q;wire J;wire K;wire 35:0control0;wire 3:0async_in;wire 1:0async_out;icon i_icon ( .control0(control0) ); vio i_vio ( .control(control0), .async_in(async_in), .async_out(async_out) );assign async_in0=J;assign async_in1=K;assign async_in2=Q;assign async_in3=QB;assign J=async_out0;assign K=async_o
26、ut1;assign QB=Q;always(negedge clk)begincase(J,K)2'b00 : Q <= Q;2'b01 : Q <= 1'b0;2'b10 : Q <= 1'b1;2'b11 : Q <= Q;default: Q<= 1'bx;endcaseendendmodulemodule icon ( control0 ); output 35:0 control0;endmodulemodule vio ( control, async_in, async_out ); inpu
27、t 35:0 control; input 3:0 async_in; output 1:0 async_out;endmodule在chipscope pro analyzer里的VIO console里觀測到的調(diào)試結(jié)果如下面幾圖所示: 圖8-22調(diào)試結(jié)果J=1,K=0時,將Q置1。 圖8-23調(diào)試結(jié)果J=0,K=0時,Q保持不變。 圖8-24調(diào)試結(jié)果J=0,K=1時,將Q置0 圖 8-25調(diào)試結(jié)果 圖8-26 調(diào)試結(jié)果J=1,K=1時可以看到Q和QB不斷地翻轉(zhuǎn)。因此,從調(diào)試結(jié)果分析可知JK觸發(fā)器的設計是正確的。(3)JK觸發(fā)器轉(zhuǎn)換為D觸發(fā)器的設計1) 創(chuàng)建工程 及設計輸入 在E:proje
28、ct目錄下,新建名為jkdtrigger的新工程;器件族類型(Device Family)選擇“Virtex2P”器件型號(Device)選“XC2VP30 ff896 -7”綜合工具(Synthesis Tool)選“XST (VHDL/Verilog)”仿真器(Simulator)選“ISE Simulator” 設計輸入,在源代碼窗口中單擊右鍵,在彈出的菜單中選擇New Source,在彈出的對話框中選擇Verilog Moudle ,在右端的File name 中輸入源文件名jkdtrigger,下面各步點next,然后在彈出的源代碼編輯框內(nèi)輸入JK觸發(fā)器的源代碼并保存即可,工程名稱為
29、jkdtrigger。2) 功能仿真由Test Bench WaveForm添加激勵源,如下圖所示:圖8-27波形激勵編輯窗口仿真結(jié)果如下圖所示: 圖8-28仿真波形從圖中可以看出此設計是正確的。3)添加引腳約束首先對生成的工程進行綜合;添加引腳約束。雙擊User Constraints 下的Assign Package Pins,由于采用chipscope進行調(diào)試,因此引腳約束只需要添加時鐘引腳的約束就可以了,如圖所示:圖8-29引腳約束4)Chipscope進行調(diào)試 用核生成法,所用到的核有ICON核和VIO核。 按照前面的步驟生成ICON核和VIO核并將它們添加到工程。ICON核的控制端
30、口數(shù)為1,VIO核的異步輸入端口寬度為5,異步輸出端口寬度為1。最后得到的代碼如下:module jkdtrigger(cp,Qn,Qnb);input cp;output Qn,Qnb;wire D;wire J,K;wire 35:0control0;wire 4:0async_in;wire async_out;assign async_in0=D;assign async_in1=J;assign async_in2=K;assign async_in3=Qn;assign async_in4=Qnb;assign D=async_out;icon i_icon ( .control0
31、(control0) ); vio i_vio ( .control(control0), .async_in(async_in), .async_out(async_out) );jktrigger a2(Qn,Qnb,J,K,cp);not a1(K,D);assign J=D;endmodule module jktrigger(Q,QB,J,K,clk);input J,K,clk;output Q,QB;reg Q;assign QB=Q;always(negedge clk)begincase(J,K)2'b00 : Q <= Q;2'b01 : Q <
32、= 1'b0;2'b10 : Q <= 1'b1;2'b11 : Q <= Q;default: Q<= 1'bx;endcaseendendmodulemodule icon ( control0 ); output 35:0 control0;endmodulemodule vio ( control, async_in, async_out ); input 35:0 control; input 4:0 async_in; output 0:0 async_out;endmodule在chipscope pro analyzer
33、里的VIO console里觀測到的調(diào)試結(jié)果如下面兩圖所示: 圖8-30調(diào)試結(jié)果 圖8-31調(diào)試結(jié)果從圖中可以看出此觸發(fā)器的設計是正確的。8.3 8位計數(shù)器實驗1. 實驗原理 所涉及的8位計數(shù)器有一個時鐘輸入端,1個同步清0端。輸出為8位并行輸出,每來一個脈沖,所輸出的八位二進制數(shù)加一,當由00000000計數(shù)到11111111時,計數(shù)器返回到00000000重新開始計數(shù)。其代碼如下:module count8(out,reset,clk);output7:0 out;input reset,clk;reg7:0 out;always (posedge clk)beginif (reset)
34、out<=0; /同步復位else out<=out+1; /計數(shù)endendmodule本實驗采用 Chipscope-Pro 生成 ILA/ICON 核,并插入到 8位計數(shù)器設計中,在線進行觀測和調(diào)試。2. 實驗目的(1) 熟悉 ISE9.1 開發(fā)環(huán)境,掌握工程的生成方法;(2) 熟悉 SEED-XDTK XUPV2Pro 實驗環(huán)境;(3) 了解 Verilog HDL語言在 FPGA 中的使用;(4) 通過掌握8位計數(shù)器的Verilog HDL設計,了解數(shù)字電路的設計。3. 實驗內(nèi)容(1) 用Verilog HDL語言設計8位計數(shù)器,進行功能仿真驗證;(2) 使用chipsc
35、ope-Pro 生成 ILA/ICON 核,在線觀測調(diào)試。4. 實驗準備(1) 將 USB 下載電纜與計算機及 XUPV2Pro 板的 J8 連接好; (2) 將 RS232 串口線一端與計算機連接好,另一端與板卡的 J11 相連接; (3) 啟動計算機后,將 XUPV2Pro 板的電源開關 SW11 打開到 ON 上。觀察 XUPV2Pro 板上的2.5V,3.3V,1.5V 的電源指示燈是否均亮,若有不亮的,請斷開電源,檢查電源; 5. 實驗步驟(1) 創(chuàng)建工程 及設計輸入1) 在E:project目錄下,新建名為count8的新工程;器件族類型(Device Family)選擇“Virt
36、ex2P”器件型號(Device)選“XC2VP30 ff896 -7”綜合工具(Synthesis Tool)選“XST (VHDL/Verilog)”仿真器(Simulator)選“ISE Simulator”2)設計輸入 ,輸入上面所提到的代碼,保存后如下圖所示。圖8-32設計輸入 (2) 功能仿真1)在sources窗口sources for中選擇Behavioral Simulation;2)由Test Bench WaveForm 添加激勵源,由于本工程中源代碼比較簡單,只需要對reset信號進行適當?shù)脑O置就可以了; 圖8-33仿真波形從圖中可以驗證由Verilog HDL語言設計
37、的8位計數(shù)器的工作是正確的,在reset=0時,數(shù)據(jù)輸出在每一時鐘上升沿到來時加1,而在reset=1時,數(shù)據(jù)的輸出為0.(3) 添加引腳約束1)首先對生成的工程進行綜合;2)添加引腳約束。雙擊User Constraints 下的Assign Package Pins,由于采用chipscope進行調(diào)試,因此引腳約束只需要添加時鐘引腳的約束就可以了,如圖所示: 圖8-34 引腳約束 (4) 添加chipscope核由于要對模塊進行實時的控制,因此在這里需要2個ICON核,1個ILA核,1個VIO核。采用核生成法,生成核的聲明分別如下:/-/ ICON core module declarat
38、ion/-module icon ( control0, control1 ); output 35:0 control0; output 35:0 control1;endmodule/-/ ILA core module declaration/-module ila ( control, clk, trig0, trig1 ); input 35:0 control; input clk; input 7:0 trig0; input 0:0 trig1;endmodule/-/ VIO core module declaration/-module vio ( control, asy
39、nc_in, async_out ); input 35:0 control; input 7:0 async_in; output 0:0 async_out;endmodule將模塊聲明加到源代碼中endmodule后面,然后分別將icon_xst_example,ila_xst_example,vio_xst_example示例中例化模塊所用到的代碼加到count8相應的位置,并進行修改,最后得到的代碼如下:module count8(out,clk);output7:0 out;input clk;reg7:0 out;wire reset; / ICON core wire decl
40、arations wire 35:0 control_ila; wire 35:0 control_vio; / ILA Core wire declarations wire clk; wire 7:0 trig0; wire 0:0 trig1; assign trig0 = out; assign trig1 = reset; / VIO Core wire declarations wire 7:0 async_in; wire 0:0 async_out;assign reset = async_out;assign async_in = out;/count8 always (po
41、sedge clk)beginif (reset) out<=0; /同步復位else out<=out+1; /計數(shù)end / ICON core instance icon count8_icon ( .control0(control_ila), .control1(control_vio) ); / ILA core instance ila count8_ila ( .control(control_ila), .clk(clk), .trig0(trig0), .trig1(trig1) ); / VIO core instance vio count8_vio ( .
42、control(control_vio), .async_in(async_in), .async_out(async_out) );endmodule (5) 在線調(diào)試1)設計實現(xiàn)。在工程的資源操作窗(Processes),雙擊 Implement Design;2)在實現(xiàn)步驟成功后,點擊Generate Programming Files ,生成bit流文件;3)雙擊Analyze Design Using Chipscope,出現(xiàn)chipscope Pro Analyzer 窗口。雙擊圖標,出現(xiàn)以下對話框,點擊OK。 圖8-35 操作示意然后下載bit流文件,右擊DEC:2 myDevi
43、ce2,選擇Configure.圖8-36操作示意選擇count8.bit文件,點擊OK。(6) 觀測調(diào)試雙擊VIO console,可以看到異步輸入信號在不停的變化著,如圖所示: 圖8-37 調(diào)試結(jié)果將異步輸出信號即reset信號設為1,則異步輸入都變?yōu)?; 圖8-38 調(diào)試結(jié)果將異步輸入信號設為總線形式,并重命名,可以更加直觀的觀測信號,如圖所示: 圖8-39 調(diào)試結(jié)果雙擊按鈕,出現(xiàn)ILA核捕獲的數(shù)據(jù)波形,如下圖所示。 圖8-40 數(shù)據(jù)波形對相應信號設為總線形式并重命名,可以更好的觀測信號,如下圖所示。 圖8-41數(shù)據(jù)波形8.4 8位乘法器實驗1實驗原理8位乘法器的輸入為兩個8位信號,輸出
44、結(jié)果為16位。module mult8(out, a, b); /8位乘法器源代碼parameter size=8;inputsize-1:0 a,b; /兩個操作數(shù)output2*size-1:0 out; /結(jié)果assign out=a*b; /乘法運算符endmodule 本實驗采用 Chipscope-Pro 生成 VIO/ICON 核,并插入到 8位乘法器設計中,在線進行觀測和調(diào)試。2. 實驗目的(1) 熟悉 ISE9.1 開發(fā)環(huán)境,掌握工程的生成方法;(2) 熟悉 SEED-XDTK XUPV2Pro 實驗環(huán)境;(3) 了解 Verilog HDL語言在 FPGA 中的使用;(4)
45、 通過掌握8位乘法器的Verilog HDL設計,了解數(shù)字電路的設計。3. 實驗內(nèi)容(1) 用Verilog HDL語言設計8位乘法器,進行功能仿真驗證;(2) 使用chipscope-Pro 生成 VIO/ICON 核,在線觀測調(diào)試。4. 實驗準備(1) 將 USB 下載電纜與計算機及 XUPV2Pro 板的 J8 連接好; (2) 將 RS232 串口線一端與計算機連接好,另一端與板卡的 J11 相連接; (3) 啟動計算機后,將 XUPV2Pro 板的電源開關 SW11 打開到 ON 上。觀察 XUPV2Pro 板上的2.5V,3.3V,1.5V 的電源指示燈是否均亮,若有不亮的,請斷開
46、電源,檢查電源; 5. 實驗步驟(1) 創(chuàng)建工程 及設計輸入1) 在E:project目錄下,新建名為mult8的新工程;器件族類型(Device Family)選擇“Virtex2P”器件型號(Device)選“XC2VP30 ff896 -7”綜合工具(Synthesis Tool)選“XST (VHDL/Verilog)”仿真器(Simulator)選“ISE Simulator”2) 設計輸入 ,輸入上面所提到的代碼,保存后如下圖所示。 圖8-42設計輸入(2) 功能仿真1)在sources窗口sources for中選擇Behavioral Simulation;2)由Test Bench WaveForm 添加激勵源。仿真結(jié)果如圖所示。 圖8-43 波形仿真從圖中可以驗證由Verilog HDL語言設計的8位乘法器的工作是正確的,不論是輸入a的值變化還是輸入b的值變化,輸出值隨之變化,為a與b的乘積。(3)生成核并添加核本次實驗內(nèi)容為8位乘法器,不需要使用ILA核,因此下面使用核生成法生成一個ICON核和一個VIO核就可以了。1)首先對生成的工程進行綜合;2)生成核:點擊開始>程序>chipscope pro 9.1i>xilinx chipscope pro core generator彈出如下對話框: 圖8-44 操作示意點擊Next,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 借貸擔保條件合同范本
- 買賣旅游車車合同范本
- 制作類開口合同范本
- 包工包料安裝鍋爐合同范本
- 養(yǎng)豬場租賃合同范本
- 鄉(xiāng)鎮(zhèn)土地開發(fā)整改合同范本
- 佛山土地出租合同范本
- 付款協(xié)議合同范本
- 農(nóng)村養(yǎng)牛蛙銷售合同范本
- ktv裝修乙方合同范本
- 2024年湖南汽車工程職業(yè)學院單招職業(yè)技能測試題庫標準卷
- 完整word版,“呂氏八字命理學”高級理論
- 中外合作辦學的可行性報告
- 飛達及其輔助機構(gòu)
- 母嬰保健課程標準
- 深圳地鐵三號線正線信號系統(tǒng)
- 高中化學競賽培訓計劃
- 研發(fā)向善課程----綻放生命異彩
- 電廠機組深度調(diào)峰摸底試驗方案
- 地球上的大氣知識結(jié)構(gòu)圖
- 加油站數(shù)質(zhì)量管理考核辦法版.doc
評論
0/150
提交評論