如何在HDL(VHDL/Verilog)中推断ROM?-Xilinx-AMD社区-FPGA CPLD-ChipDebug

如何在HDL(VHDL/Verilog)中推断ROM?

描述

关键词:异步、选择、ROM、同步性

紧迫性:标准

一般描述:
在SypR化5.3中的一个新特性是ROM推理。
SypReTiice 5.3现在将这些推断的ROM映射到Xilinx ROM原语ROM16X1和
ROM32 x1。
Xilinx ROM原语使用一个称为SythRoMyType的属性来推断。
目前,这个属性唯一支持的值是“StReTyROM”。这个属性是
设置ROM的输出,如下面的例子。

注:共5.3项。

解决方案

//Verilog示例

模块TESTROM(A,Z);
输入[3:0] A;
输出[3:0] z;

Reg [3:0] Z/*综合SythRoMySype =“选择TROM ROM”*/;

总是@(a)
开始
案例(a)
4’bOM:Z= 4’Ha;
4’B00 01:Z=4’H4;
4’B00 10:Z= 4’H7;
4’B011:Z= 4’H2;
4’B0100:Z= 4’H5;
4’B0101:Z=4’H9;
4’B0110:Z= 4’Hb;
4’B1001:Z=4’H1;
4’B1010:Z= 4’HF;
4’B1011:Z=4’H6;
4’B1100:Z= 4’H8;
4’B11:Z= 4’He;
4’B1110:Z= 4’HC;
默认值:z=4’H0;
端部病例
结束

终端模块

——VHDL实例

库IEEE;
使用IEEE.STDYLogiCy1164.ALL;
实体ROM是
端口(A:在STdLogLogic向量中(3下降到0);
Z:ExtSdLogLogic向量(3下降到0)

属性SythRoMyLoad:字符串;
Z:信号的属性SyrOrthSype是“选择TROM ROM”;
结束ROM;

ROM的体系结构RTL
开始
过程(a)
开始
案例A是
当“0000”=gt;z & lt=“1010”;
当“0001”=gt;z & lt=“0100”;
当“0010”=gt;z & lt=“0111”;
当“0011”=gt;z & lt=“0010”;
当“0100”=gt;z & lt=“0101”;
当“0101”=gt;z & lt=“1001”;
当“0110”=gt;z & lt=“1011”;
当“1001”=gt;z & lt=“0001”;
当“1010”=gt;z & lt=“1111”;
当“1011”=gt;z & lt=“0110”;
当“1100”=gt;z & lt=“1000”;
当“1101”=gt;z & lt=“1110”;
当“1110”=gt;z & lt=“1100”;
当其他=& z;=“0000”;
结束情况;
结束过程;
结束RTL;

SDC实例
在SypPlice中,运行VHDL/Verilog设计一次,然后转到HDL分析师-GT;RTL & GT;分层视图。
注意ROM模块名称,例如:ZY18[3:0]。

单击新建约束文件图标,选择属性选项卡并输入以下内容:
“对象”列下的ZY18[3:0](ROM实例名)
属性列中的SynRoRype,以及
在值列下选择SytRyROM。

保存并重新运行。

或者,您可以输入以下的文件名:
定义属性{ZY18[3:0] } SythRoMyth{StultTyROM}

请登录后发表评论

    没有回复内容