FPGA 通过串口将rom中的10个初始数据发送给目标模块tx串口(最简单的数据处理) 思维分析图rom模块的代码逻辑timescale 1ns / 1ps module rom_2( input sys_clk , input sys_rst_n , input tx_done , output [7:0] rom_data ,//输出给tx output reg rom_done //一个8bit数据输出的结束信号 ); reg [3:0] cnt; reg ena ; reg [7: 0] addra ; reg flag; reg [3:0] cnt_done;//计数tx——done always(posedge sys_clk) if(!sys_rst_n) cnt0; else if(cnt10) cntcnt; else cntcnt1; // always(posedge sys_clk) if(!sys_rst_n) flag0; else if(cnt9) flag1; else flag0; //cnt_done计数tx_done的次数 always(posedge sys_clk) if(!sys_rst_n) cnt_done0; else if(tx_done)begin if(cnt_done9) cnt_donecnt_done; else cnt_donecnt_done1; end else cnt_donecnt_done; // always(posedge sys_clk) if(!sys_rst_n) rom_done0; else if(flag) rom_done1; else if(tx_done cnt_done9) rom_done1; else if(tx_done cnt_done9) rom_done0; else rom_done0; // always(posedge sys_clk) if(!sys_rst_n) ena0; else ena1; always(posedge sys_clk) if(!sys_rst_n) addra0; else if(tx_done)begin if(addra9) addraaddra; else addraaddra1; end else addraaddra; rom_ten your_instance_name ( .clka(sys_clk), // input wire clka .ena(ena), // input wire ena .addra(addra), // input wire [7: 0] addra .douta(rom_data) // output wire [7 : 0] douta ); endmoduletx端口模块timescale 1ns / 1ps module tx( input sysclk , input rst_n , input [7:0] data ,//数据并行输入 input done ,//tx的开始信号 output tx ,//数据输出--串行输出 output tx_done ); parameter clk 50_000_000,//1s内部时钟晶振次数 bps 9600,//波特率 CNT_MAX clk/bps;//传输一个Bit需要的时间周期 reg [31:0] cnt_bps;//传输一个bit需要的计时器 reg [3:0] cnt_bit;//bit位计数器看传输到第几个bit reg en;//工作时间阈值包装数据---tx reg [7:0] data_reg;//输入数据寄存器 reg tx_reg; reg done_d1 0; always(posedge sysclk)begin done_d1done; end //en工作阈值 always(posedge sysclk) if(!rst_n) en0; else if(done1) en1; else if(cnt_bit9 cnt_bpsCNT_MAX-1) en0; else enen; //输入数据寄存模块 always(posedge sysclk) if(!rst_n) data_reg0; else if(done_d1)//开始工作时就寄存并行输入的data data_regdata; else data_regdata_reg; //cnt_bps--包装一个bit需要的时间计时器 always(posedge sysclk ) if(!rst_n) cnt_bps0; else if(en1)begin if(cnt_bpsCNT_MAX-1) cnt_bps0; else cnt_bpscnt_bps1; end else cnt_bps0; //cnt_bit--表示包装到了哪一个Bit--bie位计数器 always(posedge sysclk ) if(!rst_n) cnt_bit0; else if(en1)begin if(cnt_bpsCNT_MAX-1) cnt_bitcnt_bit1; else cnt_bitcnt_bit; end else cnt_bit0; //tx_reg--表示开始包装数据数据包装流水线 always(posedge sysclk ) if(!rst_n) tx_reg1;//空闲不需要打包数据 else if(en1)begin if(cnt_bit0)//包装起始位 tx_reg0; else if(cnt_bit9)//包装停止位 tx_reg1; else tx_regdata_reg[cnt_bit-1];//数据串行包装由低位开始 end else tx_reg1; assign tx tx_reg; assign tx_done (cnt_bit9cnt_bpsCNT_MAX-1)?1:0; endmodule顶层模块timescale 1ns / 1ps module top( input sysclk , input rst_n , output tx //数据输出--串行输出 ); wire done ;//tx的开始信号 wire tx_done ; wire [7:0] rom_data; rom_2 u( . sys_clk ( sysclk ) , . sys_rst_n ( rst_n) , . tx_done ( tx_done ) , . rom_data ( rom_data ) ,//输出给tx . rom_done ( done ) //一个8bit数据输出的结束信号 ); tx tx_u( . sysclk ( sysclk ) , . rst_n ( rst_n ) , . data ( rom_data ) ,//数据并行输入 . done ( done ) ,//tx的开始信号 . tx ( tx ) ,//数据输出--串行输出 . tx_done ( tx_done ) ); endmodule

相关新闻

最新新闻

ABB IRB 120机器人三种运动模式详解与应用

ABB IRB 120机器人三种运动模式详解与应用

1. ABB IRB 120机器人运动控制基础 IRB 120是ABB公司生产的一款小型六轴工业机器人,最大负载3kg(垂直腕)/4kg(水平腕),工作半径580mm。这款机器人在电子装配、物料搬运、实验室自动化等领域应用广泛。它的运…

2026/7/5 22:14:15
文本分类模型选型指南:从Word2Vec到BERT的性能与成本权衡

文本分类模型选型指南:从Word2Vec到BERT的性能与成本权衡

1. 项目概述:当分类任务撞上“模型军备竞赛”,我们到底需要多深的深度学习?你有没有在做文本分类时,被团队里某位同事一句“直接上BERT吧,效果稳”给堵得说不出话?或者自己翻着论文列表,从Word2…

2026/7/5 22:14:15
提前消费的真相:离火运觉醒,别再把自己烧成柴

提前消费的真相:离火运觉醒,别再把自己烧成柴

提前消费的真相:离火运觉醒,别再把自己烧成柴DNA: #龍芯⚡️2026-07-05-CONSUMER-FIRE-FINAL-v1.0 确认码: #CONFIRM🌌9622-ONLY-ONCE🧬LK9X-772Z 阅读时间: 约 6 分钟 核心立场: 离火运烧的是智慧,不是钱包。真正的“…

2026/7/5 22:14:15
Faster R-CNN vs YOLO V3 实战对比:VOC2007数据集上 mAP 0.858 vs 0.705 的深度解析

Faster R-CNN vs YOLO V3 实战对比:VOC2007数据集上 mAP 0.858 vs 0.705 的深度解析

Faster R-CNN与YOLOv3在VOC2007数据集上的性能对决:从0.858到0.705的mAP差异解析当我们需要在安防监控或自动驾驶系统中部署目标检测算法时,Faster R-CNN和YOLOv3总是会出现在候选名单的前列。但为什么在VOC2007数据集上,YOLOv3的mAP达到0.85…

2026/7/5 22:14:15
图像重建技术:从基础算法到三维成像实践

图像重建技术:从基础算法到三维成像实践

1. 图像重建技术概述图像重建技术是现代数字信号处理领域的重要分支,它通过数学算法从有限的观测数据中重构出原始图像。这项技术在医学CT扫描、工业无损检测、天文观测等领域发挥着关键作用。我从事计算机视觉研究多年,发现图像重建质量直接决定了后续分…

2026/7/5 22:14:15
Perplexity Comet 30天实测:AI原生搜索工作流的临界线

Perplexity Comet 30天实测:AI原生搜索工作流的临界线

1. 项目概述:这不是一次普通的产品试用,而是一场对“AI原生搜索”工作流的深度压力测试 我连续30天,把Perplexity的Comet功能当作自己知识工作的唯一信息入口——不是偶尔查个资料,而是彻底停用Google、停用传统搜索引擎、停用所有…

2026/7/5 22:09:15

月新闻