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

相关推荐
智者知已应修善业10 分钟前
【51单片机节日彩灯控制器设计】2022-6-11
c语言·经验分享·笔记·单片机·嵌入式硬件·51单片机
Jyywww12115 分钟前
微信小程序学习笔记
笔记·学习·微信小程序
m0_6786933332 分钟前
深度学习笔记29-RNN实现阿尔茨海默病诊断(Pytorch)
笔记·rnn·深度学习
sigmoidAndRELU2 小时前
读Vista
笔记·stable diffusion·世界模型
Sincerelyplz2 小时前
【Temproal】快速了解Temproal的核心概念以及使用
笔记·后端·开源
Yo_Becky3 小时前
【PyTorch】PyTorch预训练模型缓存位置迁移,也可拓展应用于其他文件的迁移
人工智能·pytorch·经验分享·笔记·python·程序人生·其他
DIY机器人工房4 小时前
0.96寸OLED显示屏 江协科技学习笔记(36个知识点)
笔记·科技·stm32·单片机·嵌入式硬件·学习·江协科技
future14125 小时前
每日问题总结
经验分享·笔记
search76 小时前
Verilog 语法介绍 1-1结构
fpga开发
循环过三天7 小时前
3-1 PID算法改进(积分部分)
笔记·stm32·单片机·学习·算法·pid