Formality使用指南.docx

上传人:b****5 文档编号:3237633 上传时间:2022-11-20 格式:DOCX 页数:21 大小:792.04KB
下载 相关 举报
Formality使用指南.docx_第1页
第1页 / 共21页
Formality使用指南.docx_第2页
第2页 / 共21页
Formality使用指南.docx_第3页
第3页 / 共21页
Formality使用指南.docx_第4页
第4页 / 共21页
Formality使用指南.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

Formality使用指南.docx

《Formality使用指南.docx》由会员分享,可在线阅读,更多相关《Formality使用指南.docx(21页珍藏版)》请在冰豆网上搜索。

Formality使用指南.docx

Formality使用指南

禁止scan和jtag功能20

运行match21

Verify21

说明

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:

带有扫描链和JTAG链的门级网表;

包含fifo_with_scan_jtag.v。

一.验证RTL与GATE网表

RTL源代码:

fifo.v

门级网表:

fifo.vg

检查文件fifo.v和门级网表fifo.vg的功能一致性

设置RTL源代码fifo.v为referencedesign

设置门级网表fifo.vg为Implementationdesign

(一)图形用户界面进行形式验证

在UNXI提示符下进入tutorial目录:

输入fm(或formality)。

1.设置referencedesign

点击formality图形界面的reference按钮,进入ReadDesignFile,点击Verilog按钮,出现添加Verilog文件的对话框。

如下图:

1.1读取源文件

在对话框中选择:

Rtl目录下的fifo.v文件,点击Open按钮,打开fifo.v源代码。

如图:

1.2设置搜索目录(上述源文件还未执行Loadfiles命令)

点击option按钮,出现setverilogreadoption对话框,选择Variable,在DesingWarerootdirectory(hdlin_dwroot)出输入:

echo$SYNOPSYS或DesignCompiler的安装目录(本工作站的目录为/opt/tools/synopsys),如下图:

1.3设置搜索目录

在Setverilogreadoption对话框中的VCSStyleOption中选择LibraryDirectory(-y),在EnterDiectoryName处浏览选择rtl目录,然后点击add按钮添加查找目录rtl。

选择LibraryExtension(-libext),在EnterFileExtension处填上后缀名.v,然后点击add按钮添加,点击OK按钮。

1.4加载源文件

然后点击LOADFILES按钮,加载源文件fifo.v,如下图:

1.5设置fifo为reference的顶层

再点击SetTopDesign按钮,出现下图。

在choosealibrary中选择WORK,

在chooseadesign中选择fifo(顶层设计的模块名)

在Setandlinkthetopdesign中点击SetTop,出现下图

同时在Reference按钮上出现绿色的对号符:

2.设置ImplementationDesign

点击Implement按钮,在ReadDesignFiles中点击Verilog,出现Addverilogfiles对话框,选择gate目录下的verlog网表文件fifo.vg,点击LoadFiles加载网表文件fifo.vg,

2.1加载Technologylibrary

选择ReadDBLibraries按钮,点击DB…按钮,出现AddDBFiles对话框,选择lib目录下的lsi_10k.db库文件,(确保Readassharelibrary被选中)点击LOADFiles,加载库文件。

选择SetTopDesign,在Choosealibrary中选择WORK(DesignLibrary),在Chooseadesign中选择顶层模块名fifo,点击SetTop按钮。

此时在Implementation出现绿色的对号符。

3.设置环境(Setup)

在这一步主要是设置常量,比如对应一些增加了SCAN扫描链和JTAG链的设计,需要设置一些常量,使这些SCAN和JTAG等功能的禁止。

由于fifo.v是源代码,fifo.vg只是综合的源代码,没有添加SCAN和JTAG链。

故可以省略这一步

4.Match

检查referencedesign和Implementiondesign的比较点是否匹配,点击Match按钮,选择RunMatching按钮,进行匹配检查。

出现下图结果:

没有不匹配的比较点,可以进入下一步。

5.Verify

点击OK键,完成。

现在你已经准备好,可以进行fifo.v和fifo.vg功能是否一致。

选择Verify按钮,点击VerifyAll,进行形式验证。

验证结束,结果出现“Verify”fail的对话框,提示两种功能不一致。

6.Debug

由于验证失败,系统直接进入DEBUG工作区。

在FailingPoints的报告工作区里显示两设计的出不一致的比较点,在FailingPoints的报告工作区内点击鼠标右键,选择ShowAllConeSize,在Size栏里显示每个comparpoint所包含的cell的数目。

一般调试是从cell数目最小的comparepoint开始。

在这里我们从第一个comparepoint开始。

选择r:

/WORK/fifo/push_logic/full_flag/q_out_reg[o],击鼠标右键,选择菜单中的viewLogicCones,出现LogicConesView窗口。

在这个新窗口里显示的是referencedesign和Imeplementiondesign的原理图,观看这个原理图我们发现在Implementation的CLK网线是用红色标识的,在logicconeview中,用红色标识的net网线是表示错误的。

我们观察发现在referencedesign的CLK中表示的logic值为0,而Imeplementiondesign的CLK中表示的logic值为1。

为了找出CLKnet值不同的原因,分别选择referencedesign和Imeplementiondesign的CLK网线,选择右键菜单里的IsolateSubcone命令,出现下图。

在图中可以看出在Imeplementiondesign中驱动CLK的逻辑里多了一个反相器,这有可能是综合工具为了满足hold-time的要求而增加的反相器。

我们可以修改fifo.vg网表文件和重新综合一个网表文件,来修改这个错误。

在gate目录下有一个fifo_mod.vg文件是修改后的网表文件。

关闭LogicconeView,重新用fifo_mod.vg作为Implementationdesign。

选择Implementation,点击ReadDesignFiles中的Verilog,点击yes来移除当前的ImplementationDesign设计(fifo.vg)。

重新选择fifo_mod.vg,点击Loadfiles,加载文件。

SettopDesign,选择WORK和fifo

同样,跳过Setup

点击Match,选择RunMatching,运行完后出现下图:

点击Verify,选择Verifyall,运行完出现下图,提示“VerificationSuccessded!

点击OK后,出现下图,显示所有comparepoint都pass。

到此,完成形式验证。

7清理工作

选择工具栏中的removereference和removeImplementation按钮,移除referencedesign和Implementationdesign

在formality的命令行输入:

remove_library–all命令移除technologylibrary:

lsi_10k.db。

(二)命令行方式进行形式验证

在上一节不退出formality图形界面,在formality的命令栏中输入:

history>fifo_rtl_gate.fms,生成脚本文件fifo_rtl_gate.fms。

退出formality图形界面

fifo_rtl_gate.fms的内容

sethdlin_dwroot/opt/tools/synopsys_2003.06

read_verilog-containerr-libnameWORK-vcs"-y/home/user/tutorial/rtl/+libext+.v"

-01{/home/user/tutorial/rtl/fifo.v}

set_topr:

/WORK/fifo

read_verilog-containeri-libnameWORK-01{/home/user/tutorial/gate/fifo_mod.vg}

read_db-containeri{/home/user/tutorial/lib/lsi_10k.db}

set_topi:

/WORK/fifo

match

verify

命令行方式运行

±在unix命令提示行%下输入命令:

fm_shell–ffifo_rtl_gate.fms

±unix命令提示行%输入命令fm_shell,进入formality的命令行模式。

在formality的命令行模式fm_shell>提示符下输入命令:

sourcefifo_rtl_gate.fms

二.检查GATE网表和插入扫描链的GATE网表

±检查fifo_mod.vg和fifo_with_scan.v的功能

±设置fifo_mod.vg为referencedesign

±设置fifo_with_scan.v为implementationdesign

1.setreferencdesign

±点击reference按钮,在ReadDesignFiles中点击Verilog,选择gate目录下的verlog网表文件fifo_mod.vg,点击LoadFiles加载网表文件fifo_mod.vg

±在ReadDBFiles中点击DB加载lsi_10k.db库文件,点击LoadFiles加载

±Settop,设置fifo(并不是已读入的文件)模块为顶层。

2.setimplementationdesign

±点击implementation按钮,在ReadDesignFiles中点击Verilog,选择gate_with_scan目录下的verlog网表文件fifo_with_scan.v,点击LoadFiles加载网表文件fifo_with_scan.v

±可以省略ReadDBLibraries这一步,因为在设置fifo_mod.vg时,我们已经加载lsi_10k.db为共享库文件。

±Settop,设置fifo模块为顶层。

3.setup

±由于在fifo_with_scan.v网表里加入了扫描链(scan)逻辑,在验证之前,我们必须把这一扫描链(scan)逻辑功能禁止(disable)。

±进入Setup界面后,选择Constant

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 英语

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1