描述
关键词:ViTEX,CLKDV,CLKDVILILL,仿真,功能,综合,CLKDLL,DLL
紧迫性:标准
问题描述:必须在UCF文件中输入CKDVvLead属性。
如何在预综合功能仿真中仿真这种行为?
解决方案
一
注意:下面给出的HDL代码可能无法综合。用户
为了完成综合,需要适当地修改代码。
对于VHDL设计,有2种方法来仿真这种行为。
1。在VHDL代码中使用泛型语句。
下面是一个示例代码:
库IEEE;
使用IEEE.STDYLogiCy1164.ALL;
库UNISIM;
使用UNISIM.VCISOTALS;
实体使用
端口(DIN,CLK):在STDYLogic中;
DOUT,锁定:输出STDYLogic;
结束使用;
USELK的体系结构
组件BUFG端口(I:在STDYLogic中;O:OUT STDYLogic);
端部元件;
组件CKDLL
泛型(CKDVv:Deal:Real);
端口(
CLKIN,CLKFB,RST:在STDYLogic中;
CKK0、CLK90、CLK180、CLK270、CLK2X、CLKDV、锁定:OUT STDYLogic;
端部元件;
信号CKLIN,CKKY-BUFG,CKKYDIV2,CKKY DIV2BUFG,LoCuM1,ReSET2,A,B,C,D,E,GD:STDYLogic;
开始
GD & lt;
U0:BUFG端口映射(I=& Gt;ClkIn It,O= & Gt;ClkU-Bufg);
U1: CLKDLL
通用映射
Clkdvl除数=& 2;
端口映射(端口映射)
Clk=
RST=& gd;
Clkfb=& Clku-Bufg,
Clk0= & ClkIn,
Clk90=&
Clk180= & gt;
Clk270=&
Clkdv=& ClkyDIV2;
Clk2x=& a;
锁定= & GT;锁1);
U2: BUFG端口映射(I=& Gt;ClkY-DIV2,O= & Gt;ClkY-DI22BUFG);
过程(CKKYDIV2BUFG)
开始
如果(CKKYDIV2BUFG’事件和CKKYDIV2BUFG=‘1’)
DUT和DIN;
如果结束;
结束过程;
结束语;
2。在TestBooad中使用配置语句。
这里有一个例子:
库IEEE;
使用IEEE.STDYLogiCy1164.ALL;
库UNISIM;
使用UNISIM.VCISOTALS;
CKKDLLSIB TB的配置CFGYCLKDLLSTB
结核病
对于UutuCLKDLLS:CLKDLL使用实体工作。
用于结构
对于所有:CKDLL使用实体UNISIM.CKDLL(CLKDLLYV)
通用映射(Duty-Cyclix校正=& gt;false,ClkdvvLead=& gt;1.5);
结束;
结束;
结束;
结束;
末端CFGL;
在哪儿:
CFGYCLKDLLS.TB:配置的名称
测试平台的实体
TB:测试平台的架构名称
UutuCLKDLL:测试平台中顶层设计的实例名称
CLKDLL:顶层设计的组件名称
结构:顶级RTL VHDL代码的体系结构名称。
二
对于Verilog设计,使用FabPARAM
下面是一个示例代码:
模块USECLK(DIN,CLK,DOUT,锁定);
输入DIN,CLK;输出DUT,锁定;Reg Dout;
CelkLuIn,CKKY-BUFG,CKKYDIV,CKKYDIVIOBUFG,A,B,C,D,E,F,GD;
分配GD=1’B0;
BUFG U0(.I(CLKIN It),O(CKKY-BUFG));
CLKDLL U1(CLKIN(CLK),.RST(GD),CLKFB(CLKY-BUFG),CLK0(CLKJIN),CLK90(B),.CLK180(C),.CLK27(D)),
CLKDV(CKKYDIV),CLK2X(E),锁定(锁定);
FdPARAM U1.CLDKvv1=1.5;
BUFG U2(.I(CKKY-DIV),O(CKKYDIVIOBUFG));
总是@ @(Press)
开始
DUT和DIN;
端点模块
没有回复内容