zoukankan      html  css  js  c++  java
  • 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。(准备再写一个介绍仿真时初始化的问题

  • 相关阅读:
    Leetcode 191.位1的个数 By Python
    反向传播的推导
    Leetcode 268.缺失数字 By Python
    Leetcode 326.3的幂 By Python
    Leetcode 28.实现strStr() By Python
    Leetcode 7.反转整数 By Python
    Leetcode 125.验证回文串 By Python
    Leetcode 1.两数之和 By Python
    Hdoj 1008.Elevator 题解
    TZOJ 车辆拥挤相互往里走
  • 原文地址:https://www.cnblogs.com/lovexz/p/6675386.html
Copyright © 2011-2022 走看看