如何在VHDL和Verilog中使用init属性初始化LUT?-Xilinx-AMD社区-FPGA CPLD-ChipDebug

如何在VHDL和Verilog中使用init属性初始化LUT?

描述

一般描述:

在VHDL中实例化LUT时,如何使用init属性来设置LUT方程?

解决方案

下面的文件给出了如何使用init属性初始化实例化LUT中的方程的示例。为了引用Synplify中的器件特定组件,必须包含特定的器件库。在这种情况下,使用了ViTeX库;但是,如果包含适当的库,示例将适用于SpartanII和ViTEX II架构。

使用init属性的测试用例:

– 4输入比较器与芯片选择示例。

-给定信号DATAZIN(3下降到0),LUT方程如下:

~(3)** DATAYIN(2)* DATAYIN(1)* DATAYIN(0)

库IEEE;

使用IEEE.STDYLogiCy1164.ALL;

库UNISIM;

使用UNISIM.VCISOTALS;

实体MUXTEST是端口(

DATAIIN:在STdLogLogic向量(3下降到0);

CS:在STDYLogic中;

CLK:在STDYLogic中;

DATAXOUT:输出STDYLogic;

结束测试;

MUXTEST的体系结构

组件LUT4

泛型(init:比特向量(15下降到0):=B“0000000000000000”);

端口(

I0:在STDYLogic中;

I1:在STDYLogic中;

I2:在STDYLogic中;

I3:在STDYLogic中;

输出逻辑

端部元件;

组件MUXF5

端口(

I0:在STDYLogic中;

I1:在STDYLogic中;

在STDYLogic中;

输出逻辑

端部元件;

组件GND

端口(

G:走出困境;

端部元件;

信号LutyOUT: STDYLogic;

信号MUXIOUT:STDYLogic;

信号GNDIIN:STDYLogic;

开始

MLUT1:LUT4

通用映射

init=& b;

端口映射(端口映射)

I0= & GT;DATAZIN(0);

I1= & GT;DATAZIN(1);

I2= & GT;DATAZIN(2);

I3= & GT;DATAZIN(3);

Ol= & lutsOUT

MYMUXF5:MUXF5端口映射(MUXF5)

I0= & GlutyOUT,

I1= & GndIin,

S=& gt;

Ox=和MuxOUT

MGND: GND端口映射(G= GT;GNDIIN);

过程(CLK)

开始

如果(CLK=‘1’和CLK’事件)

数据输出;

如果结束;

结束过程;

端部结构;

下面的文件给出了如何使用init属性初始化实例化LUT中的方程的示例。为了引用Synplify中的器件特定组件,必须包含特定的器件库。在这种情况下,使用ViTeX库:但是,如果包含适当的库,示例将适用于SpartanII和ViTEX II架构。

使用init属性的测试用例:

– 4输入比较器与芯片选择示例。

-给定信号DATAZIN(3下降到0),LUT方程如下:

[DATAIIN [ 3 ] *DATAIIN [ 2 ] * DATAYin [ 1 ] * DATAYin [ 0 ]

“包含”c:\SypLyth\SypRein\\Lb\xilinx\uniSim.v

模块MUXTEST(DATAZIN,CS,CLK,DATAOUT);

输入[3:0]数据;

输入CS,CLK;

输出数据输出;

电线拉图松,MUXYOUT,GNDIIN;

数据处理;

//下面的α(16’H8)将通过“8”的十六进制值。

//在LUT4定义中的第一个参数语句

//在ViTr.v文件中找到。

LUT4α(16’H8)MyLut1(.I0(DATAYIN〔0〕),I1(DATAYIN〔1〕),I2(DATAYIN〔2〕),I3(DATAYIN〔3〕),O(LutsiOUT);

MUXF5 MyMuxF5(.I0(LutsiOUT),I1(GndIIN),S(CS),O(MuxOUT));

GND mygnd(G(GndIin));

总是@(POSSEDGE CLK)DATAXOUT & lt;= MuxOUT;

终端模块

请登录后发表评论

    没有回复内容