1、Formality使用指南禁止scan和jtag功能 20运行match 21Verify 21说 明 FiFo的Tutorial目录下包含以下几个子目录:Rtl: fifo的RTL源代码;包含fifo.v, gray_counter.v, push_ctrl.v, gray2bin.v, pop_ctrl.v, rs_flop.v。Lib:门级网表需要的技术库;包含lsi_10k.db。Gate:综合的门级网表;包含fifo.vg 和fifo_mod.vg。Gate_with_scan:插入扫描链的门级网表; 包含fifo_with_scan.v。Gate_with_scan_jtag:带有
2、扫描链和JTAG链的门级网表; 包含fifo_with_scan_jtag.v。一.验证RTL与GATE网表RTL源代码:fifo.v 门级网表: fifo.vg检查文件fifo.v和门级网表fifo.vg的功能一致性设置RTL源代码fifo.v为reference design设置门级网表fifo.vg为Implementation design(一)图形用户界面进行形式验证在UNXI提示符下进入tutorial目录:输入fm(或formality)。1.设置reference design 点击formality图形界面的reference按钮,进入Read Design File ,点击
3、Verilog按钮,出现添加Verilog文件的对话框。如下图:1.1读取源文件 在对话框中选择:Rtl目录下的fifo.v文件,点击Open按钮,打开fifo.v源代码。如图:1.2设置搜索目录(上述源文件还未执行Load files命令) 点击option按钮,出现set verilog read option对话框,选择Variable,在DesingWare root directory(hdlin_dwroot)出输入:echo $SYNOPSYS 或Design Compiler的安装目录(本工作站的目录为/opt/tools/synopsys),如下图:1.3设置搜索目录 在Se
4、t verilog read option对话框中的VCS Style Option中选择Library Directory(-y),在Enter Diectory Name处浏览选择rtl目录,然后点击add按钮添加查找目录rtl。选择Library Extension(-libext),在Enter File Extension处填上后缀名.v,然后点击add按钮添加,点击OK按钮。1.4加载源文件然后点击LOAD FILES按钮,加载源文件fifo.v,如下图: 1.5设置fifo为reference的顶层再点击Set Top Design按钮,出现下图。在choose a librar
5、y 中选择WORK, 在choose a design中选择fifo(顶层设计的模块名)在Set and link the top design中点击Set Top,出现下图同时在Reference按钮上出现绿色的对号符:2.设置Implementation Design 点击Implement按钮,在Read Design Files 中点击Verilog,出现Add verilog files对话框,选择gate目录下的verlog网表文件fifo.vg, 点击Load Files加载网表文件fifo.vg,2.1加载Technology library 选择Read DB Librari
6、es按钮,点击DB按钮,出现Add DB Files对话框,选择lib目录下的lsi_10k.db库文件,(确保Read as share library被选中)点击LOAD Files,加载库文件。 选择Set Top Design,在Choose a library中选择WORK (Design Library),在Choose a design中选择顶层模块名fifo,点击Set Top按钮。此时在Implementation出现绿色的对号符。3.设置环境(Setup) 在这一步主要是设置常量,比如对应一些增加了SCAN扫描链和JTAG链的设计,需要设置一些常量,使这些SCAN和JTAG
7、等功能的禁止。由于fifo.v 是源代码,fifo.vg只是综合的源代码,没有添加SCAN和JTAG链。故可以省略这一步4.Match检查reference design 和 Implemention design的比较点是否匹配,点击Match按钮,选择Run Matching按钮,进行匹配检查。 出现下图结果:没有不匹配的比较点,可以进入下一步。5.Verify点击OK键,完成。现在你已经准备好,可以进行fifo.v和fifo.vg功能是否一致。选择Verify按钮,点击Verify All,进行形式验证。验证结束,结果出现“Verify”fail的对话框,提示两种功能不一致。 6. De
8、bug 由于验证失败,系统直接进入DEBUG工作区。在Failing Points的报告工作区里显示两设计的出不一致的比较点,在Failing Points的报告工作区内点击鼠标右键,选择Show All Cone Size ,在Size栏里显示每个compar point所包含的cell的数目。一般调试是从cell数目最小的compare point开始。在这里我们从第一个compare point开始。选择r:/WORK/fifo/push_logic/full_flag/q_out_rego, 击鼠标右键,选择菜单中的view Logic Cones,出现Logic Cones View
9、窗口。在这个新窗口里显示的是reference design 和Imeplemention design的原理图,观看这个原理图我们发现在Implementation的CLK网线是用红色标识的,在logic cone view中,用红色标识的net网线是表示错误的。我们观察发现在reference design的CLK中表示的logic值为0,而Imeplemention design的CLK中表示的logic值为1。为了找出CLK net值不同的原因,分别选择reference design和Imeplemention design的CLK网线,选择右键菜单里的Isolate Subcone
10、命令,出现下图。 在图中可以看出在Imeplemention design中驱动CLK的逻辑里多了一个反相器,这有可能是综合工具为了满足hold-time的要求而增加的反相器。我们可以修改fifo.vg网表文件和重新综合一个网表文件,来修改这个错误。在gate目录下有一个fifo_mod.vg文件是修改后的网表文件。关闭Logic cone View,重新用fifo_mod.vg作为Implementation design。选择Implementation,点击Read Design Files中的Verilog,点击yes来移除当前的Implementation Design设计(fifo
11、.vg)。重新选择fifo_mod.vg,点击Load files,加载文件。 Set top Design,选择WORK和fifo 同样,跳过Setup点击Match,选择Run Matching,运行完后出现下图: 点击Verify,选择Verify all,运行完出现下图,提示“Verification Successded!” 点击OK后,出现下图,显示所有compare point都pass。到此,完成形式验证。7清理工作选择工具栏中的remove reference 和remove Implementation按钮,移除reference design 和Implementatio
12、n design在formality的命令行输入:remove_library all命令移除technology library:lsi_10k.db。(二)命令行方式进行形式验证在上一节不退出formality图形界面,在formality的命令栏中输入:history fifo_rtl_gate.fms,生成脚本文件fifo_rtl_gate.fms。退出formality图形界面 fifo_rtl_gate.fms的内容set hdlin_dwroot /opt/tools/synopsys_2003.06read_verilog -container r -libname WORK
13、-vcs -y /home/user/tutorial/rtl/ +libext+.v -01 /home/user/tutorial/rtl/fifo.v set_top r:/WORK/fifo read_verilog -container i -libname WORK -01 /home/user/tutorial/gate/fifo_mod.vg read_db -container i /home/user/tutorial/lib/lsi_10k.db set_top i:/WORK/fifomatchverify 命令行方式运行在unix命令提示行下输入命令: fm_shel
14、l f fifo_rtl_gate.fms unix命令提示行输入命令fm_shell,进入formality的命令行模式。 在formality的命令行模式fm_shell提示符下输入命令: source fifo_rtl_gate.fms 二. 检查GATE网表和插入扫描链的GATE网表 检查fifo_mod.vg和fifo_with_scan.v的功能设置fifo_mod.vg为reference design设置fifo_with_scan.v为implementation design1. set referenc design点击reference按钮,在Read Design F
15、iles 中点击Verilog,选择gate目录下的verlog网表文件fifo_mod.vg,点击Load Files加载网表文件fifo_mod.vg 在Read DB Files 中点击DB加载lsi_10k.db库文件,点击Load Files加载Set top,设置fifo(并不是已读入的文件)模块为顶层。2. set implementation design点击implementation按钮,在Read Design Files 中点击Verilog,选择gate_with_scan目录下的verlog网表文件fifo_with_scan.v,点击Load Files加载网表文件fifo_with_scan.v 可以省略Read DB Libraries这一步,因为在设置fifo_mod.vg时,我们已经加载lsi_10k.db为共享库文件。 Set top,设置fifo模块为顶层。3. setup由于在fifo_with_scan.v网表里加入了扫描链(scan)逻辑,在验证之前,我们必须把这一扫描链(scan)逻辑功能禁止(disable)。进入Setup界面后,选择Constant
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1