第一范文网 - 专业文章范例文档资料分享平台

FPGA的UART完整设计

来源:用户分享 时间:2025/5/22 6:46:21 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

.

output send,clk_enable4,clear4; output ks;//jia wire clear;

wire[7:0] dat_s;

reg send,parity_result,ks;

reg clk_enable,clear1,clear4,clk_enable4; reg[7:0] date_s;

///////////////////////////////////////////////////////////////////////////////////////////////////////// always(posedge clk) begin

if(send_enable & !reset)//当send_enable为高电平时为发送操作状态 begin

clk_enable4<=1; clear4<=clear1; end else

begin

clear4<=1; end end

//////////////////////////////////////////////////////////////////////////////////////////////////////////// always(posedge clk)

if(send_enable & !reset) begin

if(counters==8'b00000001)//0 begin

send<=0;

date_s<=dat_in;//? parity_result<=1; end

else if(counters==8'b00010000)//1 begin

send<=date_s[0];

parity_result<=parity_result + date_s[0]; end

else if(counters==8'b00100000)//2 begin

send<=date_s[1];

parity_result<=parity_result + date_s[0]; end

.

.

else if(counters==8'b00110000)//3 begin

send<=date_s[2];

parity_result<=parity_result + date_s[0]; end

else if(counters==8'b01000000)//4 begin

send<=date_s[3];

parity_result<=parity_result + date_s[0]; end

else if(counters==8'b01010000)//5 begin

send<=date_s[4];

parity_result<=parity_result + date_s[0]; end

else if(counters==8'b01100000)//6 begin

send<=date_s[5];

parity_result<=parity_result + date_s[0]; end

else if(counters==8'b01110000)//7 begin

send<=date_s[6];

parity_result<=parity_result + date_s[0]; end

else if(counters==8'b10000000)//8 begin

send<=date_s[7];

parity_result<=parity_result + date_s[0]; end

else if(counters==8'b10010000)//9发送奇偶校验结果 begin

send=parity_result; end

else if(counters==8'b10100000)//0发送高电平 begin

send<=1; end

else if(counters==8'b10101111)//0 begin

clear1<=1;

ks<=(send && parity_result) ? 1:0; end

.

.

else if(counters==8'b00000000) begin

send<=1; end

else clear1<=0; end else

send<=1; endmodule

/////////////////////////////////////////////////////////////////

3.4.4UART的数据接收模块程序功能仿真图 图3-8当counters指定时间时功能仿真

图3-8当counters指定时间时

.

.

解释:由图可明显看出data[0]和data[1]变化,模块功能仿真通过 图3-9当counters未指定时间时功能仿真

图3-9当counters未指定时间时功能仿真

.

.

3.5UART控制器

3.5.1UART控制器服务

UART控制器实质上是一组计数器,由state决定计数器数据发送对象,在这里指定当state为1时,发送到UART接收模块,反之,发送到UART发送模块。当计数到指定数据时,触发指定模块的制定操作。 3.5.2UART控制器模块程序

module counters(read_enable,send_enable,

clk,state,t1,read,counters,reset,clear);//程序计数寄存器 input clk,state,t1,read,reset,clear;//state为uart状态输入, //clear为程序计数寄存器清零控制位 output[7:0] counters;

.

搜索更多关于: FPGA的UART完整设计 的文档
FPGA的UART完整设计.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c39ocp4futj5dq8n1sig30fluh9bohz00uib_5.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top