swary的个人空间 https://blog.eetop.cn/807489 [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

0in cdc随记

已有 6223 次阅读| 2017-7-7 13:29 |个人分类: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 ”
一般的做法,把控制器的端口都约束到相应时钟上。
 // 0in set_cdc_port_domain push_n -clock clk -module DW_fifoctrl_s1_sf
.....

【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
       
       
       
       
       
       
       




点赞

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 6

    粉丝
  • 0

    好友
  • 11

    获赞
  • 16

    评论
  • 3125

    访问数
关闭

站长推荐 上一条 /2 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-4-19 18:41 , Processed in 0.018320 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部