0in cdc随记

上一篇 / 下一篇  2017-07-07 13:29:34 / 个人分类:reference flow

在多时钟域设计时,coding 结束后,需要做CDC(Clock Domain Cross)检查。一般使用Mentor Graphics推出的Questa-cdc工具或者Spyglass cdc。目前使用的Questa-cdc,version10.0f  linux of may 2013下面记录一些用法。

【1】一个design被设置为blackbox后,还需要将该design 端口设置相应的同步的时钟。
例如:

module example (
input clk ,
input rst_n,
input i_wren,
input [31:0] i_wrdat, 
output reg o_wren,
output reg [31:0] o_wrdat
);

endmodule
将exmaple设置为blackbox。如果不对example端口约束,那么这些端口就没有时钟信息,就会报blockbox的问题。
// 0in set_black_box exmaple
// 0in set_cdc_port_domain i_wren -clock clk -module example
// 0in set_cdc_port_domain i_wrdat -clock clk -module example
// 0in set_cdc_port_domain o_wren -clock clk -module example
// 0in set_cdc_port_domain o_wrdat -clock clk -module example

【2】 约束的撰写
ctrl信息包括 set_cdc_prefence.
//
set_cdc_preference
然后每个design有自己的特殊性,需要针对design在设置design_ctrl文件,包括时钟
复位设置、端口时钟域设置、端口常值设置、blackbox设置等。
//design_ctrl.v
module ctrl;
set_cdc_clock clk_200m -period 5 -group CLK_GROUP_200M
set_cdc_clock clk_100m -period 10 -group CLK_GROUP_100M

set_reset 

set_cdc_port_domain signal_name -clock clk_name -module module_name

set_block_box example
set_constant 
endmodule
【3】启动
0in -od $(design)     
-cmd cdc 
-ctrl ctrl.v 
-ctrl design_ctrl.v
 -f filelist 
-d $(design)
【4】CDC scheme:list as violation、caution、evaluation。
使用set_cdc_report 来调整scheme的level。
set_cdc_report scheme_name -severity {violation | caution | evaluation | off}
【5】如果一个部件内部使用使用了异步复位同步释放电路,并且产生内部复位信号,那么必须在ctrl_top.v里面做如下设置:
module ctrl_top;
// 0in set_cdc_preference -enable_interal_reset

endmodule
【6】出现一个现象:同步fifo使用了一个控制器 DW_fifoctrl_s1_sf,但是

就不能设置set_cdc_preference -black_box_empty_module。这句话意思就是空的module设置为blackbox。DW文件中会有 “ //synopsys translate off ”

【7】0in_cdc options
[ [ -db <db_name> | [db-name] [-mergedb <db-name> | [[-p <project_name>] | <ptoject_file> [[ <hdl_file_name>+[-]] \
[-d <top_level_module>] [-do <output_direcroty>] \
[-f <verilog_file_list> ] [-vhf <VHDL_file_list>] \
[-libmapfile <library_map_file>] [-libmap <name>=<value>] \
[-L <search library for saved module> ] \
[-Lf <library for saved modules.search before uselib> ] \
[-G <name>=<value>] [-g <name>=<value>] \
[-sdc_in <sdc_file> ] [-sdc_out <sdc_file>] \
[-v95] [-formal] [-verbos] \
[-ctrl <verilog control file>] [-vhctrl <vhdl control file>] \
[-import_ctrl <control_file>] [-run] \
[-no_directive_error_check] \
[-work <work_lib_path>] [-y <library_search_file>] [-v <library file>] \
[-cache <location of the cache directory>] \
[+define+<name=value>] [+libext+<ext>] [+incdir+<path>] \
[-block <treat module as a block for hierarchical emphsis+[-]>] \
[-id <CDC_ID>]
【8】CDC scheme summary

 CDC scheme               name         Status  protocol 
 single-bit signal does not have proper synchronizer  no_sync  V  cdc_sample
 combinational logic before synchronizer  combo_logic  V  clk_glitch
 signal feeds to the asynchronizer reset port of receiving register has no synchronizer.  async_reset_no_sync  V  NA
 fainin logic from multiple clock domains  fainin_different_clocks  V  cdc_sync
 signal source reconvergence  single_source_reconvergence  V  NA
 reconvergence of sychronizers  reconvergence  V  cdc_hamming1
 redundant synchronization  redundant  V  NA
       
       
       
       
       
       
       




TAG:

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2017-07-20  
      1
2345678
9101112131415
16171819202122
23242526272829
3031     

数据统计

  • 访问量: 3007
  • 日志数: 27
  • 建立时间: 2017-05-19
  • 更新时间: 2017-07-11

RSS订阅

Open Toolbar