tx_addheader(加前导)

1,四状态

reg framing_flag;

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

reg [15:0]data_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)。这相当于告诉底层的部件:"只要枪声一响,不管你之前在干嘛,立刻给我复位清零,准备迎接新的一帧!"

相关推荐
禾刀围玉14 小时前
基于FPGA的卷积神经网络实现-Step2 卷积模块设计
人工智能·fpga开发·cnn
fantasy_arch15 小时前
fpga demo测试hello world
fpga开发
黑猫学长呀15 小时前
存储宝典第6篇:测试机台的PE板和PPB板有什么区别?
测试工具·fpga开发·ssd·芯片测试·ate·存储芯片·测试机台
GateWorld20 小时前
LCD显示技术完全指南:原理·制造·驱动·FPGA实现之基础一
fpga开发·lcd显示·fpga点亮屏幕·minilvds
Coder-hong1 天前
TopJTAG Probe连接zynq
fpga开发
Aaron15882 天前
RFSOC+VU13P/VU9P+GPU多通道同步一体化解决方案
人工智能·嵌入式硬件·算法·matlab·fpga开发·硬件架构·基带工程
ALINX技术博客2 天前
【黑金云课堂】FPGA技术教程Linux开发:串行通信接口与实时时钟模块
linux·fpga开发
Felven2 天前
国产ZYNQ multiboot功能介绍与实现
linux·fpga开发·multiboot·国产zynq
cjie2212 天前
DDR3速率分档
fpga开发
坏孩子的诺亚方舟2 天前
open_prj22_IIC读写EEPROM、AD/DA、PLSYSMON
fpga开发·mpsoc