quartus ii中仿真rom时遇到的问题(待完善)
1.modelsim仿真只支持.hex,并不支持.mif(Memory Initialzation File)。
2.在Matlab中生成.mif文件,然后再quartus中打开,转换为hex格式后另存为。
3.让modelsim支持hex,https://wenku.baidu.com/view/48e7216704a1b0717fd5dda0.html?re=view
4..hex文件要在modelsim工程下,还是quartus工程下???
以上是之前遇到这个问题时候在网上找到的解决方法,就先放着。
这个问题搞了两天了,今天终于有些明白了,写出来记录一下。
一、modelsim能不能调用.mif文件。
对于这个问题,我的答案是能(网上有好多帖子都说modelsim只支持.hex,不支持.mif),其实持不支持的观点也并不是错了。下面我就来说说我的理解。
当.mif中的数据是非负数时,modelsim是能够支持的,当存在负数时,modelsim就会将它默认作为0进行处理,并且给出常遇到的错误提示:
ERROR: sin.mif, line 2055, Invalid Altera-mif record.
这个提示指出了在.mif中出现的负数的位置,line 2055,你可以去.mif文件中查看这一行中的数据,或者是在这一行的附近,应该会是一个负数。之所以说modelsim支持.hex文件,是因为负数在存储时,是按照补码的形式存的,而.mif默认是按照十进制或者说是原码进行存储的。
二、rom仿真中出现的问题。
解决了上面的问题,那么再来看看如何在modelsim中调用rom。(如果你要存储的数据中含有负数,那就生成.hex文件吧,生成的方法可以在参照文章开头的2中那样去处理)。
仿真rom无非是查找表中的数据,那么就会有地址和数据,上面解决了数据的问题,再来看看地址的处理。当你把存储地址的变量声明为reg类型时,切记要进行初始化,因为reg类型的数据,默认的初始值是不定的,即为x。(准备再写一个介绍仿真时初始化的问题)
quartus ii中仿真rom时遇到的问题(待完善)的更多相关文章
- 如何在Quartus II中设置Virtual pin
为了验证FPGA工程中的某个模块的功能和时序的正确性,常常需要对其单独进行验证,但是这些模块通常都与内部的众多信号相连(如系统总线,中断信号线等),往往一个模块的对外接口引脚会多达几百个,对其单独仿真 ...
- Quartus II中FPGA的管脚分配保存方法
一.摘要 将Quartus II中FPGA管脚的分配及保存方法做一个汇总. 二.管脚分配方法 FPGA 的管脚分配,除了在QII软件中,选择“Assignments ->Pin”标签(或者点击按 ...
- (转载)Quartus II中FPGA的管脚分配保存方法(Quartus II)
一.摘要 将Quartus II中FPGA管脚的分配及保存方法做一个汇总. 二.管脚分配方法 FPGA 的管脚分配,除了在QII软件中,选择"Assignments ->Pin&quo ...
- 在Quartus II中分配管脚的两种常用方法
在Quartus II中分配管脚的两种常用方法 示范程序 seg7_test.v 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 /* * ...
- 在Xilinx ISE中生成ROM时需要注意的事
在Xilinx ISE中生成ROM时,需要指定.coe文件.需要做到两件事.其一,要使用memory_initialization_radix= ; memory_initializatoin_vec ...
- 设置 Quartus II 的仿真时间大于 1us
Quartus II 仿真的默认时长是 1us. 设置时钟时看到 End time 想修改时长,把默认的 1us 改成 10us. 然后提示 End time 不合法.(只能设置为 0 到 1us) ...
- Quartus II 中参数化模块库(LPM)的使用
Quartus II 的LPM库所在的目录是\altera\11.0\quartus\libraries\megafunctions 现以LPM_MULT为例进行演示: 思路:1.首先创建一个pro ...
- 转载.怎样在Quartus II中转化HDL文件为bsf文件?
步骤1 新建或打开Quartus II工程,用QII自带文本编辑器打开HDL文件. 图1 用QII自带的文本编辑器打开HDL文件 步骤2 选择File>Create / Update>Cr ...
- Quartus II中的Waring(转)
1.Found clock-sensitive change during active clock edge at time <time> on register "<n ...
随机推荐
- STL源码剖析(读书笔记)
STL迭代器种类 2. 迭代器型别使用范例: 3. SGI STL空间配置器分为两级: 4. Vector 的内部存储方式为数组,随机访问迭代器. 5. Vector的size获取方式: 6. Vec ...
- MINA、Netty、Twisted一起学(十二):HTTPS
由于HTTPS协议是由HTTP协议加上SSL/TLS协议组合而成,在阅读本文前可以先阅读一下HTTP服务器和SSL/TLS两篇博文,本文中的代码也是由这两篇博文中的代码组合而成. HTTPS介绍 上一 ...
- 转:KVC与KVO机制
由于Objective-C是基于Smalltalk进行设计的,所以它具有动态加载.动态绑定等特性.Key-value coding (KVC) 和 key-value observing (KVO) ...
- Windows下安装Redis数据库并实现C#访问
1.Redis在Windows下的安装 目前Redis官方并不支持Redis的Windows版本,需要去GitHub下载. GitHub上的Redis分两种,一种是以命令行形式安装的,一种是以Wind ...
- 从0移植uboot (二) _uboot启动流程分析
经过了上一篇的配置,我们已经执行make就可以编译出一个uboot.bin,但这还不够,首先,此时的uboot并不符合三星芯片对bootloader的格式要求,同时,此时的uboot.bin也没有结合 ...
- Kindle电子阅读器收不到个人文档推送解决方案
最近我的 kindle 固件版本更新到 5.8.7.0.1 ,发现增加了生字注音功能,瞬间变成小学生阅读神器有木有,不过,这个功能可以隐藏.显示,看着碍眼隐藏即可,还可以减少和增加生字注音.感觉对于经 ...
- 翻译:使用 Redux 和 ngrx 创建更佳的 Angular 2
翻译:使用 Redux 和 ngrx 创建更佳的 Angular 2 原文地址:http://onehungrymind.com/build-better-angular-2-application- ...
- mfc---获取当前时间
CTime t = CTime::GetCurrentTime(); CString strTime = t.format("%Y/&m%d" %h:%M:%S);
- Java并发之线程异常捕获
由于线程的本质特性,使得你不能捕获从线程中逃逸的异常,如: import java.util.concurrent.ExecutorService; import java.util.concurre ...
- 说说如何用js实现一个模板引擎
本文同步更新在: https://github.com/whxaxes/blog/issues/4 ,在 github 看文章显示效果会更好一些. 前言 不知不觉就很长时间没造过什么轮子了,以前一直想 ...