FPGA 通过串口将rom中的10个初始数据发送给目标模块tx串口(最简单的数据处理)

发布时间:2026/7/7 15:18:41

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

相关新闻

交叉编译 tcpdump  libpcap

交叉编译 tcpdump libpcap

2026/7/7 0:08:18

文章目录 交叉编译 tcpdump & libpcap 概述 源码下载 交叉编译 libpcap 交叉编译 tcpdump 交叉编译 tcpdump & libpcap 概述 tcpdump 是一个强大的命令行包分析器,libpcap 是一个可移植的用于网络流量捕获的 C/C++ 库。tcpdump 依赖于 libpcap 库,同属于 tcpdump 项…

如何用Imba的“智能样式管家“重构你的前端开发思维?

如何用Imba的“智能样式管家“重构你的前端开发思维?

2026/7/6 23:36:29

如何用Imba的"智能样式管家"重构你的前端开发思维? 【免费下载链接】imba 🐤 The friendly full-stack language 项目地址: https://gitcode.com/gh_mirrors/im/imba Imba语言通过其革命性的样式修饰符系统,将CSS的复杂性转…

3个理由告诉你:为什么macOS用户都在用Calendr菜单栏日历

3个理由告诉你:为什么macOS用户都在用Calendr菜单栏日历

2026/7/7 2:32:57

3个理由告诉你:为什么macOS用户都在用Calendr菜单栏日历 【免费下载链接】Calendr Menu bar calendar for macOS - MVVM | RxSwift | AppKit | SwiftUI 项目地址: https://gitcode.com/gh_mirrors/ca/Calendr Calendr是一款专为macOS设计的菜单栏日历应用&am…

数据库架构演进之路:从 MySQL 到 TiDB

数据库架构演进之路:从 MySQL 到 TiDB

2026/7/8 3:27:22

数据库架构演进之路:从 MySQL 到 TiDB随着业务规模不断增长,数据库架构也需要持续演进。从最初的单机 MySQL 到分布式数据库 TiDB,每一步都是为了解决当前阶段面临的性能和容量问题。一、单机 MySQL系统初期,用户量和数据量较小&a…

Ubuntu service开机自启设置

Ubuntu service开机自启设置

2026/7/8 3:27:22

1、将 这个 test.service文件放到 /etc/systemd/system/目录下2、执行下面指令开启开机自启sudo systemctl daemon-reload # 让 systemd 重新读取新 unit sudo systemctl enable test.service # 设置开机自启 sudo systemctl restart test.service # 立…

GHelper完整指南:用轻量级控制工具彻底解放华硕笔记本性能

GHelper完整指南:用轻量级控制工具彻底解放华硕笔记本性能

2026/7/8 3:27:22

GHelper完整指南:用轻量级控制工具彻底解放华硕笔记本性能 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, Vivobook, Zenbook…

Python正则表达式完整教程:从入门到实战,解决文本匹配所有难题

Python正则表达式完整教程:从入门到实战,解决文本匹配所有难题

2026/7/8 3:27:22

一、前言 在日常Python开发、日志解析、爬虫、数据清洗、大模型文本提取场景中,字符串处理是高频需求。普通str内置方法(split/replace/find)只能处理简单固定文本,面对不规则、分段、跨多行、结构化混杂文本时完全无力。 正则表达…

还在为 API 调用踩坑?这款中转站帮你省成本、提效率、保稳定

还在为 API 调用踩坑?这款中转站帮你省成本、提效率、保稳定

2026/7/8 3:27:22

开发者效率工具分享|跨境接口提速|多接口一站式管理 接口加速・链路优化・效率提升 搞定海外 API 调用卡顿、超时、延迟高的难题 告别多接口重复对接,一站式调用更省心 7月6日(2)

学术写作创新突破!2026智能AI论文写作工具推荐指南

学术写作创新突破!2026智能AI论文写作工具推荐指南

2026/7/8 3:17:22

2026 年 AI 论文写作工具已进入全流程闭环 学术合规时代,千笔 AI(综合评分 99 分)中文学术场景标杆;Grammarly Academic与Elicit为英文论文写作首选;按需求匹配度 - 数据可信度 - 成本承受力三维模型选型,…

解锁AMD Ryzen处理器深层性能:SMU Debug Tool完全指南

解锁AMD Ryzen处理器深层性能:SMU Debug Tool完全指南

2026/7/8 0:44:47

解锁AMD Ryzen处理器深层性能:SMU Debug Tool完全指南 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https://gi…

6个月转型AI工程师:实战路径与核心技能

6个月转型AI工程师:实战路径与核心技能

2026/7/7 4:34:17

1. 项目概述:6个月转型AI工程师的可行性路径在2023年大模型技术爆发的背景下,AI工程师岗位需求同比增长217%(LinkedIn数据)。不同于传统算法工程师需要3-5年培养周期,现代AI工程师更侧重工程化落地能力。我在硅谷科技公…

YOLOv5模型剪枝与量化实战:边缘设备部署优化

YOLOv5模型剪枝与量化实战:边缘设备部署优化

2026/7/7 13:20:59

1. 项目背景与核心价值在计算机视觉领域,YOLOv5因其出色的实时检测性能成为工业界宠儿。但当我们尝试将其部署到边缘设备(如树莓派、Jetson Nano或手机终端)时,立刻会遇到两个致命问题:模型体积庞大(原始YO…

Qwen Code+Obsidian构建可执行的AI时代认知操作系统

Qwen Code+Obsidian构建可执行的AI时代认知操作系统

2026/7/8 0:07:15

1. 项目概述:这不是又一个笔记软件教程,而是一套可复用的“认知操作系统”搭建逻辑你有没有试过,在读完Andrej Karpathy那篇著名的《Software 2.0》之后,满脑子都是“神经网络即代码”的震撼,但合上网页,打…

校园服饰细分赛道测算程序,学生平价国风,机能穿搭市场规模预估。

校园服饰细分赛道测算程序,学生平价国风,机能穿搭市场规模预估。

2026/7/8 0:07:15

校园服饰细分赛道测算程序(Python)——学生平价国风 & 机能穿搭市场规模预估(TAM / SAM / SOM)一、实际应用场景描述(真实业务抽象)在《时尚产业与品牌创新》课程中,细分市场切入&#xff0…

Visual C++运行库完整解决方案:告别软件兼容性问题

Visual C++运行库完整解决方案:告别软件兼容性问题

2026/7/8 0:07:15

Visual C运行库完整解决方案:告别软件兼容性问题 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾为打开游戏时弹出的"DLL缺失"错误…