混合信号仿真入门,VerilogA
- 格式:ppt
- 大小:639.50 KB
- 文档页数:28
verilog和VHDL混合编译仿真在实际项⽬中,由于项⽬经历了较多的版本更迭或者设计⼈员的技术⽔平限制,有些时候难免有使⽤到verilog的代码和VHDL代码共同存在⼀个项⽬中的情况,那这个时候我们要怎样进⾏混合编译仿真验证呢?这⾥以使⽤vcs⼯具编译verdi查看波形为例:如果我们设计代码是vhdl版本的,但是还想使⽤更⾼级的代码verilog或者systemverilog作为它的顶层tb,并且还想使⽤uvm的组件来搭建更⽅便的验证环境,那么整个环境的编译和执⾏过程如下:1.需要准备的软件vcs-mx和verdi,其中vcs-mx版本会有vlogan和vhdlan两个编译程序2.开始编译编译vhdl的代码,dut_src.f是vhdl的⽂件列表:vhdlan -nc dut_src.f -l cmp_vhdl.log编译uvm库的sv代码:vlogan -full64 -timescale=1ns/1ps +v2k -sverilog -ntb_opts uvm -l cmp_uvm.log编译我们⾃⼰设计的sv代码和⾃⼰设计的uvm各个组件部分的代码,tb.f是⽂件列表:vlogan -full64 -timescale=1ns/1ps +v2k -sverilog tb.f -ntb_opts uvm -l cmp_verilog.log编译vhdl和verilog各⾃的库⽣成可执⾏⽂件simv:vcs -timescale=1ns/1ps -ntb_opts uvm -top tb_top -debug_access+pp -fsdb -j56 -cm line+fsm+tgl+cond -lint=TFIPC-L +nbaopt +rad +notimingchecks +nospecify +error+30run起来,⽣成波形,其中TC_NAME是传⼊的tc参数:./simv -cm line+fsm+tgl+cond +fsdb+force +fsdbfile+../wave/tb_top.fsdb +UVM_TESTNAME=$(TC_NAME)3.查看波形编译出verdi可以查看的库,使⽤vhdlcom是编译vhdl⽂件的库,vericom是编译verilog⽂件的库vhdlcom -lib my_work dut_src.fvericom -lib my_work -sv tb_top.sv使⽤verdi打开波形⽂件:verdi -lib my_work -top tb_top -ssf tb_top.fsdb。
用SpectreVerilog进行模数混仿,以Sigma-Delta ADC为例SpectreVerilog模数混仿, 模拟部分用Spectre, 数字部分用Verilog-XL. 所以还需要安装Cadence LDV软件, 其内含Verilog-XL仿真器.这里以自行设计的二阶全差分Sigma-Delta ADC为例, 详细介绍用SpectreVerilog的仿真过程. 所用工艺库为TSMC 0.18u,电源电压:1.8V.1. 准备Sigma-Delta ADC分模拟和数字部分两块, 其中模拟部分为调制器, 数字部分为数字滤波器. 如下图. 其中out为调制器的输出, 这里是1位0,1数据流. 数字滤波器为Verilog RTL级代码.Schematic:Symbol:Verilog Code:module DigitalFilter (in2out, out, clk, clr, in);output in2out;output [`wordsize-1:0] out;input clk;input clr;input in;reg in2out;wire clk_half1, clk_half2;……Endmodule同时为了直观的观看输出结果,因此把输出的数字字转化为模拟量,这里用Verilog-A做一个理想的DA转换器。
因此最好事先用Spectre仿真模拟部分, 用ModelSim或Verilog-XL等仿真数字部分. 这里假定我们已有:1) 模拟部分的原理图(包括Symbol);2) 数字部分的Verilog代码,DigitalFilter.v, 模块名:DigitalFilter(in2out,out,clk,clr,in);3) 数字部分的TestBench代码, DigitalFilter_TB.v, 模块名: DigitalFilter_TB.下图为最终的系统图:2. 创建数字模块的Symbol1) 新建一个Cell, View Name为symbol, Tool: Composer-Symbol.2) 画Symbol. 简单地, 画一个矩形框, 添加几个Lable, 然后添加Pin.3) 添加Pin. 左边输入, 右边输出. 对于多位的pin可以用如out<7:0>的样式作为pin的名字. 注意: 与模拟部分相连的多位Pin最好不要用一个pin, 而要用多个. 如下图.4) 创建对应的Verilog文件. 在symbol编辑器中, Design菜单->CreatCellView->From CellView.会弹出的对话框, Tool/Data Type一栏选择Verilog-Editor, 则To View Name会变为functional.点击OK, 会弹出错误对话框, 点No. 自动弹出VI编辑器, 可以看到已经生成Verilog代码的空壳.代码文件的路径在VI编辑器的标题栏上. 下面要做的就是把我们的数字模块(不是TestBench)的代码填进去. 如果不想用VI编辑器, 也可以用其他文本编辑器. 复制代码时最好不要动自动生成的代码. 经测试, 所有代码最好放在一个文件中.这一步之后,数字部分就会有functional和symbol两个View。
veriloga基础语法VerilogA是一种硅谷团队开发的建模语言,它被广泛应用于集成电路(IC)的设计和仿真中。
本文旨在介绍VerilogA的基础语法。
1. 模块声明在VerilogA中,每个模块都需要进行声明。
声明的语法如下:module 模块名(输入端口1,输入端口2,...输入端口n,输出端口1,输出端口2,...输出端口m);<模块定义代码>endmodule其中,模块名可以由字母、数字和下划线组成,不能以数字开头;输入端口和输出端口可以是标量或向量。
2. 参数声明VerilogA允许在模块中声明参数,以便在实例化时进行配置。
语法如下:parameter 参数名 = 值;参数可以通过assign语句进行连接,也可以在实例化时进行配置。
3. 变量声明在VerilogA中,可以使用不同的变量类型进行声明,如实数、整数、布尔值等。
real: 实数类型,用于存储实数值。
integer: 整数类型,用于存储整数值。
boolean: 布尔类型,用于存储真/假值。
语法如下:real 变量名;integer 变量名;boolean 变量名;4. 函数和任务在VerilogA中,可以使用函数和任务来实现特定的功能。
函数是一段可重用的代码,它接收输入参数并返回一个值。
函数的语法如下:function 返回类型函数名(输入参数);<函数定义代码>return 返回值;endfunction任务是一段可重用的代码,不返回值,但可以通过参数进行输入和输出。
任务的语法如下:task 任务名(输入参数);<任务定义代码>endtask5. 运算符VerilogA支持各种常见的数学和逻辑运算符,如加减乘除、取余、与或非等。
加法运算符:+减法运算符:-乘法运算符:*除法运算符:/取余运算符:%与运算符:&&或运算符:||非运算符:!6. 控制结构在VerilogA中,可以使用if-else、for、while等控制结构来实现条件判断和循环。
Verilog-A语法 electrical引言Verilog-A是一种硬件描述语言(HDL),用于模拟和验证电子电路的行为。
它是Verilog的扩展,专门用于模拟模拟电路。
本文将详细介绍Verilog-A的语法和用法,以及其在电气工程中的应用。
Verilog-A简介Verilog-A是一种基于事件驱动的建模语言,用于描述模拟电路的行为和性能。
它是一种高级语言,可以用于描述模拟电路中的信号、电流、电压和功率等。
Verilog-A与Verilog的主要区别在于,Verilog-A更适用于模拟电路设计,而Verilog更适用于数字电路设计。
Verilog-A的语法结构Verilog-A的语法结构包括模块声明、参数声明、端口声明、变量声明、行为描述和函数声明等。
下面将详细介绍这些语法结构。
模块声明Verilog-A中的模块声明用于定义一个模块,模块是Verilog-A代码的基本单元。
模块声明的语法如下:module module_name (input input_name, output output_name);// 模块内部代码endmodule模块声明包括模块名称和端口声明。
参数声明Verilog-A中的参数声明用于定义模块的参数,参数可以在模块实例化时传递。
参数声明的语法如下:parameter parameter_name = value;参数可以是整数、实数或字符串等类型。
端口声明Verilog-A中的端口声明用于定义模块的输入和输出端口。
端口声明的语法如下:input input_name;output output_name;端口可以是输入或输出类型。
变量声明Verilog-A中的变量声明用于定义模块内部的变量。
变量声明的语法如下:integer variable_name;real variable_name;变量可以是整数或实数类型。
行为描述Verilog-A中的行为描述用于描述模块内部的行为和逻辑。
veriloga语法 electrical(原创实用版)目录1.Verilog 语法基础2.Verilog 中的逻辑门和电路3.Verilog 中的时序电路和状态机4.Verilog 在数字电路设计和验证中的应用5.电路设计与验证的挑战和未来发展正文Verilog 是一种硬件描述语言,广泛应用于数字电路设计和验证领域。
作为一种文本形式的语言,Verilog 能够描述数字电路的结构和行为,并且能够通过仿真和验证来确保电路的正确性。
接下来,我们将详细介绍Verilog 的语法基础,以及它在数字电路设计和验证中的应用。
首先,让我们来了解一下 Verilog 的基本语法。
Verilog 中的基本结构包括模块、声明、端口和逻辑门。
模块是一个独立的电路模块,它可以包含输入端口、输出端口和逻辑门。
声明是用来定义模块和端口的属性,例如名称、类型和方向等。
逻辑门是 Verilog 中最基本的构建块,它可以实现与门、或门、非门等基本逻辑功能。
接下来,我们来看看 Verilog 中的时序电路和状态机。
时序电路是一种数字电路,它的输出取决于输入信号和当前状态。
在 Verilog 中,我们可以使用状态机来描述时序电路的行为。
状态机由状态、事件和动作组成,它可以用来描述数字电路的时序行为。
Verilog 在数字电路设计和验证中的应用非常广泛。
它可以用来设计和验证各种数字电路,例如组合逻辑电路、时序电路和通信协议等。
通过使用 Verilog,电路设计师可以快速地构建和验证电路,从而提高设计效率和减少错误。
最后,我们来谈谈电路设计与验证的挑战和未来发展。
随着集成电路的规模不断扩大,电路设计与验证的难度也在不断增加。
为了应对这些挑战,未来的电路设计与验证工具可能会更加智能化和自动化,以便更好地支持电路设计师的工作。
总之,Verilog 是一种重要的硬件描述语言,它在数字电路设计和验证领域发挥着重要作用。
混合仿真是指数字与模拟部分混合仿真,模拟部分采用Cadence电路图,数字部分可以采用版图提取网表(如文档前部分所述),也可以直接采用verilog代码生成数字部分symbol。
下面说明采用verilog代码生成数字symbol的过程。
1、首先在工程库中新建一个cell,名字取为DIGIT,tool选用verilog-editor,view取名为functional,确定后会打开默认的文本编辑器(vi),需要在其中编写verilog代码,文件名默认为verilog.v。
vi被自动打开时,module已经自动被起为DIGIT,但输出端口未定义,要自己加进去),退出vi 时,CIW会提示为这个cell建一个symbol,按提示建好后保存。
2、在工程库中新建一个cell,取名为SIM_MM,tool选用composer-schematic,view取名为schematic。
在SIM_MM中,就可以像调用模拟单元一样,把数字部分DIGIT作为一个symbol 引入,将模拟部分连接完毕后保存。
3、在工程库中新建一个cell,取名为SIM_MM,tool选用hierarchy-editor。
在library list栏填入SIM_MM schematic中所有单元涉及到的库,包括激励,然后view list与stop list填写如下图。
更新以后,要使得cell bingdings中view found栏没有symbol(如果出现symbol,则可以右键选择schematic,即将symbol展开,与相应schematic对应,这时cell bindings又会出现该symbol中的所有下层单元)。
全部完成后,view found栏应该包括了SIM_MM schematic中所有用到的单元,从各个层次的schematic直到最底层的管子、电阻、电容等等。
保存该config文件。
(view to use可以不用选,默认。
veriloga赋值语法Verilog-A赋值语法Verilog-A是一种常用于模拟电路设计的硬件描述语言,它不仅可以描述电路的结构和行为,还可以进行信号赋值。
本文将介绍Verilog-A中的赋值语法,包括基本赋值、连续赋值和延时赋值。
一、基本赋值在Verilog-A中,基本赋值是最常用的赋值方式,它使用“=”符号将右侧的表达式的值赋给左侧的变量。
例如,我们有一个电路模型,其中包含一个输入电压信号Vin和一个输出电流信号Iout,我们可以使用基本赋值语法将输入电压信号赋给输出电流信号:Iout = Vin;这样,当输入电压信号发生变化时,输出电流信号也会相应地更新。
二、连续赋值连续赋值是一种特殊的赋值方式,它可以将一个或多个信号的值赋给另一个信号。
在Verilog-A中,连续赋值使用“:=”符号。
例如,我们有一个电路模型,其中包含两个输入电压信号Vin1和Vin2,我们可以使用连续赋值语法将这两个信号的和赋给一个输出电流信号Iout:Iout := Vin1 + Vin2;这样,当Vin1或Vin2信号发生变化时,Iout信号会根据新的Vin1和Vin2的值重新计算。
三、延时赋值延时赋值是一种在特定时间后才进行赋值的方式。
在Verilog-A中,延时赋值使用“<=”符号,并指定一个延时时间。
例如,我们有一个电路模型,其中包含一个输入电压信号Vin和一个输出电流信号Iout,我们可以使用延时赋值语法将输入电压信号的值延时1纳秒后赋给输出电流信号:Iout <= #1ns Vin;这样,当输入电压信号发生变化时,输出电流信号会在1纳秒后更新。
四、总结本文介绍了Verilog-A中的赋值语法,包括基本赋值、连续赋值和延时赋值。
基本赋值使用“=”符号,连续赋值使用“:=”符号,延时赋值使用“<=”符号并指定一个延时时间。
这些赋值语法可以帮助我们在Verilog-A中对信号进行赋值操作,实现电路的行为描述和仿真。
用SpectreVerilog进行模数混仿,以Sigma-Delta ADC为例loghereloghere@SpectreVerilog模数混仿, 模拟部分用Spectre, 数字部分用Verilog-XL. 所以还需要安装Cadence LDV软件, 其内含Verilog-XL仿真器.这里以自行设计的二阶全差分Sigma-Delta ADC为例, 详细介绍用SpectreVerilog的仿真过程. 所用工艺库为TSMC 0.18u,电源电压:1.8V.1. 准备Sigma-Delta ADC分模拟和数字部分两块, 其中模拟部分为调制器, 数字部分为数字滤波器. 如下图. 其中out为调制器的输出, 这里是1位0,1数据流. 数字滤波器为Verilog RTL级代码.Schematic:Symbol:Verilog Code:module DigitalFilter (in2out, out, clk, clr, in);output in2out;output [`wordsize-1:0] out;input clk;input clr;input in;reg in2out;wire clk_half1, clk_half2;……Endmodule同时为了直观的观看输出结果,因此把输出的数字字转化为模拟量,这里用Verilog-A做一个理想的DA转换器。
因此最好事先用Spectre仿真模拟部分, 用ModelSim或Verilog-XL等仿真数字部分. 这里假定我们已有:1) 模拟部分的原理图(包括Symbol);2) 数字部分的Verilog代码,DigitalFilter.v, 模块名:DigitalFilter(in2out,out,clk,clr,in);3) 数字部分的TestBench代码, DigitalFilter_TB.v, 模块名: DigitalFilter_TB.下图为最终的系统图:2. 创建数字模块的Symbol1) 新建一个Cell, View Name为symbol, Tool: Composer-Symbol.2) 画Symbol. 简单地, 画一个矩形框, 添加几个Lable, 然后添加Pin.3) 添加Pin. 左边输入, 右边输出. 对于多位的pin可以用如out<7:0>的样式作为pin的名字. 注意: 与模拟部分相连的多位Pin最好不要用一个pin, 而要用多个. 如下图.4) 创建对应的Verilog文件. 在symbol编辑器中, Design菜单->CreatCellView->From CellView.会弹出的对话框, Tool/Data Type一栏选择Verilog-Editor, 则To View Name会变为functional.点击OK, 会弹出错误对话框, 点No. 自动弹出VI编辑器, 可以看到已经生成Verilog代码的空壳.代码文件的路径在VI编辑器的标题栏上. 下面要做的就是把我们的数字模块(不是TestBench)的代码填进去. 如果不想用VI编辑器, 也可以用其他文本编辑器. 复制代码时最好不要动自动生成的代码. 经测试, 所有代码最好放在一个文件中.这一步之后,数字部分就会有functional和symbol两个View。
Cadence 的数模混合仿真工具spectraverilog能够实现数字模拟电路联仿的功能,对于模拟电路的输入信号可以利用数字接口很方便的进行设置。
主要用来进行功能仿真。
步骤:
1.准备schematic,如电路单元mix
2.从库管理器中建立mix单元的config view.
在use template中选择spectraverilog,然后ok
将top cell中的myview改为实际的schemtic,然后ok
正确的结果如下图
保存,点击open打开config后的schematic,在tools中选择mix signal opts.
在mix-signal菜单中,尝试第二项的每一个小项,可以看到模拟和数字的相关划分。
由于数字部分默认的电压为5V,转换电平为1.5V和3.5V,因此,如果电路的电源电压不同的与5V,需要对于数模混合接口部分进行设置,在mix-signal菜单中的第三项中进行设置。
对于模拟部分来讲,其按照模型进行计算,无需在数模接口部分进行端口设置,对于数字接口来讲,需要将默认的5V电平以及1.5V,3.5V转换电平变为与模拟部分相符的电压
值,比如电源3V,转换电平为1.5V和3.5V。
设置如下,
对于与模拟器件相连接的数字输出端,将高电平由5V改为3V
对于与模拟器件相连接的数字输入端,将转换电平由1.5V改为3.5V改为1V和2V
所有数模混合接口的相关的数字端口都需要改动,如下图所示的数模接口部分
3.调出analog仿真工具,并设置为spectreverilog
4.编写端口的输入激励文件
设置传输分析的时间长度
5.其余步骤同模拟信号仿真一样,run。
verilog-a vsin用法-回复Verilog-A 是一种建模语言,用于在集成电路设计中描述模拟行为,而Verilog-HDL 则经常用于数字电路的建模和仿真。
两种语言都是Verilog 语言的变体,用于不同的应用场景。
本文将重点讨论Verilog-A 中的一个关键元素,即vsin 函数的用法。
vsin 函数用于生成一个以正弦波形式变化的电压或电流信号。
它的原型如下:`vsin([amplitude], [frequency], [phase], [tdelay], [theta], [vcycle])`参数说明如下:- `amplitude`:正弦波的振幅,可以是一个常数或一个变量。
- `frequency`:正弦波的频率,单位为Hz。
- `phase`:正弦波的初始相位,单位为弧度。
可以是一个常数或一个变量。
- `tdelay`:正弦波的延迟时间,单位为秒。
可以是一个常数或一个变量。
- `theta`:正弦波的相位偏移,单位为弧度。
可以是一个常数或一个变量。
- `vcycle`:正弦波的周期,单位为秒。
可以是一个常数或一个变量。
现在我们来逐步解释每个参数的含义和用法。
# 1. 振幅(Amplitude)振幅参数表示正弦波的最大值或最小值。
可以将其设置为一个常数或一个变量。
如果振幅为负数,则正弦波将在零线以下变化。
例如,如果我们想要生成一个振幅为1 的正弦波,我们可以按以下方式定义vsin 函数:`vsin(1, ...)`# 2. 频率(Frequency)频率参数表示正弦波每秒变化的周期数。
它的单位是Hz。
可以将其设置为一个常数或一个变量。
例如,如果我们想要生成一个频率为1 kHz 的正弦波,我们可以按以下方式定义vsin 函数:`vsin(..., 1000, ...)`# 3. 相位(Phase)相位参数表示正弦波的初始相位。
它的单位是弧度。
可以将其设置为一个常数或一个变量。
例如,如果我们想要将正弦波的初始相位设置为45 度(约为0.785 弧度),我们可以按以下方式定义vsin 函数:`vsin(..., ..., 0.785, ...)`# 4. 延迟时间(Time Delay)延迟时间参数表示正弦波开始变化之前的等待时间。
河北科技大学信息科学与工程学院卫星应用技术研究室VHDL与Verilog混合仿真技术报告修改历史:版本:V1.0作者:梁亮日期:2014-7-1最后修改:2014-7-1VHDL与Verilog混合仿真技术报告目录1概述 (3)2详细分析 (3)2.1 编译资源库 (3)2.2 仿真方法 (4)共4页,第2页1概述在使用Modelsim进行仿真时,可能会遇到对VHDL和Verilog两种语言的混合仿真。
通过实际中的一些试验和验证,大致分析了对于混仿所需要的流程。
这里主要介绍要实现混合仿真所需要的步骤,同时分析了能够使用混合仿真的各种情况。
2详细分析混合仿真指对于使用VHDL和Verilog这两种语言编写的程序在Modelsim中进行混合仿真,仿真的程序中既有VHDL程序又有Verilog程序。
通过一些试验发现,如果仿真的程序不会调用库文件时,使用Modelsim对两种语言的程序进行混仿没有出现问题。
当所编写的程序涉及到库的调用,例如使用软件生成的IP核文件时,需要在仿真中添加对应语言的仿真库。
即调用的IP核文件是何种语言类型就需要添加对应语言的仿真库。
但是,在仿真前对库文件进行编译的时候需要注意,不能把两种语言的库文件编译到一个Modelsim库中。
对于同一种仿真库的两种语言版本需要编译到两个Modelsim库中。
2.1编译资源库Quartus II中提供的仿真库文件存放的路径是D:\altera\12.0\quartus\eda\sim_lib,每个库文件提供了两种形式:.v(Verilog)格式和.vhd(VHDL)格式两种,根据你所用的语言选择使用。
在编译两种格式的库文件时,不能把两种库编译到一个library中,可以通过建立两种库来区分。
由于此前已经编译了Verilog格式的altera_mf库,所以把VHDL格式的文件编译到altera_mfvhd库中。
一般情况下,在使用ALTERA系列芯片时需要对三类库文件220model、altera_mf和altera_primitives进行编译,这些库文件都有各自对应的.v(Verilog)格式和.vhd(VHDL)格式两种。
veriloga运算符VerilogA运算符VerilogA是一种硬件描述语言,主要用于模拟电路设计。
在VerilogA中,运算符是一种用于执行各种运算操作的特殊符号。
本文将介绍VerilogA中常用的运算符,并解释其用法和功能。
1. 赋值运算符(=)赋值运算符用于将一个值赋给一个变量。
例如,将一个输入信号的值赋给一个输出信号,可以使用赋值运算符进行操作。
2. 算术运算符算术运算符用于执行基本的算术操作,包括加法(+)、减法(-)、乘法(*)、除法(/)和取余(%)。
这些运算符可以用于数值型变量和信号的运算。
3. 逻辑运算符逻辑运算符用于执行逻辑操作,包括逻辑与(&&)、逻辑或(||)、逻辑非(!)和逻辑异或(^)。
这些运算符通常用于布尔型变量和逻辑信号的运算。
4. 位运算符位运算符用于对二进制位进行运算,包括按位与(&)、按位或(|)、按位非(~)、按位异或(^)和位移(<<、>>)。
这些运算符通常用于数字信号的处理和操作。
5. 关系运算符关系运算符用于比较两个变量或信号的关系,包括相等(==)、不等(!=)、大于(>)、小于(<)、大于等于(>=)和小于等于(<=)。
这些运算符通常用于判断条件和执行条件语句。
6. 条件运算符(?:)条件运算符用于根据条件选择不同的值。
它的语法是“条件 ? 值1 : 值2”,如果条件成立,则返回值1,否则返回值2。
7. 连接运算符(,)连接运算符用于将多个变量或信号连接成一个向量。
它的语法是“{变量1, 变量2, ...}”,其中变量1、变量2等可以是不同的变量或信号。
8. 位选择运算符([])位选择运算符用于从一个向量中选择指定的位。
它的语法是“向量[起始位:结束位]”,起始位和结束位可以是指定的数字,也可以是变量或信号。
9. 逗号运算符(,)逗号运算符用于在一个表达式中执行多个操作。
它的语法是“操作1, 操作2, ...”,多个操作按顺序执行,并返回最后一个操作的结果。
Spectre与verilog 混合仿真初级指导卢志坚2010-4-24Spectre与verilog混合仿真,顾名思义,就是电路既含有模拟电路,又有有verilog语言编写而成的数字处理模块;主要针对时序分析,以及自动校准功能。
1.把verolog模块导入到spectre中。
如果需要导入多个模块,而且模块之间存在嵌套调用的话,需要把所有嵌套调用的模块都写在同一个.v文件中。
(不是一定要这样做,只不过这样做是不会有问题的,其他更便捷的做法则需要各位仁人志士去发掘了)(a)如上图:在icfb最初窗口上选File,接着Import,接着Verilog;(b)接着在弹出的窗口“Verilog In”中,如上图,只关心红框标注的4个地方,在第2个红框处,可以浏览到需要把文件导入的目标库“test_lu”;在第一个大框中,可以浏览到逆需要导入的try.v,选中后,点击第3各红框“Verilog Files To Import”右边的“Add”;在第4个红框中“Import Structural Modules As”选“functional”;其他可以不用管吧,不过尽量与截图一致的话会比较顺利的。
最后点击“OK”,然后等一会,会提示导入完成,提示逆查看以下信息,如果导入不成功,很可能是你的.v文件没有写好,需要修正以下,然后再做导入工作。
(c)如上图,导入成功以后,在“Library Manager”中的库“test_lu”中,“Cell”一栏下就会出现所导入的所有模块,每个模块都有“functional”与“symbol”两个View。
2.把数字模块添加到schematic中(a)如上图,Cell“test_dft”只有schematic View,打开之,如下图(b)按照一般的添加instance的步骤,把数字模块“digital_3”加进来,如下图(c)保存好,然后关掉schematic View“config”,然后回车,就会弹出下图(e)“Library Name”与“Cell Name”明显是不用改的,而“Tool”需要选到“Hierarchy-Editor”,之后“View Name”自动变为“config”,然后“OK”,则继续弹出下图的两个窗口“New Configuration”和“hierarchy-editor”(f)如上图,在“New Configuration”窗口中,在View处浏览,弹出下图浏览窗口(g)选中test_dft中的schematic,之后“OK”,然后又回到“New Configuration”窗口,点击“Use Template…”, 如下图(h)之后会弹出“Use Template”窗口,如下图,在“Name”中选中“spectreV erilog”,之后“OK”;(i)然后“New Configuration”窗口中的有关信息被填好,如下图,然后“OK”(j)然后刚才空着的“hierarchy-editor”窗口,会被填满信息,该信息都是关于schematic View中的信息,如下图(k)然后可以保存,则完成该config View的设置,然后关闭该窗口。