Actel器件库文件的制作及仿真.docx
- 文档编号:29429627
- 上传时间:2023-07-23
- 格式:DOCX
- 页数:14
- 大小:508.90KB
Actel器件库文件的制作及仿真.docx
《Actel器件库文件的制作及仿真.docx》由会员分享,可在线阅读,更多相关《Actel器件库文件的制作及仿真.docx(14页珍藏版)》请在冰豆网上搜索。
Actel器件库文件的制作及仿真
Actel器件库文件的制作及各种仿真
1.Actel器件库文件的制作
Actel器件库文件是综合后仿真与布局布线后仿真中必不可少的文件。
有了器件库文件,可以单独采用modelsim进行综合后仿真,而不必启动Libero集成环境来进行综合后仿真与布
局布线后仿真。
器件库文件的制作过程如下(以act2的器件制作过程为例来说明):
(1)
.点击:
File/New/Library,产生如下操作界面:
界面中的act2为输入的器件库名称。
点击“OK”进入下一步。
⑵点击Compile/Compile出现以下界面
在“Library”选择框中选“act2”,在查找范围中逐步点击
“C:
/Actel/Libero_v9.0/Designer/lib/vtl/95/act2.vhd”,出现如下界面:
r?
ixi
CospiLeSdiitcc:
Files
S3*cl1.vkd
曰iQ廿n.vhd
-aeL1j*ig
MJ亡祖*ralvbd
同iQw瞽h』
jievhd
ifloBjlasvhd
4ctZjitevU
Sf|軟.vhJ
ri]i>roaEic3.vhi
sj4cO.vhd
1A\evM
占也九vhd
ISl|l>ToasigBlvhd
—UJ.
Library;pdS
纱洁圉四:
|亡?
勺52j4莒呼國*
空件名⑩HCM.Tid
HJ_FlI&ei*r;*.vl.vkd;*.vadl;*!
.v_*
l甲ComDiiaelectedoaethenDefaultDpfcnt...Edt^ouice
(3).点击"Compile”进行器件库文件的编译,编译结束后点击"Done”,完成编译。
这时就
会在“Library”框中出现所编译成功的器件库名称如下图左边黑框中所示:
至此,就完成了Actel器件库文件act2的编译。
就可以在以后仅仅启动modelsim就可以完
成act2器件模块的综合后仿真。
也就是说,生成库文件之前的描述器件的VHDL语言文件
在“C:
/Actel/Libero_v9.0/Designer/lib/vtl/95”文件夹下面,而生产成编译产生的器件的库文
件被放在了“C:
/Actel/Libero_v9.0/Model/”文件夹下面。
(a)如果在生成库文件的过程中,遇到提示需到先生成work库文件的情况,则先生成work
库文件,再生成器件的库文件。
(b)在生成库文件之后,可能会改变modelsim中原来的综合选项“Compile/Compile
properties/ProjectCompilerSettings/Coverage”下面“Othercoverage”下的“lgnoreFocusedExpression/ConditionCovereage(-nocovefec)”为选中状态,使得综合过程出错。
此时,取消这个选项的选定即可解决这一问题。
(c)当生成新的项目,而在新项目中的"Library”目录下所生成的器件库中的器件族无法利
用时(unavailable)时,需要重新对这个器件进行映射。
右击所需映射的器件并选“Edit”
选项,如下图所示
在“Librarypathname”框中输入“C:
/Actel/Libero_v9.0/Model/act2”,并点击确定,就可将
Act2器件库重新对应起来。
如下图所示:
H•ittt
Actel仿真中测试母模块的自动生成,在Actel的Libero环境中可以自动生成测试母模块及其它配套模块,这些模块都可以通过工作目录下进行搜索”*.v文件来获得。
获得这些”*.v文件后就可以脱离Libero环境自己手工采用modelsim来建立仿真目录并进行手工仿真。
仿真过程中ActelLibrary文件的获取:
如果脱离Libero环境下的modelsim仿真过程中,在modelsim界面下“simulate/startsimulation”下点击”work/testbench后提示缺失库文件,那么可以先在libero集成环境中调
用modelsim仿真后生成所需要的相应的库文件并拷贝到自己的工作目录下。
然后通过“startsimulation"选项卡中的“libraries”下的“add”按钮来添加工作库文件来解决这一问题。
有一点需要注意,如果仿真库和modelsim工程下的“*.v”文件中的模块具有同样的功能,那么modelsim将会以仿真库的接口及功能优先。
也就是说,此时,对于“*.v”将不会影响仿真结果。
因此,在modelsim仿真过程中添
加仿真库时,不要添加和工程下的“*.v”文件中的模块具有同样名字的仿
真库。
2.Actel器件综合后仿真步骤
按照如上所述步骤完成Actel器件库文件的制作过程后,就可以单独启动modelsim文件进行
综合后仿真和布局布线后仿真,例如文件夹aftersim下面的综合后的仿真结果如下图所示。
从图中可以看出,仿真结果中的输出变量的有效值与输入变量的有效值之间存在明显的延时。
*
由上图可见,输出变量的有效值和输入变量的有效值之间不存在延时。
3.项目文件夹下面各个子目录中所包含的文件类型如下所示:
(1)synthesis生成如下文件:
run_options.txt:
综合过程的脚本文件;
tcomp.pdc:
综合过程中的物理约束文件;
tcomp_sdc.sdc:
综合过程中的时序约束文件;
tcomp.edn:
综合过程生成的网标文件;
tcomp.sdf:
综合后的延时反标文件;
(2)smartgen\tcomp1目录下生成如下文件:
tcompl模块综合后的vhd文件;
(3)component\work\tcomp下面产生自动生成文件:
tcomp.vhd禾口testbench.vhd文件
⑷mysim'designer\impl1下面生成如下文件:
tcomp.tcl脚本约束文件;tcomp_ba.sdf布局布线后延时反标文件;tcomp_ba.vhd布局布线后的网表文件;
⑸项目名为tcomp,模块名为tcompl如下图所示:
IL:
i!
-II
'j■■>■IrJH"!
»■reiII■■¥■%!
■■:
I■■
Si1'ifjr_--
-RuecfirfuL
Starliot:
hisiipinrm-tfaBjnthe^isXledn
4.不同种类的仿真
(1)最基本的仿真(自己编写testbench文件,采用catalog下的basicblocks):
采用smartgen\tcomp1\tcomp1.vhd作为被测试模块;仿真在tsimO文件夹下进行;
1!
□
IIfl円皆
>
恤
:
■
i
a
1nbend\>jJq*zJtac
AZI
h
h—:
t
\
阿j』:
:
.i
i
i
■
Testbench文件如下:
libraryIEEE;
useIEEE.std_logic_1164.all;
USEIEEE.STD_LOGIC_TEXTIO.ALL;
USESTD.TEXTIO.ALL;
entitytestbenchis
endentitytestbench;
architecturetest_regoftestbenchis
componenttcomp1is
port(DataA:
instd_logic_vector(7downto0);DataB:
instd_logic_vector(7downto0);AGEB:
outstd_logic);endcomponent;
signala,b:
STD_LOGIC_VECTOR(7DOWNTO0);
signalAGEB:
STD_LOGIC;
begin
UUT:
tcomp1portmap(DataA=>a,DataB=>b,AGEB=>AGEB);
file_io:
PROCESSIS
FILEin_file:
TEXTOPENREAD_MODEIS"E:
\mydatain.txt";
FILEout_file:
TEXTOPENWRITE_MODEIS"E:
\\mydataout1.txt";
VARIABLEout_line:
LINE;
VARIABLEin_line:
LINE;
VARIABLEa1,b1:
STD_LOGIC_VECTOR(7DOWNTO0);--VARIABLEresult:
STD_LOGIC;
BEGIN
WHILENOTENDFILE(in_file)LOOP--dothistilloutofdataREADLINE(in_file,in_line);--getlineofinputstimulusREAD(in_line,a1);--getfirstoperand
READ(in_line,b1);--getsecondoperand
a<=a1;
b<=b1;
--waitfor100ns;
waitfor1ns;
--outputtheresultstothefile
write(out_line,string'(”result"));
WRITE(out_line,AGEB);--saveresultstoline
WRITELINE(out_file,out_line);--writelinetofile
--outputtheresultstothescreen
write(out_line,string'(”result="));
WRITE(out_line,AGEB);--saveresultstoline
WRITELINE(output,out_line);--writelinetothescreenENDLOOP;
ASSERTFALSEREPORT"Simulationdone"SEVERITYNOTE;WAIT;--allowsthesimulationtohalt!
ENDPROCESS;
endarchitecturetest_reg;
⑵基本的仿真(自己编写testbench文件,采用catalog下的basicblocks):
采用component\work\tcomp\tcomp.vhd作为被测试模块;仿真在tsim1文件夹下进行;
1I1
■
rn
l--■
:
XL
5?
-
1n
knTvA
□
1
tcomp模块中包含tcomp1子模块、电源子模块等,因此,需要将smartgen\tcomp1\tcomp1.vhd
文件加入到这个项目中,仿真结果如图所示。
⑶布局布线后仿真(自己编写testbench文件,采用catalog下的basicblocks):
所需文件在mysim\designer\impl1目录下:
tcomp_ba.sdf布局布线后延时反标文件;
tcomp_ba.vhd布局布线后的网表文件;
仿真在tsim2文件夹下进行,未反标时序文件sdf之前的运行结果如下:
反标时序文件sdf之后的仿真结果如下:
Wi^e*
在Libero集成环境中输入testbench的步骤如下:
(a)ProjectManager/SmartDesign/HDLStimulusFile/Name中输入testbench;
(b)在出现的ProjectManager的主窗口中输入自己编写的testbench的主体文件;
(c)点击ProjectManager/Project/Fileorganization/Stimulus,出现如下所示的对话框:
出现了项目文件中存在的所有testbench模块。
如果Origin—栏中出现tcomp,那么这个测试模块为项目tcomp自动生成的testbench;如果Origin—栏中出现了User,那么这个测试模块为用户自己手工编制的testbench;将需要采用的testbench通过"Add”按钮移动到右边的“Associatedfiles”栏中,那么这个testbench就成为被激活的有效测试模块;
注:
采用如下的modelsim设置可消除仿真中的关于毛刺的一些警告:
vsim-Lproasic3-L
postlayout-noglitch-sdfmax
/UUT=E:
/Summary_Work/summary_100531/ipsim/mysim/designer/impl1/tcomp_ba.sdf-t
1pspostlayout.testbench;
在仿真时的如下对话框内选择"Disableglitchgeneration”,从而防止glitch的产生。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Actel 器件 文件 制作 仿真