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

相关推荐
Upsy-Daisy19 分钟前
Hermes Agent 学习笔记 09:MCP 集成,让 Agent 连接外部工具生态
笔记·学习
自小吃多30 分钟前
IVD设备-以GB4793.1做安规摸底
笔记·嵌入式硬件
鱼子星_1 小时前
C++从零开始系列篇(二):C++入门——函数重载,引用,inline与nullptr
开发语言·c++·笔记
日取其半万世不竭1 小时前
Memos 私人碎片笔记怎么搭?Docker 加 Caddy 一小时跑起来
笔记·docker·容器
sheeta19981 小时前
LeetCode 每日一题笔记 日期:2026.06.16 题目:3612. 字符串特殊符号处理
笔记·算法·leetcode
Cloud_Shy6182 小时前
解读《Effective Python 3rd Edition》:从练气到老魔(第七章 Item 52 - 53)
开发语言·人工智能·笔记·python
星恒随风2 小时前
C++ string 类详解:常用接口、OJ 场景与模拟实现中的深浅拷贝
开发语言·c++·笔记·学习·状态模式
searchforAI2 小时前
2026国产AI笔记工具横评:Get笔记、Ai好记、通义听悟、BiBiGPT各有什么特色?
人工智能·笔记·学习·ai·音视频·知识图谱·知识库
三品吉他手会点灯9 小时前
C语言学习笔记 - 50.流程控制4 - 流程控制为什么非常非常重要
c语言·开发语言·笔记·学习
chushiyunen11 小时前
langchain4j笔记、tools
笔记·python·flask