====== ssn ====== ===== - ijtag streaming interface ===== 设置streaming interface为ijtag, 即可以通过JTAG接口来输入scan test pattern。 此时edt 和 occ slow clock都来自于ssn host, 由tck分频而来。 scan_en=0时,occ切换到fast clock进行正常的at-speed capture操作。 set_ssn_options -streaming_interface ijtag 下面是波形截图 {{:edastudy:tessent:pasted:20231106-221125.png}} ===== - retarget 2 tile ===== retarget时,建议总是打开on_chip_compare_enable, 这样会在ssn host里面保存scan sticky结果,方便jtag读取结果。 set_core_instance_parameters -module gps_baseband_rtl1_tessent_ssn_scan_host_1 -parameter_values { on_chip_compare_enable on on_chip_compare_group 1 } ==== - use ssn_bus streaming interface ==== 下图是同时retarget 2 个gps模块的波形图, 其内部edt同时工作,并且几乎是同时停,没有带宽浪费。 {{:edastudy:tessent:pasted:20231106-223433.png}} 下图是说edt clk & shift clk这些是从bus_clk分频而来的, {{:edastudy:tessent:pasted:20231106-224131.png}} ==== - use ijtag streaming interface ==== 下图是仅使用ijtag接口来传scan pattern,从图中看出bus_clk没有时钟, regartet 2个GPS模块,2个edt同时停,没有带宽浪费。 {{:edastudy:tessent:pasted:20231106-225037.png}} ===== - retarget 3 tile ===== ==== - ssn bus scan pattern ==== 下图是3个tile一起retarget的情况,一个process core, 2个gps core, 从图中看出scan_en下降的时间不一样。 {{:edastudy:tessent:pasted:20231106-230004.png}} 放大,看edt_clk & shift clock 细节, 比较明显是的process core的edt clk给得慢,gps core给得快(几乎是2个process edt clk的时间,3个gps edt clk) 而且 process edt channel宽度更窄一些,说明算法已经在尽量平衡带宽,又保证ssn bus带宽不浪费。 {{:edastudy:tessent:pasted:20231106-230352.png}} ==== - ijtag scan pattern ==== retarget 3 tile, streming interface只使用ijtag {{:edastudy:tessent:pasted:20231106-230933.png}} retarget 3 tile, streming interface只使用ijtag, 放大 {{:edastudy:tessent:pasted:20231106-231056.png}} ===== - DefaultChildConfiguration ===== set spec [create_dft_specification -sri_sib_list ssn] read_config_data -in $spec -from_string { SSN { DefaultChildConfiguration { bus_register_reset :off; } Datapath(1) { output_bus_width : 16; Pipeline(1) { //operates at 1/4 rate } BusFrequencyDivider(1) { frequency_ratio : 4; } Pipeline(2) { //operates at full rate } } } } ===== - extrace_icl ===== 如果抽icl时遇到说ssn path没有定义,可以使用如下方式定义一下再抽取icl SETUP> add_icl_ssn_datapaths {1} SETUP> set_icl_ssn_datapath_ports -name 1 -clock_inputs ssn_bus_clock \ -bus_data_inputs ssn_bus_data_in[15:0] -bus_data_outputs ssn_bus_data_out[15:0] SETUP> extract_icl ==== - 不同SSN DATAPATH宽度集成 ==== 当在一个SSN BUS上有不同宽度的SSH需要集成时,要注意用ssn mux隔开, 比如SSN BUS主宽度为10, 某个SSH宽度为4,不能直接将SSH接入BUS中 \\ 一定需要SSH先接一个宽度为10的ssn mux, 只是ssn mux与SSH之间的宽度为4 \\ 而ssn mux的主路径宽度依然是10 这样操作的话,自动抽取ICL也不会有问题。 ===== - clock arch? ===== {{:edastudy:tessent:pasted:20240606-171655.png?nolink}} {{:edastudy:tessent:pasted:20240606-171709.png?nolink}} ===== - reducing clock skew ===== {{:edastudy:tessent:pasted:20241126-154513.png?nolink}} {{:edastudy:tessent:pasted:20241126-154644.png?nolink}}