首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何强制合成器使用RAM块来存储数据- VHDL

如何强制合成器使用RAM块来存储数据- VHDL
EN

Stack Overflow用户
提问于 2015-05-08 23:09:43
回答 1查看 490关注 0票数 0

我需要强制合成器或编译器使用RAM块来存储数据。

例如,下面是代码:

代码语言:javascript
复制
type REG_Memory is array (0 to 3) of std_logic_vector(15 downto 0);
signal Memory : REG_Memory :=
     (x"0001",
      x"0010",
      x"0100",
      x"1000");

当我编译它并查看编译结果时,它不使用任何RAM块,而是使用逻辑单元。我需要使用RAM块作为寄存器存储,如何做到这一点?我正在使用的设备是IGLOO,我可以这样做吗?否则在设备重启时会丢失数据? synplify pro是合成器。

EN

回答 1

Stack Overflow用户

发布于 2015-05-08 23:19:24

请查看文档。Synplify有一本很好的FPGA参考手册,其中包含如何获得所需行为的代码示例和约束条件。有多种方法可以实现你想要的(在HDL中,在约束文件中,等等)。

您可以查看Synopsys FPGA综合参考手册。特别是在Microsemi部分。在同一本手册中,您还可以找到关于RAM和ROM推理的章节。

该手册位于安装的"doc“目录中。

下面是他们提供的一个ROM示例(还给出了其他示例):

代码语言:javascript
复制
library ieee;
use ieee.std_logic_1164.all;
entity rom4 is
   port (a : in  std_logic_vector(4 downto 0);
         z : out std_logic_vector(3 downto 0));
end rom4;
architecture behave of rom4 is
begin
   process(a)
   begin
      if a = "00000" then
         z <= "0001";
      elsif a = "00001" then
         z <= "0010";
      elsif a = "00010" then
         z <= "0110";
      elsif a = "00011" then
         z <= "1010";
      elsif a = "00100" then
         z <= "1000";
      elsif a = "00101" then
         z <= "1001";
      elsif a = "00110" then
         z <= "0000";
      elsif a = "00111" then
         z <= "1110";
      elsif a = "01000" then
         z <= "1111";
      elsif a = "01001" then
         z <= "1110";
      elsif a = "01010" then
         z <= "0001";
      elsif a = "01011" then
         z <= "1000";
      elsif a = "01100" then
         z <= "1110";
      elsif a = "01101" then
         z <= "0011";
      elsif a = "01110" then
         z <= "1111";
      elsif a = "01111" then
         z <= "1100";
      elsif a = "10000" then
         z <= "1000";
      elsif a = "10001" then
         z <= "0000";
      elsif a = "10010" then
         z <= "0011";
      else
         z <= "0111";
      end if;
   end process;
end behave;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30127139

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档