博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
对编译特性(* ASYNC_REG = “TRUE” *)的理解
阅读量:4605 次
发布时间:2019-06-09

本文共 1576 字,大约阅读时间需要 5 分钟。

 

(*ASYNC_REG = "TRUE"*)命令用于声明寄存器能够接收相对于时钟源的异步数据,或者说寄存器是一个同步链路上正在同步的寄存器。这条命令可以放在任何寄存器上,除了设置它的值为TRUE外还可以设置为FALSE.

例子:(*ASYNC_REG = "TRUE"*) reg [0:0]  async_rst = 0;

这样可以强制指定async_rst为异步时钟输入,防止综合器对打拍寄存器进行优化,类似DONT_TOUCH。 详情见UG901-Vivado Design Suite User Guide.pdf

 

   

 

module reset_sync  (input clk,   input reset_in,   output  reset_out);   (* ASYNC_REG = "TRUE" *) reg reset_int = 1'b1;   (* ASYNC_REG = "TRUE" *) reg reset_out_tmp = 1'b1;   always @(posedge clk or posedge reset_in)     if(reset_in)       {reset_out_tmp,reset_int} <= 2'b11;     else       {reset_out_tmp,reset_int} <= {reset_int,1'b0};   assign reset_out = reset_out_tmp;endmodule // reset_sync

 

module cdc#(    parameter   DW  =16 ,    parameter   SL  =3      )    (    input               sys_clk ,    input               sys_rst ,    input   [DW-1:00]   A_Din   ,    output  [DW-1:00]   S_Dout    );    (*ASYNC_REG="true"*)reg     [DW-1:00]   ccsrl_A_Din[0:SL-1];                    reg     [DW-1:00]   ccr_A_Din   ={DW{
1'b0}} ;always@(posedge sys_clk)begin if(sys_rst) begin ccsrl_A_Din[SL-1] <= 1'b0 ; end else begin ccsrl_A_Din[SL-1] <= A_Din ; endendgenvar i;generate for(i=0;i

 

相关参考:

DONT_TOUCH Verilog ExamplesVerilog Wire Example(* dont_touch = “yes” *) wire sig1;assign sig1 = in1 & in2;assign out1 = sig1 & in2;Verilog Module Example(* DONT_TOUCH = “yes” *)module example_dt_ver(clk,In1,In2,out1);Verilog Instance Example(* DONT_TOUCH = “yes” *) example_dt_ver U0(.clk(clk),.in1(a),.in2(b),.out1(c));

 

转载于:https://www.cnblogs.com/limanjihe/p/9781319.html

你可能感兴趣的文章
【WEB前端经验之谈】时间一年半,或沉淀、或从零开始。
查看>>
优云软件助阵GOPS·2017全球运维大会北京站
查看>>
linux 装mysql的方法和步骤
查看>>
poj3667(线段树区间合并&区间查询)
查看>>
51nod1241(连续上升子序列)
查看>>
SqlSerch 查找不到数据
查看>>
集合相关概念
查看>>
Memcache 统计分析!
查看>>
(Python第四天)字符串
查看>>
个人介绍
查看>>
使用python动态特性时,让pycharm自动补全
查看>>
MySQL数据库免安装版配置
查看>>
你必知必会的SQL面试题
查看>>
html5 Canvas绘制时钟以及绘制运动的圆
查看>>
Unity3D热更新之LuaFramework篇[05]--Lua脚本调用c#以及如何在Lua中使用Dotween
查看>>
JavaScript空判断
查看>>
洛谷 P1439 【模板】最长公共子序列(DP,LIS?)
查看>>
python timeit
查看>>
Wireless Network 并查集
查看>>
51nod 1019 逆序数
查看>>