版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
綜合試驗報告第四組組長:韓歡02081535陳潔鈺02081536侯旭濤02081514高耀02081510李欣昊02081508李昊02081506FPGA根底試驗之流水燈一、試驗目的QuartusIIVerilog語言的編程方法。學習簡潔時序電路的設計分析和硬件測試。二、試驗內(nèi)容生疏信號產(chǎn)生板中的FPGA的一般I/O的連接;Verilog語言的編程產(chǎn)生相應時序;QuartusIICycloneFPGA的程序開發(fā)、編譯與調試;把握Cyclone系列FPGA的程序加載,嫻熟把握將.sof文件加載到試驗板的FPGA中,實現(xiàn)流水燈的效果。三、試驗原理流水燈,顧名思義就是讓LED像水一樣的點亮。假設把流水做慢動作播放,初始狀態(tài)時,四個燈都不亮,每來一個時鐘脈沖,CLK,計數(shù)器就加1.這樣通過向右流水的現(xiàn)象;反之,向左流水。四、試驗要求4LED進展花式顯示,依據(jù)硬件設施設計兩種模式:S0:從全亮到全滅,再到全亮,依次循環(huán);S1:從LED0開頭依次點亮,為LED1亮,LED2亮,LED3LED2亮,LED1亮,LED0亮,不停循環(huán)。即輸出為:S0時,不斷循環(huán)。五、試驗步驟建立工程Verilog文件,編寫相關程序verilog文件編譯為可視化電路圖文件將可視化電路圖文件添加輸入輸出組合成電路圖文件編譯語法及驗證原理圖依據(jù)需要安排管腳并進展編譯.so〔在線方式.po〔離線方式線方式。顯示試驗結果六、電路符號:流水燈的電路符號如以以下圖所示。sw1為模式選擇輸入。rst_n為復位信號,接高電平,sys_clk為時鐘信號輸入,led[3..0]LED顯示信號輸出端。liushuidengliushuidengsw1sys_clkrst_nled[3..0]inst七:設計方法:承受文本編輯法,即利用verilogHDL語言描述流水燈,代碼如下:moduleliushuideng(sw1,sys_clk,rst_n,led);//接口定義//50MHz,復位輸入output[3:0]led;//輸出:3led產(chǎn)生流水現(xiàn)象,輪番點亮+reg[25:0]count;//系統(tǒng)時鐘頻率過高,需要計數(shù)的方式來產(chǎn)生延時,使led保持狀態(tài)一段時間reg[3:0]led;//led低電平點亮[2:0]flag;//ledalways@(posedgesys_clk)beginif(!rst_n)//復位,給存放器賦初值beginflag<=3”b0;count<=26”b0;end//else//sys_clk上升沿到來//beginif(count==26”d20)begincount<=26”d0;//count歸零,便于下次重開頭計數(shù)b10flag==2’b112’b00,而并非當flag==’b102’b00〕flag<=3”b000;else
flag<=flag+3”b001;endcount<=count+26”d1;//count沒計數(shù)到指定值是,count執(zhí)行加一操作endalways@(posedgesys_clk)if(sw1==1”b1)begincase(flag)//flag會不斷變化,并且flag在從一個值變成另一個值的時候,會保持一段很長的時間,我們利用它來產(chǎn)生流水燈現(xiàn)象3”b000:led<=4”b0000;//點亮全部燈,都為低電平3”b001:led4”b1111;//沒有點亮燈,都為高電平3”b010:led<=4”b0000;//點亮全部燈,都為低電平3”b011:led4”b1111;//沒有點亮燈,都為高電平3”b100:led<=4”b0000;//點亮全部燈,都為低電平3”b101:led4”b1111;//沒有點亮燈,都為高電平3”b110:led4”b0000;//點亮全部燈,都為低電平3”b111:led4”b1111;//沒有點亮燈,都為高電平endcaseendelsebegincase(flag)//flag會不斷變化,并且flag在從一個值變成另一個值的時候,會保持一段很長的時間,我們利用它來產(chǎn)生流水燈現(xiàn)象3”b000:led4”b0111;//3”b001:led<=4”b1011;點亮其次個燈低電平點亮//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++3”b010:led4”b1101;//3”b011:led4”b1110;//3”b100:led4”b1101;//3”b101:led4”b1011;//3”b110:led4”b0111;//3”b111:led<=4”b1111;endcaseendendmodule七:仿真結果:1:當swl=1時,時序仿真結果如以下圖功能仿真結果為:2swl=0時,時序仿真結果為:功能仿真結果為:FPGA根底試驗之正弦波形產(chǎn)生一、試驗目的通過此試驗進一步了解、生疏和把握QuartusII開發(fā)軟件的使用方Verilog語言的編程方法。學習簡潔時序電路的設計分析和硬件測試。二、試驗內(nèi)容生疏信號產(chǎn)生板中的FPGAI/O的連接;Verilog語言的編程產(chǎn)生相應時序;生疏集成開發(fā)工具QuartusII,學會使用QuartusIICyclone系列FPGA的程序開發(fā)、編譯與調試;Cyclone系列FPGA.sof文件加載到試驗板的FPGA中,實現(xiàn)正弦波形產(chǎn)生。三、試驗原理DDS(DirectDigitalSynthesis)是一種應用直接數(shù)字合成技術來產(chǎn)DDS據(jù)查詢表。在輸出信號波形時,從數(shù)據(jù)表依次讀出數(shù)據(jù),產(chǎn)生數(shù)字信號。四、試驗步驟1、通過matlab產(chǎn)生一組正弦信號:a=1:1:1023;b=127*cos((1/512)*pi*a)+128;b=round(b’);10241~255之間的數(shù)存入ROM之中。2、將產(chǎn)生的數(shù)據(jù)保存為sin.hex文件;IP核的產(chǎn)生。3、選中單口rom添加文件名。4、將q outputport勾選去掉。5、添加產(chǎn)生的sin.hex文件到rom中。6、依據(jù)需要安排管腳并進展編譯。7、完成rom的設置,添加輸入輸出端口。8、驗證結果:利用波形仿真看結果,建波形文件。9、雙擊Name下面的空白處,點擊NewFolder。10、點擊list。12、將輸入及輸出添加到仿真文件中。13、給相應的輸入進展賦值;對時鐘進展賦值。14、點擊工具欄中的時鐘標志。15a16進制顯示。16、賦值完畢后,開頭時序仿真。17、選擇相應的仿真文件,開頭仿真,完畢后查看report185的顯示,得到相應的波形,a和b的值打算了顯示波形的頻率及相位。五、電路符號addaddclka[31..0]b[31..0]addq[31..0]INPUTVCCINPUTVCCINPUTVCCclk c[31..0]a[31..0]b[31..0]inst1rom2rom2addq[31..22]address[9..0]q[7..0]OUTPUTq[7..0]8ow21clkclockinstBlocktype:AUTO六、設計程序Rom1modulerom1(address,clock,q);input [9:0] address;input clock;output [7:0] q;wire[7:0]sub_wire0;wire[7:0]q=sub_wire0[7:0];altsyncram altsyncram_component(.clock0(clock),.address_a(address),.q_a(sub_wire0),.aclr0(1”b0),.aclr1(1”b0),.address_b(1”b1),.addressstall_a(1”b0),.addressstall_b(1”b0),.byteena_a(1”b1),.byteena_b(1”b1),.clock1(1”b1),.clocken0(1”b1),.clocken1(1”b1),.clocken2(1”b1),.clocken3(1”b1),.data_a({8{1”b1}}),.data_b(1”b1),.eccstatus,.q_b,.rden_a(1”b1),.rden_b(1”b1),.wren_a(1”b0),.wren_b(1”b0));defparamaltsyncram_component.address_aclr_a=“NONE“,`ifdefNO_PLIaltsyncram_component.init_file=“boxing.rif“`else`endif,
altsyncram_component.init_file=“boxing.hex“altsyncram_ended_device_family=“Cyclone“,altsyncram_component.lpm_hint=“ENABLE_RUNTIME_MOD=NO“,altsyncram_component.lpm_type=“altsyncram“,altsyncram_component.numwords_a=1024,altsyncram_component.operation_mode=“ROM“,altsyncram_component.outdata_aclr_a=“NONE“,altsyncram_component.outdata_reg_a=“UNREGISTERED“,altsyncram_component.widthad_a=10,altsyncram_component.width_a=8,altsyncram_component.width_byteena_a=1;endmodulemodulemy_add(clock,dataa,datab,result);input clock;input [31:0] dataa;input [31:0] datab;output [31:0] result;wire[31:0]sub_wire0;wire[31:0]result=sub_wire0[31:0];lpm_add_sublpm_add_sub_component(.dataa(dataa),.datab(datab),.clock(clock),.result(sub_wire0)//synopsystranslate_off,.aclr,.add_sub,.cin,.clken,.cout,.overflow//synopsystranslate_on);defparamlpm_add_sub_component.lpm_direction=“ADD“,lpm_add_sub_component.lpm_hint =“ONE_INPUT_IS_CONSTANT=NO,CIN_USED=NO“,lpm_add_sub_component.lpm_pipeline=1,lpm_add_sub_component.lpm_representation=“UNSIGNED“,lpm_add_sub_component.lpm_type=“LPM_ADD_SUB“,lpm_add_sub_component.lpm_width=32;endmodulemoduleadd(clk,a,b,c);inputclk;input[31:0]a;input[31:0]b;output[31:0]c;reg[31:0]c;reg[31:0]d;initialbegind<=b;endalways@(posedgeclk)beginc<=a+d;d<=c;endendmodulestranslate_off`timescale1ps/1ps//synopsystranslate_onmodulerom(address,clock,q);input [9:0] address;input clock;output [7:0] q;wire[7:0]sub_wire0;wire[7:0]q=sub_wire0[7:0];altsyncram altsyncram_component(.clock0(clock),.address_a(address),.q_a(sub_wire0),.aclr0(1”b0),.aclr1(1”b0),.address_b(1”b1),.addressstall_a(1”b0),.addressstall_b(1”b0),.byteena_a(1”b1),.byteena_b(1”b1),.clock1(1”b1),.clocken0(1”b1),.clocken1(1”b1),.clocken2(1”b1),.clocken3(1”b1),.data_a({8{1”b1}}),.data_b(1”b1),.eccstatus,.q_b,.rden_a(1”b1),.rden_b(1”b1),.wren_a(1”b0),.wren_b(1”b0));defparamaltsyncram_component.address_aclr_a=“NONE“,`ifdefNO_PLIaltsyncram_component.init_file=“boxing.rif“`else`endif,
altsyncram_component.init_file=“boxing.hex“altsyncram_ended_device_family=“Cyclone“,altsyncram_component.lpm_hint=“ENABLE_RUNTIME_MOD=NO“,altsyncram_component.lpm_type=“altsyncram“,altsyncram_component.numwords_a=1024,altsyncram_component.operation_mode=“ROM“,altsyncram_component.outdata_aclr_a=“NONE“,altsyncram_component.outdata_reg_a=“UNREGISTERED“,altsyncram_component.widthad_a=10,altsyncram_component.width_a=8,altsyncram_component.width_byteena_a=1;endmodule七、試驗結果八、試驗總結生器的設計,學習和把握了DA轉換,更加嫻熟地使用Verilog語言據(jù)的把握,運用quartusII仿真和調用modelsim仿真。生疏軟件在編譯過程中消滅的錯誤和排解這些錯誤。試驗三開關把握燈連續(xù)閃耀一、試驗目的QuartusIIVerilogDSP的使用方法。學習簡潔時序電路的設計分析和硬件測試。二、試驗內(nèi)容生疏信號產(chǎn)生板中的FPGA的一般I/O的連接;依據(jù)實際程序分析,體會用Verilog語言的編程產(chǎn)生相應時序;QuartusIICycloneFPGA的程序開發(fā)、編譯與調試;生疏DSP軟件的操作環(huán)境,并學會連接DSP硬件進展調試實現(xiàn)相應功能。DSP程序,使得兩局部同時工作,F(xiàn)PGA局部供給信號,使得實現(xiàn)燈連續(xù)閃耀的結果。三、試驗要求〔DSP〕中主要實現(xiàn)外部的開關按鈕S1的觸發(fā)產(chǎn)生中斷,DSP接HL4FPGA局部供給中斷信號,DSP局部實現(xiàn)由開關把握的燈閃耀。FPGA局部程序,中斷閃燈〔DSP〕文件夾DSP工作中所需要的相S1的觸發(fā)產(chǎn)生中斷,DSPHL4開頭閃耀。利用FPGA產(chǎn)生相關信號DSP的工作時鐘,DSPDSPDSP的0。利用DSP程序產(chǎn)生對應的指示燈的輸入電平,初始程序中利用了DSP的flag8。五、試驗步驟1:FPGA局部建立工程Verilog文件,編寫相關程序verilog文件編譯為可視化電路圖文件將可視化電路圖文件添加輸入輸出組合成電路圖文件編譯語法及驗證原理圖依據(jù)需要安排管腳并進展編譯管腳FPGA上的安排FPGA上的連接管腳說明clk_inresetPIN_1640M240M復位信號,直接拉高clk_outPIN_320MDSP20Mclk_in分頻得到d1PIN_126FLAG8連接到燈HL5,使其處于熄滅狀態(tài)dout1PIN_130DSPRESETADSP-21065L復位信號sw3PIN_4KEYRESET連接到開關S1,用于發(fā)出中斷脈沖Irt0PIN_10IRQ0DSP0DSPled[0]PIN_127FLAG9連接到燈HL4,使其處于熄滅狀態(tài)led[1]PIN_128FLAG10連接到燈HL3,使其處于熄滅狀態(tài)led[2]PIN_129FLAG11連接到燈HL2,使其處于熄滅狀態(tài).so〔在線方式.po〔離線方式線方式。中斷產(chǎn)生2:DSP局部預備工作:1切入燒寫環(huán)境2選擇芯片型號連接燒寫器的狀況下選擇Emulator,否則可以選擇PCIHPPCI,使用USBHPUSB建立工程選擇芯片型號sourcefile中l(wèi)df文件按挨次直接到完畢開頭編譯,先單步運行幾步,然后再點擊run,由于在DSP慣狀況下,我們在起始幾步承受單步運行。主要參見程序說明局部:因d1連接到FLAG8上,故在DSP程序中只能把握HL5。利用開關S1把握燈HL5的閃滅,閃滅次數(shù)在DSP程序內(nèi)部設定。六、試驗設計FPGA所需信號1:moduletry001(reset,clk_in,clk_out,d1,dout1);inputclk_in,reset;outputclk_out,d1,dout1;reg[2:0]led;regclk_out;regd1;reg[12:0]cnt;reg[9:0] regdout1;regclkout8k;initialbegind1=1”bz;cnt=0;cnt1=0;dout1=0;endalways@(posedgeclk_in)beginif(!reset) clk_out=0;else clk_out=~clk_out;endalways@(posedgeclk_in)begincnt=cnt+1;if(cnt<=3999)beginclkout8k=0;endelsebeginclkout8k=1;endif(cnt==7999)begincnt=0;endendalways@(posedgeclkout8k)beginif(cnt1<=1000)cnt1=cnt1+1;elsecnt1=cnt1;if(cnt1<900)begindout1=0;endelsebegindout1=1;endendendmodule2:modulekaiguan(led,sw3,irt0);inputsw3;outputled,irt0;reg[2:0]led;reg irt0;initialbeginirt0=1”b1;endalways@(sw3)begincase(sw3)1”b0:beginled=3”b111;irt0=1”b0;end1”b1:beginled=3”b111;irt0=1”b1;enddefault:led=1”bx;endcaseendendmodule對應電路符號為:1DSP工作條件2通過把握撥碼開關來把握相關燈閃滅DSP局部程序#defineADDR10x20230.section/PM seg_rth; //中斷向量表NOP;NOP;NOP;NOP; lib_rst1: nop;JUMP main;//初始復位中斷,當系統(tǒng)硬件復位時跳到該中斷指定的位置。
NOP;NOP;NOP;NOP;NOP;NOP; lib_SOVFI: RTI;RTI;RTI;RTI; lib_TMZHI: RTI;RTI;RTI;RTI; lib_VIRPTI: RTI;RTI;RTI;RTI; lib_IRQ2I: RTI;RTI;RTI;RTI; lib_IRQ1I: 信號,表示接收到數(shù)據(jù),該中斷地有效。NOP;NOP;NOP;NOP; lib_IRQ0I: NOP;JUMPshandeng;NOP;NOP; //IRQ0被觸發(fā)后,進入此中斷跳轉到閃燈程序 lib_SPR0I: 進中斷 lib_SPR1I: 中斷。 lib_SPT0I: RTI;RTI;RTI;RTI; lib_SPT1I: RTI;RTI;RTI;RTI;NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP; lib_EP0I: RTI;RTI;RTI;RTI; lib_EP1I: RTI;RTI;RTI;RTI;NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP; lib_CB7I: RTI;RTI;RTI;RTI; lib_CB5I: RTI;RTI;RTI;RTI; lib_TMZLI: RTI;RTI;RTI;RTI;NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;NOP;.SECTION/PMseg_pmco; //主程序.globalmain;main:中斷初始化/////////////////////////////////////////nop;nop;nop;nop;nop;nop;nop;nop;nop;nop;nop;nop;BITSETMODE1IRPTEN; //全局中斷使能// BITCLRMODE2IRQ0E; //0BITSETMODE2IRQ0E; nop;nop;nop;nop;//BITCLRMODE2IRQ1E; //電平觸發(fā)中斷1BITSETIMASKIRQ0I; //BITSETIMASKIRQ1I; //1kkk:
nop;nop;nop;nop;nop;nop;nop;nop;nop;nop;nop;nop;jumpkkk(db);idle;main.END:shandeng:ustat1=dm(IOCTL); bitSETustat1FLG8;dm(IOCTL)=ustat1;lcntr=20,doLEDuntillce; //中斷后的閃燈次數(shù)ustat1=dm(IOSTAT); //FLAG8置零bitclrustat1FLG8;dm(IOSTAT)=ustat1;lcntr=65535,dowait1untillce; nop;nop;nop;nop;nop;nop;nop;nop;nop;nop;n
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年版企業(yè)破產(chǎn)重整合同
- 2024年度無息個人婚禮籌備借款協(xié)議書下載3篇
- 2025年日喀則貨運資格證模擬考試
- 2024年停薪留職期間員工社會保險及福利協(xié)議合同3篇
- 2025購房合同的范本 購房合同樣本
- 2025年柳州貨運從業(yè)資格證考試卷
- 洛陽理工學院《內(nèi)科護理學2》2023-2024學年第一學期期末試卷
- 2024年墓地環(huán)境優(yōu)化協(xié)議3篇
- 汽車俱樂部噴泉建設合同
- 2024年度家電品牌全國巡回展銷合同范本3篇
- 【MOOC】法理學-西南政法大學 中國大學慕課MOOC答案
- 遼寧省普通高中2024-2025學年高一上學期12月聯(lián)合考試語文試題(含答案)
- 儲能運維安全注意事項
- 2024蜀繡行業(yè)市場趨勢分析報告
- 電力法律法規(guī)培訓
- 2024年世界職業(yè)院校技能大賽“智能網(wǎng)聯(lián)汽車技術組”參考試題庫(含答案)
- 【課件】校園安全系列之警惕“死亡游戲”主題班會課件
- 化工企業(yè)冬季安全生產(chǎn)檢查表格
- 2024年工程勞務分包聯(lián)合協(xié)議
- 蜜雪冰城員工合同模板
- 廣東省深圳市龍崗區(qū)2024-2025學年三年級上學期11月期中數(shù)學試題(含答案)
評論
0/150
提交評論