《Formality使用指南.ppt》由会员分享,可在线阅读,更多相关《Formality使用指南.ppt(63页珍藏版)》请在第壹文秘上搜索。
1、Formality使用指南使用指南检查RTL与GATE网表检查GATE网表和插入扫描链的GATE网表检查带有扫描链和JTAG链的GATE网表和插入扫描链的GATE网表提提 纲纲说说 明明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:插入扫描链的门级网表;
2、包含fifo_with_scan.v。Gate_with_scan_jtag:带有扫描链和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.设置设置refe
3、rence design点击formality图形界面的reference按钮,进入Read Design File点击Verilog按钮,出现添加Verilog文件的对话框。如下图:1.1读取源文件读取源文件在对话框中选择:Rtl目录下的fifo.v文件,点击Open按钮,打开fifo.v源代码。如图:1.2设置搜索目录设置搜索目录点击option按钮,出现set verilog read option对话框,选择Variable,在DesingWare root directory(hdlin_dwroot)出输入:echo $SYNOPSYS 或Design Compiler的安装目录(
4、本工作站的目录为/opt/tools/synopsys),如下图: 1.3设置搜索目录设置搜索目录在Set 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设置
5、设置fifo为为reference的顶层的顶层在点击Set Top Design按钮,出现下图。在choose a library 中选择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,点击Lo
6、ad Files加载网表文件fifo.vg,2.1加载加载Technology library选择Read DB Libraries按钮,点击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.设置环境设置环境(
7、Setup)在这一步主要是设置常量,比如对应一些增加了SCAN扫描链和JTAG链的设计,需要设置一些常量,使这些SCAN和JTAG等功能的禁止。由于fifo.v 是源代码,fifo.vg只是综合的源代码,没有添加SCAN和JTAG链。故可以省略这一步4.Match检查reference design 和 Implemention design的比较点是否匹配点击Match按钮,选择Run Matching按钮,进行匹配检查。 出现下图结果:没有不匹配的比较点,可以进入下一步。 5.Verify点击OK键,完成。现在你已经准备好,可以进行fifo.v和fifo.vg功能是否一致。选择Verify
8、按钮,点击Verify All,进行形式验证。验证结束,结果出现“Verify”fail的对话框,提示两种功能不一致。 6. Debug由于验证失败,系统直接进入DEBUG工作区。在Failing Points的报告工作区里显示两设计的出不一致的比较点在Failing Points的报告工作区内点击鼠标右键,选择Show All Cone Size ,在Size栏里显示每个compar point所包含的cell的数目一般调试是从cell数目最小的compare point开始。在这里我们从第一个compare point开始。选择r:/WORK/fifo/push_logic/full_fl
9、ag/q_out_rego, 击鼠标右键,选择菜单中的view Logic Cones,出现Logic Cones View窗口。 在这个新窗口里显示的是reference design 和Imeplemention design的原理图,观看这个原理图我们发现在Implementation的CLK网线是用红色标识的在logic cone view中,用红色标识的net网线是表示错误的我们观察发现在reference design的CLK中表示的logic值为0,而Imeplemention design的CLK中表示的logic值为1。为了找出CLK net值不同的原因,分别选择refere
10、nce design和Imeplemention design的CLK网线,选择右键菜单里的Isolate Subcone命令,出现下图。在图中可以看出在Imeplemention design中驱动CLK的逻辑里多了一个反相器,这有可能是综合工具为了满足hold-time的要求而增加的反相器。我们可以修改fifo.vg网表文件和重新综合一个网表文件,来修改这个错误。在gate目录下有一个fifo_mod.vg文件是修改后的网表文件。关闭Logic cone View,重新用fifo_mod.vg作为Implementation design。选择Implementation,点击Read D
11、esign Files中的Verilog,点击yes来移除当前的Implementation Design设计(fifo.vg)。重新选择fifo_mod.vg,点击Load files,加载文件。 Set top Design,选择WORK和fifo同样,跳过Setup点击Match,选择Run Matching,运行完后出现下图: 点击Verify,选择Verify all,运行完出现下图,提示“Verification Successded!”点击OK后,出现下图,显示所有compare point都pass。到此,完成形式验证。清理工作清理工作选择工具栏中的remove referen
12、ce 和remove Implementation按钮,移除reference design 和Implementation 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
13、_dwroot /opt/tools/synopsys_2003.06 read_verilog -container r -libname WORK -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/li
14、b/lsi_10k.db set_top i:/WORK/fifo match verify命令行方式运行命令行方式运行在unix命令提示行下输入命令: fm_shell f fifo_rtl_gate.fms unix命令提示行输入命令fm_shell,进入formality的命令行模式。 在formality的命令行模式fm_shell提示符下输入命令: source fifo_rtl_gate.fms 检查RTL与GATE网表检查GATE网表和插入扫描链的GATE网表检查带有扫描链和JTAG链的GATE网表和插入扫描链的GATE网表提提 纲纲二二.检查检查fifo_mod.vg和和 fi
15、fo_with_scan.v的功能的功能设置fifo_mod.vg为reference design设置fifo_with_scan.v为implementation design1. set referenc design点击reference按钮,在Read Design Files 中点击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 implem
16、entation 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界面后,选择Constants,点击Set按钮,出现set Constant对话框。 设置设置SCAN链的功能无效链的功能无效选择Implementation,选择Instance的顶层fifo,在顶层fifo的ports目录下面搜索找到名为test_se(SCAN功能的使能信号)的管脚,在Constant Value中选择值0,设置test_se的值为