Cadence NC仿真工具使用教程
张春
2008-12-17
一、安装和设置(WINDOWS平台)...............................................................................................2 二、主要参考资料...........................................................................................................................2 三、文件准备...................................................................................................................................3 四、使用流程简介...........................................................................................................................4 工作模式的选择.......................................................................................................................4 建立工作环境...........................................................................................................................5 Complie.....................................................................................................................................6 Elabrate.....................................................................................................................................7 功能仿真...................................................................................................................................7 门级仿真...................................................................................................................................8 文件准备...........................................................................................................................8 编译标准单位库...............................................................................................................8 编译门级网单和testbench...............................................................................................9 SDF反标................................................................................................................................10 1.什么是SDF文件?.................................................................................................10 2.怎样得到SDF文件?.............................................................................................11 3. Verilog Testbench的SDF反标..............................................................................11 4. VHDL Testbench的SDF反标..............................................................................11 5.在Modelsim中进行SDF反标...............................................................................12
五、源文件.....................................................................................................................................12 demo-counter.vhd....................................................................................................................12 demo-counter-tb.vhd...............................................................................................................12 六、注意事项.................................................................................................................................13
一、安装和设置(WINDOWS平台)
1.设置环境变量
软件安装完成后需要设置操作系统的环境变量,指向LICENSE服务器。步骤如下:在桌面“我的电脑”上按鼠标右键,选择“属性”菜单。弹出“系统特性”对话框后,选择“高级”页,然后选“环境变量…”,在“用户变量”处选“新建”,建立两个变量:
1.CDS_LIC_FILE 5280@219.223.169.100; 7000@166.111..147 2.SNPSLMD_LICENSE_FILE 17000@219.223.169.100; 7000@166.111..147
2.设置主机名解释文件
编辑WINDOWS系统的主机域名解释文件,通常是C:\\windows\\system32\\drivers\\etc\\hosts文件,其中“windows”是WINDOWS的安装目录,有可能是windows,winxp,winnt等。在这个文件里增加两行:
219.223.169.100 mars 166.111..147 ic
二、主要参考资料
Cadence提供的帮助文档(安装目录\\Cadence Design Systems\\LDV\\doc) 1. 安装目录\\Cadence Design Systems\\LDV\\doc\\nclaunch
提供使用NClaunch的基本流程说明
2. 安装目录\\Cadence Design Systems\\LDV\\doc\\ncvlogtut
提供使用NClaunch进行Verilog代码编译仿真的详细说明 3. 安装目录\\Cadence Design Systems\\LDV\\doc\\ncvhdltut
提供使用NClaunch进行VHDL代码编译仿真的详细说明 4. 任何Verilog/VHDL使用说明手册
推荐: 《从算法设计到硬线电路实现》夏宇闻编著 《VHDL硬件描述语言与数字逻辑电路设计》
三、文件准备
1. 建立工作目录
在LINUX系统下打开一个控制台窗口,建立用来进行实验的项目目录(例如test),命令如下:。 cd 进入用户的根目录 mkdir test 建立test目录 cd test 进入test项目目录 pwd 显示当前目录,确认没有错误
2. 准备RTL级源代码 本实验使用的设计是一个4位计数器,在/home/ic/data/目录下已经有参考源代码,可以把它直接拷贝到当前工作目录,命令如下:
pwd 确认当前目录是test项目目录下
cp /home/ic/data/demo-counter.vhd . 把参考源代码拷贝到当前目录(即最后的“.”) cp /home/ic/data/demo-tb.vhd . 把参考源代码拷贝到当前目录(即最后的“.”) ls 再次确认拷贝了文件
四、使用流程简介
Cadence软件相比其他EDA工具提供了非常详细、精致的帮助文档,这将为用户的使用提供的很大的方便,因此建议使用者一定要习惯于从软件自带的帮助文档中寻找相关的心系解决遇到的问题。这里给出的是一个简要的流程,以方便初学者快速掌握基本的使用方法。
工作模式的选择
运行NCSim的命令是nclaunch,运行时建议加后台符号: pwd 确认当前目录是test项目目录下 nclaunch & 以后台方式启动nclaunch
第一次运行NCSim的时候,将出现图1的对话框,需要用户选择工作模式,这里可供选择的主要是Multiple Step和Single Step,请选择Multiple。对于两种工作模式在参考资料[1](Page 17)内有详细说明。
图 1 运行模式选择对话框
Fig 2是Multiple工作模式下的主界面,左边是浏览目录,右边是实际的工作目录,请注意,单独切换左边的目录,右边目录不改变!
图2 Multiple工作模式下的主界面
建立工作环境
作为编译仿真工具,最核心的是源代码部分,鉴于NC的源文件编辑界面效果不佳,这里建议用户使用其他支持VHDL/Verilog语言的工具(推荐gedit,ActivHDL)编写代码,在确保没有语法错误后再导入到NC中进行编译。
选择FileÆ Set Design Directory菜单,出现下图所示对话框
图3 建立工程目录
Design Directory:一般就是项目所在的目录,即启动nclaunch时所在的目录。 Liberary Mapping File:点击“Create cds.lib File”按钮,会弹出一个“Create a cds.lib file”的对话框,里面的文件名是“cds.lib”,选择“Save”,此时会弹出如右图所示对话框,选择“Include Defualt Libraries”,将会在当前项目目录下建立INCA_lib文件夹用来保存整个设计中全部的库信息;
Work Library——在建立了cds.lib之后将出现worklib的默认选项,无需更改。
需要说明的是,当完成上述环境设置之后,在工作平台的右上方将出现“Error:Unable to find an hdl.var file to load in”的警告,暂时无需关注此警告,在进行任意文件编译之后软件将自动生成hdl.var文件,重新载入工作目录后(FileÆ Set Design Directory)警告将消失。 上述内容在参考资料[1](Page 26)内有更详细说明。 图4 “Error:Unable to find an hdl.var file to load in”警告 Complie 1. 用鼠标左键选择Nclaunch左面窗口里的源文件“sram.v”,“sram_tb.v”可以按CTRL键以同时选择多个文件。 2. 第一次编译时选ToolÆVHDL Compiler菜单,在弹出的对话框里选择“Enable VHDL93
Features”,然后选确定。以后可以直接选择工具栏中唯一可选的
(如果使用的是
VHDL语言,选择文件后,将唯有可选) 3. 特别注意,请在编译成功第一个文件后,重新载入工作目录(FileÆ Set Design Directory)
以确保警告消失。
Elabrate
1. 用鼠标左键选择Nclaunch右面窗口里工作目录(worklib)下的顶层实体worklibÆ
sram_tbÆmodule
再次特别提醒:如果右边的worklib前面没有出现“+”,则请首先检查右边工作平台上对应的的工作路径,确定过工作路径已经转换到了和左边一致的目录下
2. 选ToolÆElaborator菜单,在弹出的对话框里选中“Access visibility”的READ属性,
然后“确定”。或者直接点击工作栏中的配置对话框)
(注意:直接选择将不会弹出属性功能仿真 1. 用鼠标左键选择Nclaunch右面窗口里snapshots里的顶层实体的结构体-实体对snapshots Æworklib.sram_tb:module) 2. 选ToolÆSimulator菜单,在弹出的对话框里选“确定”,将弹出仿真器窗口。或者直接点击(仿真界面的弹出可能需要一些时间,请耐心等待) 开启弹出的默认窗口有两个,点击Design Browser – SimVision窗口的工具栏中的波形仿真窗口 3. 在Design Browser – SimVision窗口内展开左边浏览器中的simulator在右边的列表中选择希望观察的信号,选中后,点击鼠标右键选择send to Waveform Windows
Fig 5 Design Browser – SimVision窗口
4. 根据实际波形的需要,在Waveform – SimVision窗口内把时间显示单位焕成us、ns或
ps,然后开始仿真,有两种方法:
z 选择SimulatioinÆRun或者直接点击工具栏中的
开始波形仿真,注意需要按停
止仿真。如果加入了新的信号,需要重新仿真点击复位,然后再次仿真。
z 在Console窗口直接输入命令,仿真一段时间,例如:run 2000 ns
Fig 6 仿真波形显示界面 更多相关说明及仿真阶段的具体参数设置请自行根据所使用的语言参阅参考资料[2]、[3]
门级仿真 文件准备 对综合后输出的网单文件(例如demo-counter-post.v)进行门级仿真,使用在功能仿真中使用的testbench(例如demo-tb.vhd)。 另外,还需要把标准单位的仿真库文件(/home/ic/library/umc18.v)准备好。(可以拷贝到当前项目目录里)
编译标准单位库
1.选择“Edit -> Add -> New Library”菜单,建立用于保存编译后的库文件的库。在“Library Name”处输入“umc18”(可以随便起一个名字)
2.选择“File -> Set Work Library”菜单把刚才建的库(umc18)设为工作库(也可以在umc18库上按鼠标右键)。设置好以后“umc18”会变成菊黄色。
3.选中umc18.v后,选择“Tool -> Verilog Compiler”菜单编译“umc18.v”
编译门级网单和testbench 1. 选择“File -> Set Work Library->worklib”菜单,重新把worklib设为工作库
2. 选择“Edit -> Delete -> Library Contents”菜单,清除功能仿真时编译后的文件。(也
可以在库管理器的worklib上直接按鼠标右键,选择“Delete Contents”)
3. 编译门级网单(demo-counter-post.v)和testbench(demo-tb.vhd) 4. Elaborate时打开选项“Other Options”,输入“-timescale 1ns/1ps”。
如果想进行SDF反标,输入“-timescale 1ns/1ps –sdf_cmd_file sdf.cmd”; 其中“sdf.cmd”是反标命令文件,在下一小节会详细讲述。
5. 下面的仿真过程和功能仿真一致,门级仿真的输出波形在没有进行SDF反标时可以观察到约1ns的门延时。
SDF反标
为了得到精确的门级仿真或后仿真,需要对网单进行SDF标注。
1.什么是SDF文件?
SDF全称是Standard Delay Format,它是一种用于表示电路系统延时信息的文本格式,在电路设计的后仿真中是不可或缺的。SDF是IEEE的标准(标准号IEEE 1497-2001),各种验证工具都可以使用。
2.怎样得到SDF文件?
在Design Compiler综合以后用write_sdf命令导出。例:write_sdf xxx.sdf
3. Verilog Testbench的SDF反标
如果testbench是用verilog写的,则在其中initial之后加入下列语句即可:
$sdf_annotate (“xxx.sdf”, top_module_name); xxx.sdf 表示SDF文件名称,top_module_name表示sdf所要标注的模块名称,如果有多层结构,中间用“.”隔开,如top_module_name. sub_module_name。 4. VHDL Testbench的SDF反标 在NC中做VHDL Testbench的SDF反标需要三步: 1)编译SDF文件。 选择菜单Tools > SDF Compiler …,在弹出的窗口中填好SDF File(例如demo-counter.post.sdf)以及Output file name。 点击OK即可编译得到demo-counter-post.sdf.X文件。 2)写一个SDF命令文件(例如起名为sdf.cmd),在其中标明编译后的SDF文件名以及所要反标的单元名称,一个简单的SDF命令文件如下: COMPILED_SDF_FILE = \"demo-counter-post.sdf.X\SCOPE = :uut_a;
第一项是编译后的SDF文件名,第二项是所要反标的单元名称。“:u0”是该单元在testbench中的名字。一般在testbench中如下的映射语句:
uut_a: counter port map (clk,rst,q);
SDF最后就反标到u0单元上。如果有多层结构,中间用“:”隔开。还要注意SDF命令文件中最后一句句末用分号,其他句末用逗号。把该SDF命令文件保存为sdf.cmd。
3)Elaborate时打开选项“Other Options”,输入:
“-timescale 1ns/1ps –sdf_cmd_file sdf.cmd”;
注意:因为Design Compiler导出的SDF文件不是很地道,有时会出现类似下面的警告: ncelab: *W,SDFNEP: Failed Attempt to annotate to non-existent path (IOPATH (posedge A) Y) of instance :U0.U123 of module XOR2X1 <./data/rctrl_new.sdf, line 133>.
可忽略。
=
5.在Modelsim中进行SDF反标
如果用modelsim仿真,则点击菜单Simulate > Start Simulation …,在弹出窗口中有SDF的标签,在该标签点击Add …,设置好SDF文件名及所要标注的模块名即可。
五、源文件
demo-counter.vhd
library ieee;
use ieee.std_logic_11.all; use ieee.std_logic_unsigned.all;
entity counter is
port( clk,rst : in std_logic; q : buffer std_logic_vector(3 downto 0)); end;
architecture arch of counter is begin process(clk,rst) begin if rst='1' then q Library IEEE; use IEEE.std_logic_11.all; entity c is end; architecture behav of c is component counter port( clk, rst : in std_logic; q : buffer std_logic_vector (3 downto 0)); end component; signal clk,rst: std_logic; signal q: std_logic_vector(3 downto 0); begin uut_a: counter port map (clk,rst,q); process begin clk <='0'; wait for 100 ns; clk <='1'; wait for 100 ns; end process; rst <= '0', '1' after 5 ns, '0' after 25 ns; end; configuration cfg_tb_c of c is for behav end for; end; 六、注意事项 1. 关于timescale NC缺省情况下要求所有的VERILOG文件都有“`timescale…”这一行,否则在elaborate时会报错。为避免elaborate时出现关于timescale的错误,在elaborate时打开选项“enable the Other Options”,输入“-timescale 1ns/1ps”,表示缺省的时间单位1ns,时间精度1ps。 2. 关于关闭timing check 在仿真时可以关闭“timing check”,例如setup/hold time的检查,以提高仿真的速度。在elaborate时打开“-notimingchecks 顶层模块名”选项,或用下述命令行方式运行: % ncelab -notimingchecks top 3. 关于NC仿真多次以后打开窗口变慢,有时要等半分钟以上才能打开窗口的问题。 有些同学使用gedit编辑源代码,NC和gedit文本编辑工具有冲突。所以出现以上问题时把gedit窗口暂时关闭,重新进行仿真即可。
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- huatuo9.cn 版权所有 赣ICP备2023008801号-1
违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务