能进入各种网站的浏览器,网站建设2018,免费的wordpress主机,哪个网站建设最好高亚军老师的这本书《AMD FPGA设计优化宝典》#xff0c;他主要讲了两个东西#xff1a; 第一个东西是代码的良好风格#xff1b; 第二个是设计收敛等的本质。
这个书的结构是一个总论#xff0c;加上另外的9个优化#xff0c;包含的有#xff1a;时钟网络、组合逻辑、触…高亚军老师的这本书《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 { bridge[N-2:0], 1’b0};//除了最高位之外的低N-1位左移一位最低位赋值0 end end
always(posedge clk) begin bridge_dly[0] bridge[N-1];//bridge最高位赋值给bridge_dly的最低位 bridge_dly[1] bridge_dly[0];//bridge_dly的最高位是最低位延一拍 bridge_dly[1]也输出作为同步复位 end
这些代码的作用是将输入的异步复位信号aset展宽aset是高电平有效aset原宽度为1展宽的宽度是N并将aset展宽后的信号同步到目标时钟clk下。
3 改善布局
同步复位比较好因为综合时工具可以根据控制集的要求将其搬移到数据路径上对改善布局质量很有帮助。 同步复位受时钟控制因此时钟可以过滤复位信号上的毛刺从而防止触发器误动作。异步复位不受时钟控制没法过滤毛刺从而可能导致触发器误动作。