首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Xilinx ISE Design Suite在Spartan 6上生成单端口ROM

使用Xilinx ISE Design Suite在Spartan 6上生成单端口ROM
EN

Stack Overflow用户
提问于 2013-04-14 03:14:05
回答 4查看 2.4K关注 0票数 1

我在设计单端口rom到斯巴达6板时遇到了一些麻烦。我使用提供的内核生成器来创建块内存,并选择32位宽、256深的单端口rom和一个从0到255的coe文件。我将rom作为组件放入我的vhdl中,并将XilinxCoreLib作为库添加。当我尝试生成编程文件时,我得到了翻译错误:

代码语言:javascript
复制
logical block 'rom1' with type 'rom' could not be
resolved. A pin name misspelling can cause this, a missing edif or ngc file,
case mismatch between the block name and the edif or ngc file name, or the
misspelling of a type name. Symbol 'rom' is not supported in target
'spartan6'.

如果有帮助的话,我目前正在使用Xilinx ISE 13.1。我觉得这应该真的很容易做到,但我还没有找到如何做到这一点。

编辑:感谢大家,这是一种事情的结合。错误的速度等级,并且没有将ngc文件的副本添加到我的工作目录。我将在将来使用数组。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-04-18 05:20:08

由于您要将Xilinx生成的核心添加到ISE中的设计中,因此您需要通过项目菜单中的"Add Source“添加VHD文件和NGC文件。

更简单的是,根据ROM需要的大小和数据的大小,甚至不需要使用Xilinx内核,而是使用纯VHDL在VHDL文件中声明常量数组和初始化值。下面是一个示例:

代码语言:javascript
复制
type array_ROM is array (0 to NUMBER_OF_ROWS-1) of std_logic_vector (ROM_BITWIDTH-1 downto 0);

signal my_ROM : array_ROM
    :=
        (
            x"12345678",
            x"ABCDEF01",
            ...
            x"01010101"
        );

现在,你不用把省略号(...)在初始化列表中,只需放入位宽与ROM_BITWIDTH匹配常量行。NUMBER_OF_ROWS是你在只读存储器中需要的地址位置的数量。在本例中,ROM_BITWIDTH必须设置为32,因为我在初始化列表中使用了32位十六进制常量。作为一个信号,它实际上是可以修改的,所以如果你需要它是常量,只需使用“常量”而不是信号。

票数 1
EN

Stack Overflow用户

发布于 2013-04-14 04:16:38

最简单的方法是完全忘记供应商工具,只需声明一个常量数组!

如果这是在一个独立于设计其余部分的包中,几行printf或一个简单的脚本就可以在内容周围生成VHDL样板,这些样板来自您的汇编程序或任何创建实际数据的工具

票数 4
EN

Stack Overflow用户

发布于 2013-04-14 15:07:54

我猜问题就像消息所说的那样,是一个拼写错误。要获得正确的组件声明/实例化,请在ISE的设计窗口中选择rom.xco。然后从工艺窗口中选择“查看vhdl实例化模板”。使用其中描述的组件声明和实例化。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15991819

复制
相关文章

相似问题

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