当前位置: 首页 > news >正文

Verilog语法学习EP11:串口发送模块

设计要求如下:

代码以及测试向量如下:

//2025.9.18
//串口发送模块
`timescale 1ns/10ps
module UART_TXer(clk,rst,data_in,en_data_in,TX,rdy
);
input           clk;
input           rst;
input[7:0]      data_in;//准备发送的数据
input           en_data_in;//发送使能
output          TX;
output          rdy;//空闲标志,0表空闲reg[3:0]        state;//主状态机寄存器
reg[9:0]        send_buf;//发送寄存器
assign          TX=send_buf[0];//连接TXreg[12:0]       con;//用于计算波特周期
reg[9:0]        send_flag;//用于判断右移结束
reg             rdy;always@(posedge clk or negedge rst) beginif(~rst) beginstate<=0;send_buf<=1;//TX空闲为1con<=0;send_flag<=10'b10_0000_0000;rdy<=0;endelse begincase(state)0://等待使能信号beginif(en_data_in) beginsend_buf={1'b1,data_in,1'b0};//结束 数据 起始send_flag<=10'b10_0000_0000;rdy<=1;state<=1;endend1://串口发送,寄存器右移beginif(con==5000-1) begincon<=0;endelse begincon<=con+1;endif(con==5000-1) beginsend_buf[8:0]<=send_buf[9:1];send_flag[8:0]<=send_flag[9:1];//不断右移endif(send_flag[0]) beginstate<=0;rdy<=0;endendendcaseend
endendmodule//-----testbench of UART_TXer----
module UART_TXer_tb;
reg                 clk,rst;
reg[7:0]            data_in;
reg                 en_data_in;
wire                TX;
wire                rdy;UART_TXer UART_TXer(.clk(clk),.rst(rst),.data_in(data_in),.en_data_in(en_data_in),.TX(TX),.rdy(rdy)
);
initial beginclk<=0;rst<=0;data_in<=8'h0a;en_data_in<=0;#17 rst<=1;#30 en_data_in<=1;#10 en_data_in<=0;#2000 $stop;
endalways #5 clk<=~clk;endmodule

测试仿真波形图如下:

http://www.dtcms.com/a/398957.html

相关文章:

  • 【UE·网络篇】ReplicationGraph入门教程
  • 安阳做推广网站html网页小游戏代码
  • HTML,CSS,JS
  • 用CodeBuddy Code CLI构建现代化Vue待办事项应用的完整实战
  • 前端实现网页水印防移除的实战方案
  • 1,LVGL(V8.3.10版本)裸机移植教程
  • 重庆做网站 外包公司百度关键词收录
  • 探索TCP与TCP6连接的关系:netstat找不到tcp接口?
  • 商城网站建设哪家效益快产品推销文案
  • display vlan 概念及题目
  • Composer Deprecation Notice 警告:为什么会出现?如何解决?
  • Python 中常用的数据分析绘图库解析
  • 甜点网站里的新闻资讯怎么做如何做国际网站
  • 怎么知道Redis 6+ 是否启用 ACL
  • three.js ——文字
  • 中山市智能h5网站建设公司wordpress电视剧
  • 个人网站域名一级a做爰片免费网站黄
  • mac m4电脑运行 LLaMA Factory 微调
  • 基于Python的二手房价格数据分析预测系统
  • 【速成】快速掌握CMD
  • 网站建设找哪个网盟官方网站
  • NCL数据分析与处理实践技术应用
  • 莱阳 网站建设商城前端模板
  • 【APK安全】Receiver嗅探:Android广播组件的权限与UID安全防护及测试指南
  • (自用)vim的高级命令
  • ELK分析系统详解
  • 架构师成长之路06:缓存设计收官篇,缓存该放哪?写缓存怎么用?这篇讲透最后两个核心问题
  • 电子商务网站建设外包服务wordpress 教程
  • 简述Android应用程序结构包含哪些部分
  • 百度网站改版提交wordpress主题改中文版