tx_addheader(加前导)

1,四状态

reg framing_flag;

状态主开关,它是全局的状态标识。后面几乎所有的逻辑,都要看这个灯的脸色行事------"只有灯亮着,流水线才允许运转" 。

reg 15:0data_cnt;

计数器,0~2047:发前导码;2048~19455 :发数据 。

reg framing_flag_reg;

它的输入端死死连着 framing_flag,并且受时钟 clk 驱动。在时钟的每一个上升沿时刻,它都会读取 framing_flag 的状态(此时读取的是framing_flag 上一拍 的电平)。这个变量不直接参与业务控制,它是专门为了配合生成下面那个 _rise 脉冲而设立的"工具人"。没有它,就做不出边沿检测电路。

wire framing_flag_rise;

它是整个系统的"起跑发令枪"。

  • framing_flag 拉高会持续两万多个周期(持续时间太长了),但系统里的某些部件(比如各种缓存指针、RAM 的读地址)只需要在发车的一瞬间听到一声"砰!",然后把自己归零,准备开始新一轮的工作。

  • 根据它的逻辑表达式:framing_flag && !framing_flag_reg (现在的状态是 1,且上一拍的状态是 0)。

  • 这个条件仅仅在发车的第一拍会成立。只要过了这一拍,两者都会变成 1,这个脉冲就会瞬间消失。

  • 架构师视角 :极其优美的同步电路设计!有了这根线,你就可以在代码的任何地方写上 if (framing_flag_rise)。这相当于告诉底层的部件:"只要枪声一响,不管你之前在干嘛,立刻给我复位清零,准备迎接新的一帧!"

相关推荐
現実君2 分钟前
关于MCU下位替换FPGA的经验与方案
单片机·嵌入式硬件·fpga开发
Terasic友晶科技2 小时前
【教程】Agilex 5 SoC 的两种启动模式的开发演示(一)(FPGA Configuration First)
fpga开发·agilex 5 soc
ALINX技术博客3 小时前
【黑金云课堂】FPGA技术教程Vitis开发:SD卡WAV文件读取音频播放实验
fpga开发·音视频
仲南音2 天前
Xilinx FPGA——时钟IP核MMCM、PLL
fpga开发
I'm a winner3 天前
基于Xilinx FPGA的LVDS高速串行通信系统(三)--数据训练及握手机制【文末源码】
fpga开发
upper20203 天前
coremark移植坑之-nostartfiles -nostdlib参数
学习·fpga开发·coremark移植·riscv设计
Eloudy3 天前
Vivado 纯命令行构建 FPGA 项目教程
fpga开发
Rambo.xia3 天前
AXI跨时钟域与数据一致性——CDC FIFO深度不够、写后读冒险、多Master仲裁、乱序返回,出了Bug根本查不出来
fpga开发·bug
upper20203 天前
FPGA部署卷积神经网络识别MINST图片
fpga开发·卷积神经网络·minst·minst识别·部署神经网络·神经网络识别图片
你是我的解忧王子4 天前
嵌入式 ADC采样 原始数据分析上层(平均值 波动率 正态分布 线性补偿 系统误差)
fpga开发·数据挖掘·数据分析