AMD FPGA设计优化宝典笔记(1)触发器

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

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

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

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

这章是第4章,开篇给我们看了7系列中的触发器资源,确实是一个 slice 模块里面有8个触发器,这8个触发器呢,4 个编号带A的这种是只可以做边沿触发,另外编号不带A的4个是既可以做边沿触发也可以作为电平敏感型的触发,但是只要有一个被当做电平敏感型也就是锁存器的话,另外那4个带 A 的就不能用了

确实每一个都会有 FPGA 电路的结构图,还有一个tcl代码,感觉讲的还是挺清楚的,知道的是有7系列是我常用的,然后更高深(更贵)的两种FPGA------UltraScale和Versal ACAP也做了初步的了解,这两种都是一个slice里面16个触发器,用法的花样更多,且SR有效极性是高低电平都可(7系列只能高电平)。

有个system Verilog代码4-4让我明白什么叫同步复位,(其实经常这么写只不过原来不是特别清楚这些概念),但是跟后面的异步复位相去对应的话就能一眼看出来了。还有一种是既无复位又无置位,其实就很简单,就是一个赋值。这一页代码在181页:

既无复位又无置位,其实就很简单,就是一个赋值:

always@(posedge clk)//这里只有clk

begin

q <= d;//不需要if else的条件,没有复位

end

同步复位:

always@( posedge clk)//这里只有clk

begin

if(rst) begin//这里有了复位,rst这个复位信号和clk是同步的

q <= 0;

end

else if(ce) begin

q <= d;// 可以有一个ce的判断,我感觉也可以没有

end

end

异步复位:

always@( posedge clk, posedge rst)//这里有clk有rst,它们是异步的

begin

if(rst) begin//q在复位情况清零,rst这个复位信号和clk是异步的

q <= 0;

end

else if(ce) begin

q <= d;// 可以有一个ce的判断,我感觉也可以没有

end

end

现在好像明白一点,就是插入流水寄存器为什么可以使时序变好,就是在触发器的时序上,它的建立时间通过一些推导可以知道,就是跟两级触发器之间的合逻辑的时间和线路上的延时有关系(简化点就认为是组合逻辑的时间),那么就是我们插入了一级触发器,其实是让就是这个时间的限制没有那么严,因为每两个触发器之间其实都是有一个时钟周期,可以来去完成一些工作,我们前面因为这在这一个时钟周期里完成不了,那我们就把它分成两段,或者是甚至是更加多的段,这样就能够让他这个工作顺利的完成,也就是这个逻辑代码的时序达到了收敛

感觉从口语化的比较容易懂的方式去理解,建立时间违例的根本原因就是组合逻辑的延时过大,数据到达第二个触发器的输入端口太晚了 。然后保持时间违例的原因是组合逻辑的延时太小了,数据到达第二个触发器的输入端口太早了 。所以就是在一些与时序相关的 tcl命令中,-max是表示建立时间,-min 表示保持时间。

相关推荐
卡提西亚24 分钟前
C++笔记-34-map/multimap容器
开发语言·c++·笔记
一个平凡而乐于分享的小比特2 小时前
UCOSIII笔记(十三)CPU利用率及栈检测统计与同时等待多个内核对象
笔记·ucosiii
摇滚侠3 小时前
2025最新 SpringCloud 教程,编写微服务 API,笔记08
笔记·spring cloud·微服务
UVM_ERROR4 小时前
硬件设计实战:解决Valid单拍采样失效问题(附非阻塞赋值与时序对齐核心要点)
驱动开发·fpga开发·github·芯片
brave and determined5 小时前
可编程逻辑器件学习(day36):从沙粒到智能核心:芯片设计、制造与封装的万字全景解析
fpga开发·制造·verilog·fpga·芯片设计·硬件设计·芯片制造
我的老子姓彭5 小时前
N32WB蓝牙芯片开发
笔记
历程里程碑5 小时前
各种排序法大全
c语言·数据结构·笔记·算法·排序算法
hd51cc6 小时前
MFC多线程学习笔记三:线程间的通信
笔记·学习
hd51cc6 小时前
MFC多线程学习笔记四:线程间的同步
笔记·学习·mfc
星空的资源小屋6 小时前
VNote:程序员必备Markdown笔记神器
javascript·人工智能·笔记·django