M1、VIEW综合:总线命名和位置和布线总线重构

描述

关键词:EDIF,EDIFNETO,VIEW综合,总线引脚,NGD2VHDL

紧迫性:标准

当EDFF网表由VIEWLogic的EdfNeto编写时,所有总线信号
引脚扩展。个人信号和PIN名称由
扩展不包含任何特殊字符来分隔总线索引。
例如,一个名为B[3:0]的总线被翻译成4个信号:B3、B2、B1、B0。

NGD2VHDL只能在使用分隔字符的情况下重构矢量。
信号名称。没有定界符,结果是不可预测的。为了
例如,一个名为CaCe2[3:0]的总线将被夷平为CHACE23到CACEE20,
并可能重建为高速缓存[23∶20]。因此,这是不可取的。
在没有索引分隔符的情况下更改NGD2VHDL以重构向量。

一个更好的解决方案是VIEWLogic的EdfNeto编写总线分隔符。
或使用端口阵列结构。事实上,VIEW正在计划支持这一点。
WorkVIEW Office的未来版本中的功能。

解决方案

利用不同的测试向量进行事后和路径时序仿真
和不同的测试标准比功能仿真,因此用户是
已经负担了书写和维护多个测试台。它是
不幸的是,用户还需要用总线写测试台。
非总线实体。下面的例子将有助于
过程。

步骤1:在SaveWAVE的初始设置中定义库搜索顺序
VSLB.IN文件。而不是使用建议的用户文件.LIB文件
项目区域,定义两个库的前和后位置和路由VHDL。
例如,Funtual.Lab&Time.LIB,或Bay.Lab&Po.Lee。LIB。然后
在分析原始总线VHDL时,确保第一个用户库
是工作库,当分析第二个非总线VHDL时
用户库是工作库。当测试台实例化
顶级组件必须区分两个组件
相同的名称,但不同的端口结构。如果这些顶级组件是
分析到同一个库中,最近分析的将覆盖
实体已经在库中,即使它们有不同的体系结构。


步骤2:在TestObjist.VHDL文件中声明这两个库。例如:

库功能;

库计时;

库IEEE;

步骤3:在架构子句中同时包含组件声明
试验台架。实例化、驱动和测试这两个组件。


示例:通过该流获取8位寄存器:

源VHDL文件,Rig.VHD,通过VIEW综合编译生成
WRR/R. 1。在EdfNeto之后,ReG.EDN被创建并被带到Xilinx M1。
设计管理器。以文件Rev·V/VEα/XC400 0xE.NGD(用
当前版本和版本,并将其重命名为ReGIPPr.NGD。运行NGD2VHDL到
创建ReGIPPr.VHD。

由程序NGD2VHDL、版本M1.4.4生成的Xilinx VHDL
-日期:1976年8月06日13:25:03 1997
——设计文件:ReGuIPPr.NGD
-器件:XC400 0EX
ROC细胞-----
——配置单元的复位模型

库IEEE;
使用IEEE.STDYLogiCy1164.ALL;
使用IEEE.VITALL TimeIn。

实体ROC
泛型(StaseEnPATS:String:= *);
宽度:时间=0纳秒;
端口(O:输出Stdululgic=‘1’);
ROC的属性ValaleLe0.0:实体是真实的;
结束ROC;

ROC建筑
Rosiv V的属性VITALL 0:建筑是真实的;
开始
一枪:过程
开始
如果(宽度lt=0 ns)那么
断言虚假报告
“***错误:必须指定宽度的正值***”
严重失败;
其他的
等待宽度;
o’lt=“1”;用“1”改变
如果结束;
等待;
结束过程一枪;
结束摇滚;

ROC的配置
摇滚乐
结束;
结束;
细胞TOC
配置单元上的三态模型
库IEEE;
使用IEEE.STDYLogiCy1164.ALL;
使用IEEE.VITALL TimeIn。

实体TOC是
泛型(StaseEnPATS:String:=“*”);
端口(O:输出Stdululgic=‘0’);
TOC的属性VITALLIOLIOL0:实体是真实的;
结束TOC;

TOC的体系结构
TojIV的属性VITALLIOL0:建筑是真实的;
开始
一枪:过程
开始
等待;
结束过程一枪;
结束;

TOC的配置
为托克夫
结束;
末端CFGO;
库IEEE;
使用IEEE.STDYLogiCy1164.ALL;
库;
使用SimPrim.VCuthTunes;
使用SimPrim.VPACKAG.ALL;
实体注册是
端口(
重置:在STDYLogic中:=“x”;
Q7:输出STDYLogic;
Q6:输出STDYLogic;
Q5:输出STDYLogic;
Q4:输出STDYLogic;
Q3:输出STDYLogic;
Q2:输出STDYLogic;
Q1:输出STDYLogic;
Q0:输出STDYLogic;
D7:在STDYLogic中:=“x”;
D6:在STDYLogic中:=“x”;
D5:在STDYLogic中:=“x”;
D4:在STDYLogic中:=“x”;
D3:在STDYLogic中:=“x”;
D2:在STDYLogic中:=“x”;
D1:在STDYLogic中:=“x”;
D0:在STDYLogic中:=“x”;
CLK:在STDYLogic中:=“x”

结束寄存器;

Reg的体系结构
组件ROC
端口(O:输出);
端部元件;
组件TOC
端口(O:输出);
端部元件;
信号FPNYLCK,FPNYD0,FPNYD1,FPNYD2,FPNYD3,FPNYD4,FPNYD5,FPNYD6
,FPNYD7,FPNYQ0,FPNYQ1,FPNYQ2,FPNYQ3,FPNYQ4,FPNYQ5,FPNQQ6,
FPNYQ7,FPNY复位,GSR,VLuyqQ1188GSRIVor,VLuyqQ11Y1GGSRIOR,或
VLuqq11Y4GrSuor,VLuyqQ11Y3GGSRIOR,VLuyqQ11Y2GGSRIOR,VLuyqQ11Y5GGSRIOR或
VLuqq1Y66GrSuor,VLuqq11y7GrSuor,QY1I16GTSUTI,GTS,QY1I26GTSUTI,
QY1I17GTSUTI,QY1I23 GTSUTI,QY1I22GTSUTI,QY1I32 GTSUTI,
QY1I33,GTSUTI,QY1I19GTSUTI,QY1I16GTS3TIL2IIN,QY1I26GTSGTIL2I2IN
,QY1I17GTSGTILY2IIN,QY1I23 GTS3 TILI2IVIN,QY1I22GTS3TIL22IVIN,
QY1I32、GTS3、TIIL2IIN、QY1I33、GTS3TIL2IIN、QY1I19GTSGTIIL2IIN、GND,
VDD,NGD2VHDLXXY5Y0:STDYLogic;
开始
QY1I7: XY-BUF
端口映射(i=& gt;d2,o=& gt;fpnyd2);
QY1I33:XYBUF
端口映射(i=& gt;fpnnq6,o=& gt;qy1i3q-gtssi-iii);
GNDY5: x0-零
端口映射(O= & Gt;NGD2VHDLXXY5Y0);
VLUQYQY1Y8: XYFF
端口映射(i=& gt;fpnyd0,CLK=& gt;fpnY-CLK,CE=& gt;vDD,SET=& gt;GND;
RST=& gt;vLuqq1l88GrSuor或O= & gt;fpnqq0);
QY1I45:XY-CKBUF
端口映射(i=& gt;CLK,o=& gt;fpnN-CLK);
QY1I12: XY-BUF
端口映射(i=& gt;d3,o=& gt;fpnyd3);
QY1I15: XYBUF
端口映射(i=& gt;d4,o=& gt;fpnyd4);
QY1I16: XY-BUF
端口映射(i=& gt;fpnnq0,o=& gt;qy1i16gGSt3);
QY1I17: XY-BUF
端口映射(i=& gt;fpnnq4,o=& gt;qy1i17ggst3);
QY1I18: XYBUF
端口映射(i=& gt;d5,o=& gt;fpnyd5);
QY1I19: XYBUF
端口映射(i=& gt;fpnyq5,o=& gt;qy1i19ggst3);
QY1I22: XY-BUF ...
(更多...)
编辑 重设标签(回车键确认) 标为违禁 关闭 合并 删除

提问于 2018-07-29 14:45:05 +0800

这个帖子被标记为一个社区wiki

这个帖子是一个wiki(维基). 任何一个积分 >500的人都可以完善它