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 表示保持时间。

相关推荐
Aileen_0v04 小时前
【AI驱动的数据结构:包装类的艺术与科学】
linux·数据结构·人工智能·笔记·网络协议·tcp/ip·whisper
Rinai_R6 小时前
计算机组成原理的学习笔记(7)-- 存储器·其二 容量扩展/多模块存储系统/外存/Cache/虚拟存储器
笔记·物联网·学习
吃着火锅x唱着歌6 小时前
PHP7内核剖析 学习笔记 第四章 内存管理(1)
android·笔记·学习
ragnwang6 小时前
C++ Eigen常见的高级用法 [学习笔记]
c++·笔记·学习
周湘zx6 小时前
项目三:信号源的FPGA实现
fpga开发
胡西风_foxww7 小时前
【es6复习笔记】rest参数(7)
前端·笔记·es6·参数·rest
9527华安8 小时前
FPGA多路MIPI转FPD-Link视频缩放拼接显示,基于IMX327+FPD953架构,提供2套工程源码和技术支持
fpga开发·架构·音视频
上理考研周导师8 小时前
【FPGA】ISE13.4操作手册,新建工程示例
fpga开发
胡西风_foxww10 小时前
【es6复习笔记】函数参数的默认值(6)
javascript·笔记·es6·参数·函数·默认值
胡西风_foxww10 小时前
【es6复习笔记】生成器(11)
javascript·笔记·es6·实例·生成器·函数·gen