当前位置:首页 > 公众号精选 > 全栈芯片工程师
[导读]将芯片中的普通寄存器替换成带扫描功能的寄存器,串联成几条Chain,从而实现寄存器的扫描测试功能。本文以小编写的异步FIFO设计为例。Scan Cell扫描寄存器特殊在哪?如下,该结构图也是老生常谈了。ScanStyles 常用的ScanStyles有如下四种,通常各大工艺都支持...


将芯片中的普通寄存器替换成带扫描功能的寄存器,串联成几条Chain,从而实现寄存器的扫描测试功能。本文以小编写的异步FIFO设计为例。




Scan Cell


扫描寄存器特殊在哪?如下,该结构图也是老生常谈了。




Scan Styles 


常用的Scan Styles有如下四种,通常各大工艺都支持第一种:


• Multiplexed Flip-Flop Scan Style

• Clocked-Scan Scan Style

• LSSD Scan Style

• Scan-Enabled LSSD Style


Multiplexed Flip-Flop Scan Cell示意图:




Scan flow


read_file -format ddc top.ddccurrent_design topset_scan_configuration -style multiplexed_flip_flopset_dft_signal -view existing_dft -type ScanClock \-port clock -timing [list 45 55]create_test_protocoldft_drcpreview_dftinsert_dftchange_names ...write_scan_def -output my_def.scandefwrite_test_protocol -output test_mode.spfwrite -format verilog -hierarchy -output top.vwrite -format ddc -hierarchy -output top.ddc




scan def


通常使用DEF文件来定义扫描连,一般称为scan def,以下图异步FIFO的scan DEF语句来说明:

1) SCANCHAINS   SCANCHAINS 3 ;表示stub chain数量为3。   为什么有个stub chain?   注意,scandef里面的stub chain个数与设计中的实际scan chain个数不一定相同。   如上图,因异步FIFO读写时钟之间的scan chain用LOCKUP隔断,C1被分成C1_SG1、C1_SG2,即一条实际的scan chain在scandef中被拆分成两条stub chain。该类stub chain的名字(在scandef文件中以 “-”开头的参数)中会有SG标志字符: 2)  STARTstub chain的开始标志。注意, START/ STOP可以是scan I/O ports, codec logic gates, lockup latches, reconfiguration MUXs, or buffer/inverter pins。   比如:LOCKUP的Q端作为  START

   内部寄存器(如retiming flipflop例化了非scan cell的DFF):   START  U_TOP/RETIMING_FLOP Q   外部管脚使用以下格式:    START PIN winc


3)  STOPstub chain的结束标志,如异步FIFO网表中LOCKUP插入后:     STOP LOCKUP D ;

内部寄存器(如retiming flipflop例化了非scan cell的DFF):    STOP U_TOP/RETIMING_FLOP D或者内部MUX:


4)  FLOATING表示一条stub chain中可以reorder/partition的scan cell。

 5) ORDERED表示一条stub chain中不可以重排序,上图可以看出,异步FIFO同步器synchronizer两个打拍寄存器就是ORDERED。为什么不能reorder呢,有如下三个原因:
  1. shift registers;

  2. 用命令set_scan_path -ordered_elements定义的scan segments

  3. buffers or inverters between scan cells;


也就是说: ORDERED 表示需要放在一起的单元,如下图中out_reg_4与u_buf就是ORDERED单元,用方框圈出 scan chain终点。


6) PARTITION表示有相同PARTITION名的stub chain可以进行重新划分(repartition),如:


7)  BITSThe BITS attribute表示的是a scan element that represent multiple scan bits. This allows complex scan cells, such as DFT-inserted cores, to be represented in abstract form. 通常说的一个scan cell扫描单元就是指的1bit scan cell。
部分文章索引:

芯片ECO(一)

详解GDSII文件

详解SPEF文件

详解SPI协议

详解I2C协议

详解GearBox设计原理

详解set_clock_gating_style命令

【MCU】Cortex-M3 SoC的主栈指针

低功耗设计之Multi-Bit Cell

剖析数字后端site、track、pitch的概念

Verilog中,2'b1x和2’b0x造成的仿真器、综合器的mismatch!

【剖析】傅里叶变换、拉普拉斯变换、Z变换

【剖析】傅里叶变换、拉普拉斯变换、Z变换(二)

芯片设计之CDC异步电路(五)

芯片设计之CDC异步电路(四)

芯片设计之CDC异步电路(三)

芯片设计之CDC异步电路(二)

芯片设计之CDC异步电路(一)

OCV分析计算

低功耗设计之Power Switch Cell

深度剖析“异步复位、同步撤离”

芯片后仿(二)

时钟切换clk_switch

8B/10B、64B/66B编解码(一)

8B/10B、64B/66B编解码(二)

剖析FPGA怎么实现“超前进位加法器”(一)

剖析FPGA怎么实现“超前进位加法器”(二)

FPGA原型验证-时钟门控的替换

行波进位/超前进位加法器详解

AES加密算法(一)

Cadence Voltus-功耗分析
本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
关闭