AMD FPGA设计优化宝典笔记(4)复位桥

高亚军老师的这本书《AMD FPGA设计优化宝典》,他主要讲了两个东西:

第一个东西是代码的良好风格;

第二个是设计收敛等的本质。

这个书的结构是一个总论,加上另外的9个优化,包含的有:时钟网络、组合逻辑、触发器、移位寄存器、存储器、乘加运算单元、状态机、扇出、布线拥塞。大部头的书看起来比较痛苦,我简化的方式,选择触发器一章入手,这个平时有点了解,也觉得看完会用上的概率大一些。这章是书的第4章,复位桥方面的内容,接前面的我的文章:

复位桥

把异步的复位变成同步的复位

1 多时钟域复位桥电路

每个时钟域都要有自己的复位信号,而且复位信号要与该时钟域的时钟同步。如下图所示,复位信号在进入每个时钟域前都先进行异步复位同步释放操作,使得复位信号和该时钟域的时钟同步。

2 代码部分

我把原书代码的system Verilog版本 变成Verilog版本,理解一下精髓。注意的是: 参数N要控制在8以内

(* ASYNC_REG = "TRUE" ) reg N-1:0 bridge;**// ( ASYNC_REG = "TRUE" ) 布局时放置在同一个sclice的意思 *

(* ASYNC_REG = "TRUE" *) reg 1:0 bridge_dly;

always@(posedge clk, posedge aset) begin

if(aset) begin

bridge <= '1;//所有位都赋值1

end else begin

bridge <= { bridgeN-2:0, 1'b0};//除了最高位之外的低N-1位,左移一位,最低位赋值0

end

end

always@(posedge clk) begin

bridge_dly0 <= bridgeN-1;//bridge最高位赋值给bridge_dly的最低位

bridge_dly1 <= bridge_dly0;//bridge_dly的最高位是最低位延一拍, bridge_dly1也输出作为同步复位

end

这些代码的作用是将输入的异步复位信号aset展宽(aset是高电平有效)(aset原宽度为1,展宽的宽度是N),并将aset展宽后的信号同步到目标时钟(clk)下

3 改善布局

同步复位比较好,因为综合时工具可以根据控制集的要求将其搬移到数据路径上,对改善布局质量很有帮助。
同步复位受时钟控制,因此时钟可以过滤复位信号上的毛刺从而防止触发器误动作 。异步复位不受时钟控制,没法过滤毛刺从而可能导致触发器误动作。

相关推荐
坏孩子的诺亚方舟1 天前
FPGA系统架构设计实践15_高云Arora V系列时钟体系
fpga开发·系统架构
闪闪发亮的小星星1 天前
高斯光以及高斯光公式解释
笔记
cqbzcsq1 天前
CellFlow虚拟细胞论文阅读
论文阅读·人工智能·笔记·学习·生物信息
阿米亚波1 天前
【Windows】QEMU 启动 openEuler aarch64/arm64 架构系统 + 离线软件源
linux·windows·经验分享·笔记·架构·arm
自传.1 天前
尚硅谷 Vibe Coding|第三章(1) Claude Code深度使用与进阶技巧 学习笔记
笔记·学习·尚硅谷·vibecoding
.千余1 天前
【C++】模板进阶全解:非类型参数|全特化|偏特化|分离编译完全指南
开发语言·c++·笔记·学习·其他
自传.1 天前
尚硅谷 Vibe Coding|第二章 AI编程工具生态 学习笔记
笔记·学习·ai编程·尚硅谷·vibe coding
秋波。未央1 天前
Java Agent 开发 · Day 1 学习笔记(含作业完整标准答案)
java·笔记·学习
FPGA小徐1 天前
入门 CNN 结构全解析|从流程图理论到 FPGA Verilog 硬件实现(含习题带讲解)
fpga开发
中屹指纹浏览器1 天前
2026指纹浏览器字体指纹、字体渲染偏差检测与全维度虚拟字体池搭建方案
经验分享·笔记