基于veriloghdl语言的串口设计

基于veriloghdl语言的串口设计

ID:22823813

大小:379.93 KB

页数:25页

时间:2018-10-31

基于veriloghdl语言的串口设计_第1页
基于veriloghdl语言的串口设计_第2页
基于veriloghdl语言的串口设计_第3页
基于veriloghdl语言的串口设计_第4页
基于veriloghdl语言的串口设计_第5页
资源描述:

《基于veriloghdl语言的串口设计》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、基于VerilogHDL语言的串口设计串UVerilogHDL代码://串口moduletrans(clk,rst,en,TxD_data,Wsec,RxD,TxD,TxD_busy,rcven,RxD_data);//时钟50MHzinputclk,rst,en;//en吋发送数据使能input[7:0]TxD_data;//发送数据输入input[2:0]Wsec;//波特率调节0-2400;1-4800;2-9600;3-14400;4-19200;5-38400;6-115200;7-128000inputRxD;//接收数据输入端outputTxD、TxD_b

2、usy,rcven;//发送,发送把,接收结束标志输出output[7:0]RxD_data;//接收数掘输出wireBaudl,Baud8;reg[7:0]addwire;//RAM地址连线reg[7:0]data;wire[7:0]AD_t;//读取RAM数据的地址用于发送wirep:0]AD_r;//接收的数据存储在RAM屮的地址wire[7:0]datawire;//数据连线//发送例化trans一tttl(.clk一t(clk)"rst_t(rst)"en_t(en)"BTI_t(Baudl),.recen(recen),.TxD_data_t(datawir

3、e)/.TxD_t(TxD),.addro_t(AD_t)/«TxD_busy_t(TxD_busy));//波¥寺生A例化BaudGtt2(.clk_b(clk),.rst_b(rst),.BTO_b(Baudl),.BTO_R(Baud8),.Wsec_b(Wsec));//接收例化trans_rtt3(.clk_r(clk)/.rst_r(rst),.BTI_r(Baud8),.RxD_r(RxD)/.RxD_data_r(RxD_data)z.wren_r(wren_r)/.addro_r(AD_r),.RxD_end(RxD_end));"LPM一RAM例正R

4、AM0tt4(.address(addwire)"clock(〜clk)"data(data),.wren(wren_r),.q(datawire));always@(posedgeelkornegedgerst)if(~rst)addwire<=8'bOOOOOOOO;elseif(RxD_end)beginaddwire<=AD_r;data<=RxD_data;endelseaddwire<=AD_t;endmodule//发送模块moduletrans_t(clk_t,rst_t,en_t,BTI_t,TxD_data_t,TxD_t,recen,TxD_bus

5、y_t,addro_t,recen);inputclk_t,rst_t,en_t,BTI_t;input[7:0]TxD_data_t;outputTxD_t;outputTxD_busy_t;outputrecen;output[7:0]addro_t;regTxD_t;reg[7:0]TxD_dataReg;//寄存器reg[7:0]addro_t;//reg[3:0]state;regrecen;wireTxD_busy_t;assignBaudTick=BTI_t;//波特输出//发送启动wireTxD_ready=(state==0);//TxD_ready=

6、1assignTxD_busy_t=〜TxD一ready;//加载发送数i"always@(posedgeclk_tornegedgerst_t)if(〜rst_t)TxD_dataReg<=8'bOOOOOOOO;elseif(TxD一ready&&en_t)TxD_dataReg<=TxD_data_t;//状态机发送always@(posedgeclk_tornegedgerst_t)if(〜rst」)beginstate<=4'bOOOO;//复位时发送1TxD_t<=l'bl;endelsecase(state)4'b0000:if(en_t)beginsta

7、te<=4'bOlOO;//检测发送开始end4'bOlOO:if(BaudTick&&en_t)beginstate<=4'blOOO;//发送起始位0TxD_t<=1'bO;end4'blOOO:if(BaudTick&&en—t)beginstate<=4'blOOl;//bit0if(en_t)TxD_t<=TxD_dataReg[O];elseTxD」<=l*bO;end4'blOOl:if(BaudTick&&en—t)beginstate<=4'blOlO;//bit1if(en_t)TxD_t<=TxD_dataReg[l

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。