




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
串口通信實(shí)驗(yàn)報(bào)告基本實(shí)驗(yàn):16位的乘法器設(shè)計(jì)思想:乘法器根據(jù)以往學(xué)過(guò)數(shù)電的設(shè)計(jì)經(jīng)驗(yàn),應(yīng)該是移位相加的方法,設(shè)被乘數(shù)為[15:0]a,乘數(shù)為[15:0]b,則從b的最高位開(kāi)始算起,c初值為0,為b最高位為1,則c就等于c+a;接下來(lái),若b的次高位為1,則c左移一位加a,若為0則c左移一位就可以了,這樣的步驟做到b的最低位那么c的值就是a*b,當(dāng)然最好c是中間寄存器,這樣結(jié)果才不會(huì)出現(xiàn)中間值。實(shí)驗(yàn)的源碼:modulemuti(clk,rst,ready,a,b,c);inputclk;inputrst;input[15:0]a;input[15:0]b;output[31:0]c;outputready;reg[31:0]c;regready;reg[31:0]temp;reg[5:0]n;always@(posedgeclkorposedgerst)beginif(rst)beginc<=0;ready<=1;temp<=0;n<=32;endelseif(ready)begintemp<=0;n<=32;ready<=0;endelseif(n)beginif(b[n-1])begintemp<=(temp<<1)+a;n<=n-1;endelsebegintemp<=temp<<1;n<=n-1;endendelsebeginc<=temp;n<=32;ready<=1;endendendmodul測(cè)試代碼:`timescale1ns/1nsmoduletb;regclk;reg[15:0]a;reg[15:0]b;regrst;wireready;wire[31:0]c;always#10clk=~clk;initialbeginrst<=1;clk<=0;a=0;b=0;#10rst=0;#21a=21;b=32;#650a=3;b=4;#700$stop;endmutimuti_unit(.a(a),.b(b),.rst(rst),.clk(clk),.ready(ready),.c(c));endmodule仿真結(jié)果:這邊a被乘數(shù),b是乘數(shù),當(dāng)rst為高時(shí),則將c置0,ready置一,ready信號(hào)為高表示此時(shí)空閑可以計(jì)算,rst為低時(shí)則開(kāi)始計(jì)算,21*32為672,3*4為12,在乘法操作時(shí),ready信號(hào)為低電平表示在工作中不能再輸入進(jìn)行計(jì)算,當(dāng)計(jì)算結(jié)束則變?yōu)楦唠娖?。乘法功能得以?shí)現(xiàn)。進(jìn)階實(shí)驗(yàn):串口通信實(shí)驗(yàn)基本要求:了解UART串口通信協(xié)議設(shè)計(jì)思想:主要是分成3個(gè)模塊,一個(gè)是波特率產(chǎn)生模塊,一個(gè)是發(fā)送模塊,一個(gè)是接收模塊,波特率產(chǎn)生模塊產(chǎn)生一個(gè)9600Hz的采樣脈沖,由于開(kāi)發(fā)板上的固有頻率為50MHz,所以我需要分頻為50000000/9600=5208.3,即從0記到5207,當(dāng)記到2503時(shí)產(chǎn)生一個(gè)時(shí)鐘周期的高電平即可。發(fā)送模塊受到接受模塊的控制,接收模塊的輸出RXD連發(fā)送的TXD,RXD為高表示正在接收不能發(fā)送數(shù)據(jù),發(fā)送時(shí)采用并轉(zhuǎn)串發(fā)送,接收時(shí)為串轉(zhuǎn)并接收。實(shí)驗(yàn)代碼:top文件moduletop(F50M,rst,datain,dataout,seg);inputF50M;/////50MHz的時(shí)鐘信號(hào)inputrst;///////////////復(fù)位信號(hào)input[7:0]datain;///////////輸入數(shù)據(jù)output[7:0]dataout;////////////////輸出數(shù)據(jù)output[3:0]seg;/////////////////板子上面選一個(gè)ledwirebps_start1;/////////////////當(dāng)正在發(fā)送時(shí)為高電平wirebps_start2;///////////////正在接收時(shí)為高電平wirecaiyang1;//////////////////////采樣的波特率信號(hào)wirecaiyang2;wireRXD_TXD;wiredataout;wirerx232_tx;///////////////////////中間的串行通信線brate1brate1(.F50M(F50M),.rst(rst),.bps_start1(bps_start1),.caiyang1(caiyang1));brate2brate2(.F50M(F50M),.rst(rst),.bps_start2(bps_start2),.caiyang2(caiyang2));revrev_u(.F50M(F50M),.rx232_tx(rx232_tx),.rst(rst),.caiyang2(caiyang2),.RXD(RXD_TXD),.dataout(dataout),.bps_start2(bps_start2) );sendsend_u(.F50M(F50M),.datain(datain),.rst(rst),.caiyang1(caiyang1),.TXD(RXD_TXD),.bps_start1(bps_start1),.rx232_tx(rx232_tx));segseg_u(.F50M(F50M),.seg(seg));endmodule波特率產(chǎn)生模塊:A.發(fā)送波特率產(chǎn)生模塊:modulebrate1(F50M,rst,bps_start1,caiyang1);inputF50M;inputrst;inputbps_start1; outputcaiyang1;reg[12:0]n;//50MHz/9600hz=5208,ncount0to5207regcaiyang1;//a9600boundratesignalways@(posedgeF50Mornegedgerst)beginif(!rst)beginn<=0;caiyang1<=0;endelseif((n==5207)||!bps_start1)////////////如果記滿5207或者發(fā)送數(shù)據(jù)結(jié)束就將caiyang2清0beginn<=0;caiyang1<=0;endelseif(n==2603)//////////////////////////////計(jì)數(shù)滿2603就產(chǎn)生一個(gè)時(shí)鐘周期的高電平beginn<=n+1;caiyang1<=1;endelsebeginn<=n+1;caiyang1<=0;endendendmoduleB.接收波特率產(chǎn)生模塊modulebrate2(F50M,rst,bps_start2,caiyang2);inputF50M;inputrst;inputbps_start2;outputcaiyang2;reg[12:0]n;//50MHz/9600hz=5208,ncount0to5207regcaiyang2;//a9600boundratesignalways@(posedgeF50Mornegedgerst)beginif(!rst)beginn<=0;caiyang2<=0;endelseif((n==5207)||!bps_start2)////////////如果記滿5207或者發(fā)送數(shù)據(jù)結(jié)束就將caiyang2清0beginn<=0;caiyang2<=0;endelseif(n==2603)beginn<=n+1;caiyang2<=1;endelsebeginn<=n+1;caiyang2<=0;endendendmodule發(fā)送模塊:modulesend(F50M,datain,caiyang1,TXD,rst,bps_start1,rx232_tx);inputF50M;input[7:0]datain;////輸入要發(fā)送的數(shù)據(jù)inputrst;inputcaiyang1;inputTXD;/////接收接收端的狀態(tài)數(shù)據(jù),若收到為1,表示接收端正在接收不能發(fā)送數(shù)據(jù),采樣其下降沿作為發(fā)送模塊的啟動(dòng)時(shí)間點(diǎn)outputbps_start1;outputrx232_tx;輸出一個(gè)串行數(shù)據(jù)regrx232_tx;regbps_start1;rega;regb;regc;wireneg_TXD;//////////////////////////////////////////////////捕捉TXD下降沿表示可以開(kāi)始發(fā)送數(shù)據(jù),always@(posedgeF50Mornegedgerst)beginif(!rst)begina<=1;b<=1;endelsebeginb<=a;a<=TXD;endendassignneg_TXD=~a&b;/////////////////////////////////////////////////////////將狀態(tài)置位和發(fā)送信號(hào)reg[4:0]n;regtxd_en;reg[7:0]temp_data;always@(posedgeF50Mornegedgerst)beginif(!rst)beginn<=0;bps_start1<=0;txd_en<=0;temp_data<=0;rx232_tx<=1;endelseif(neg_TXD)begintxd_en<=1;bps_start1<=1;temp_data<=datain;endelseif(n==12)/////////////////記到12表示發(fā)送結(jié)束,將所有狀態(tài)重置begintxd_en<=0;bps_start1<=0;n<=0;endelseif(txd_en)//////////////////發(fā)送使能,內(nèi)部的一個(gè)使能信號(hào)beginif(caiyang1)///////////////采樣波特率begincase(n)4'd0:beginrx232_tx<=0;n<=n+1;end////////加起始位04'd1:beginrx232_tx<=temp_data[0];n<=n+1;end////1到8為數(shù)據(jù)位4'd2:beginrx232_tx<=temp_data[1];n<=n+1;end4'd3:beginrx232_tx<=temp_data[2];n<=n+1;end4'd4:beginrx232_tx<=temp_data[3];n<=n+1;end4'd5:beginrx232_tx<=temp_data[4];n<=n+1;end4'd6:beginrx232_tx<=temp_data[5];n<=n+1;end4'd7:beginrx232_tx<=temp_data[6];n<=n+1;end4'd8:beginrx232_tx<=temp_data[7];n<=n+1;end4'd9:beginrx232_tx<=1;n<=n+1;end////////////加奇偶校驗(yàn)位4'd10:beginrx232_tx<=1;n<=n+1;end///////////////截止位default:beginrx232_tx<=1;n<=n+1;end/////////其余時(shí)候均為1endcaseendendendendmodule接收模塊:modulerev(F50M,rx232_tx,rst,caiyang2,RXD,dataout,bps_start2);inputF50M;inputrx232_tx;////////發(fā)送過(guò)來(lái)的串行數(shù)據(jù)inputrst;inputcaiyang2;outputRXD;////////////當(dāng)正在接收時(shí),RXD為1,接收完畢產(chǎn)生一個(gè)周期低電平表示接受完,連接發(fā)送端的TXD輸入output[7:0]dataout;outputbps_start2;regRXD;reg[7:0]dataout;regbps_start2;//////////////捕捉rx232_tx的下降沿rega;regb;wireneg_rx232;always@(posedgeF50Mornegedgerst)beginif(!rst)begina<=1;b<=1;endelsebeginb<=a;a<=rx232_tx;endendassignneg_rx232=~a&b;////////////////捕捉到下降沿時(shí)置1//////////////////////////////////////////////////////////////////////標(biāo)志位置位和串轉(zhuǎn)并從數(shù)據(jù)線到接收端的寄存器reg[7:0]temp;reg[3:0]n;regrxd_en;always@(posedgeF50Mornegedgerst)beginif(!rst)beginn<=0;dataout<=0;RXD<=0;bps_start2<=0;rxd_en<=0;temp<=0;///////////////////////復(fù)位信號(hào)endelseif(n==12)////////////當(dāng)計(jì)數(shù)到12的時(shí)候表示已經(jīng)接受完畢,將狀態(tài)全部初始到未傳時(shí)beginn<=0;rxd_en<=0;RXD<=0;bps_start2<=0;dataout<=temp;endelseif(neg_rx232)/////////////////如果捕捉到了信號(hào)的下降沿,表示得到了起始位0,則將狀態(tài)置一表示啟動(dòng)接收beginbps_start2<=1;RXD<=1;rxd_en<=1;endelseif(rxd_en)//////////////////接收使能beginif(caiyang2)/////////////////按照9600波特率采樣beginif(n!=12)begincase(n)4'd1:begintemp[0]<=rx232_tx;n<=n+1;end//////從第二位開(kāi)始接收數(shù)據(jù)4'd2:begintemp[1]<=rx232_tx;n<=n+1;end4'd3:begintemp[2]<=rx232_tx;n<=n+1;end4'd4:begintemp[3]<=rx232_tx;n<=n+1;end4'd5:begintemp[4]<=rx232_tx;n<=n+1;end4'd6:begintemp[5]<=rx232_tx;n<=n+1;end4'd7:begintemp[6]<=rx232_tx;n<=n+1;end4'd8:begintemp[7]<=rx232_tx;n<=n+1;enddefault:n<=n+1;///////////////////////////////////其余時(shí)刻不置位endcaseendendendendendmodule定義了一個(gè)seg模塊用來(lái)選擇哪個(gè)led燈moduleseg(F50M,seg);inputF50M;output[3:0]seg;reg[3:0]seg;always@(posedgeF50M)beginseg<=4'b0111;endendmodule約束條件NET"F50M"LOC="B8";NET"rst"LOC="H13";NET"datain[0]"LOC="R17";NET"datain[1]"LOC="N17";NET"datain[2]"LOC="L13";NET"datain[3]"L
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權(quán)】 ISO/TR 16214:2025 EN Review of geospatial and building information modelling (BIM) terminological entries
- 2025年衢州危運(yùn)押運(yùn)員考試試題
- 2025年高效節(jié)能電動(dòng)機(jī)項(xiàng)目合作計(jì)劃書
- 網(wǎng)絡(luò)服務(wù)排他性授權(quán)協(xié)議
- 特別聲明僅用于證明工作文件證明(6篇)
- 社區(qū)農(nóng)業(yè)技術(shù)推廣應(yīng)用合同
- 制造業(yè)企業(yè)員工技能證書及工作履歷證明(8篇)
- 2025年醫(yī)用空氣壓縮機(jī)(系統(tǒng))合作協(xié)議書
- 漁業(yè)資源可持續(xù)開(kāi)發(fā)合作框架協(xié)議
- 移動(dòng)支付終端軟件推廣協(xié)議
- 小學(xué)升初中六年級(jí)數(shù)學(xué)模擬試卷及參考答案
- 監(jiān)督執(zhí)紀(jì)工作規(guī)則
- 全麻術(shù)后蘇醒延遲的預(yù)防及護(hù)理
- 辦公區(qū)域主要風(fēng)險(xiǎn)辨識(shí)與分級(jí)管控清單
- 2024年海南省財(cái)金集團(tuán)有限公司招聘筆試沖刺題(帶答案解析)
- 2024年遼寧鐵道職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)及答案解析
- (正式版)JBT 14581-2024 閥門用彈簧蓄能密封圈
- 小學(xué)科學(xué)湘科版六年級(jí)下冊(cè)全冊(cè)同步練習(xí)含答案
- 【危險(xiǎn)化學(xué)品經(jīng)營(yíng)單位安全管理人員】考試600題及解析
- 醫(yī)療護(hù)理中的病人體驗(yàn)與滿意度
- 2023年山東省淄博市中考生物試題
評(píng)論
0/150
提交評(píng)論