




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
串口通信Verilog源程序测试过,很好用。/-/ Design Name : uart / File Name : uart.v/ Function : Simple UART/ Coder : Deepak Kumar Tala/-module uart (reset ,txclk ,ld_tx_data ,tx_data ,tx_enable ,tx_out ,tx_empty ,rxclk ,uld_rx_data ,rx_data ,rx_enable ,rx_in ,rx_empty);/ Port declarationsinput reset ;input txclk ;input ld_tx_data ;input 7:0 tx_data ;input tx_enable ;output tx_out ;output tx_empty ;input rxclk ;input uld_rx_data ;output 7:0 rx_data ;input rx_enable ;input rx_in ;output rx_empty ;/ Internal Variables reg 7:0 tx_reg ;reg tx_empty ;reg tx_over_run ;reg 3:0 tx_cnt ;reg tx_out ;reg 7:0 rx_reg ;reg 7:0 rx_data ;reg 3:0 rx_sample_cnt ;reg 3:0 rx_cnt ; reg rx_frame_err ;reg rx_over_run ;reg rx_empty ;reg rx_d1 ;reg rx_d2 ;reg rx_busy ;/ UART RX Logicalways (posedge rxclk or posedge reset)if (reset) beginrx_reg = 0; rx_data = 0;rx_sample_cnt = 0;rx_cnt = 0;rx_frame_err = 0;rx_over_run = 0;rx_empty = 1;rx_d1 = 1;rx_d2 = 1;rx_busy = 0;end else begin/ Synchronize the asynch signalrx_d1 = rx_in;rx_d2 = rx_d1;/ Uload the rx dataif (uld_rx_data) begin rx_data = rx_reg; rx_empty = 1;end/ Receive data only when rx is enabledif (rx_enable) begin / Check if just received start of frame if (!rx_busy & !rx_d2) begin rx_busy = 1; rx_sample_cnt = 1; rx_cnt = 0; end / Start of frame detected, Proceed with rest of data if (rx_busy) begin rx_sample_cnt = rx_sample_cnt + 1; / Logic to sample at middle of data if (rx_sample_cnt = 7) begin if (rx_d2 = 1) & (rx_cnt = 0) begin rx_busy = 0; end else begin rx_cnt 0 & rx_cnt 9) begin rx_regrx_cnt - 1 = rx_d2; end if (rx_cnt = 9) begin rx_busy = 0; / Check if End of frame received correctly if (rx_d2 = 0) begin rx_frame_err = 1; end else begin rx_empty = 0; rx_frame_err = 0; / Check if last rx data was not unloaded, rx_over_run = (rx_empty) ? 0 : 1; end end end end end endif (!rx_enable) begin rx_busy = 0;endend/ UART TX Logicalways (posedge txclk or posedge reset)if (reset) begintx_reg = 0;tx_empty = 1;tx_over_run = 0;tx_out = 1;tx_cnt = 0;end else begin if (ld_tx_data) begin if (!tx_empty) begin tx_over_run = 0; end else begin tx_reg = tx_data; tx_empty = 0; end end if (tx_enable & !tx_empty) begin tx_cnt = tx_cnt + 1; if (tx_cnt = 0) begin tx_out 0 & tx_cnt 9) begin tx_out = tx_regtx_cnt -1; end
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB 16556-2025呼吸防护自给开路式压缩空气呼吸器
- GB 31975-2025呼吸防护压缩空气技术要求
- 2025内蒙古峰市教育科学研究中心竞争性比选教研员5人考前自测高频考点模拟试题附答案详解(考试直接用)
- 2025黑龙江双鸭山市友谊县招聘就业见习人员考前自测高频考点模拟试题及答案详解(名师系列)
- 2025年南平邵武市立医院护理岗位招聘模拟试卷及1套完整答案详解
- 2025河南安阳市龙安区人社局招聘7名模拟试卷及参考答案详解
- 2025河南推拿职业学院招聘6人考前自测高频考点模拟试题及完整答案详解1套
- 2025年中国混凝土减水剂行业市场分析及投资价值评估前景预测报告
- 2025年福建省南平市光泽县招聘医疗人才10人考前自测高频考点模拟试题及完整答案详解
- 2025年合肥市第二人民医院招聘72人模拟试卷及答案详解(名师系列)
- 建设工程管理类专业认知
- 蓝豚医陪陪诊服务发展研究报告2025
- Lesson 22 The Giant (Ⅰ)教案 2023-2024学年冀教版九年级英语全册
- 社会责任班会课件
- 富士康车间生产管理制度
- 公众号文章培训:提升写作技巧与个人风格
- 《水浒传》人物专题系列-鲁智深
- 星间链路抗干扰策略-洞察分析
- 江苏省保安员考试练习100题及答案
- 大学生职业生涯规划与就业指导知到智慧树章节测试课后答案2024年秋西南民族大学
- 友情留言句子
评论
0/150
提交评论