Mentor-dft 学习笔记 day49-Tessent On-Chip Clock Controller&Basic Clock Gater Cell&Two embedding

occ.dft_spec

 a basic OCC DftSpecification举例子:

DftSpecification(cpu, occ_core) {

reuse_modules_when_possible: on;

OCC { Controller(CLK1_OCC) {

// DEFINE ROOT OF CLOCK DOMAIN WHERE OCC SHOULD BE INSERTED clock_intercept_node: /BUF_OCC_1/Y; }

Controller(CLK2_OCC) {

// DEFINE ROOT OF CLOCK DOMAIN WHERE OCC SHOULD BE INSERTED clock_intercept_node: /BUF_OCC_2/Y; }

Controller(CLK3_OCC) {

// DEFINE ROOT OF CLOCK DOMAIN WHERE OCC SHOULD BE INSERTED clock_intercept_node: /BUF_OCC_3/Y; } } }

post_dft_insertion_procedure.tcl

post-DFT插入的Tcl程序。此OCC插入示例包含process_dft_specification.post_insertation过程。

过程名称是一个关键字,它指示process_dft_specification命令在插入指定的dft逻辑后立即执行过程的内容。插入后脚本创建一个扫描链,将所有插入的OCC的移位寄存器连接到一个未压缩的扫描链中。此外,还创建了一个dofile,用于在后续步骤中添加时钟控制扫描链。通常,OCC子链将在扫描插入期间缝合到设计的扫描链上。在这个扫描后插入示例中,post_dft_insertation示例用于演示插入后进行设计编辑 。

proc process_dft_specification.post_insertion {cpu args} {

# Create ports for control scan chain

create_port occ_control_scan_in -direction input##输入

create_port occ_control_scan_out -direction output##输出

# Concatenate OCC condition bit shift registers into new control scan

#chain

set first_inst 1

foreach inst_name [get_name_list [get_instances -of_module cpu_occ_core_tessent_occ]] {

if ($first_inst) {

create_connection occ_control_scan_in $inst_name/scan_in

set first_inst 0

set last_inst_name $inst_name }

else {

create_connection $last_inst_name/scan_out $inst_name/scan_in

set last_inst_name $inst_name } }

create_connection $

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值