fpga - ModelSim 进程中的致命错误 RAM_i1/RAM_0_0_0/P107 Lattice MACHXO3L_MISC.vhd
问题描述
当我试图在 ModelSim 中模拟一个为 Lattice Semiconductor 的目标设备 MACHXO3L 实例化 RAM IP 的设计时,我遇到了一个致命错误。我已经编译了他们的库以在 ModelSim 中使用,但由于以下致命错误,模拟总是停止:
# ** Fatal: (vsim-3483) Delay in signal assignment is not ascending.
# Time: 20 ns Iteration: 1 Process: /fft_tb/fft_i/RAM_i1/RAM_0_0_0/P107 File: C:/lscc/diamond/3.11_x64/cae_library/simulation/script/../vhdl/machxo3l/src/MACHXO3L_MISC.vhd Line: 541
# Fatal error in Process P107 at C:/lscc/diamond/3.11_x64/cae_library/simulation/script/../vhdl/machxo3l/src/MACHXO3L_MISC.vhd line 541
ModelSim 致命错误:
有任何想法吗?似乎问题出在 Lattice 库 MACHXO3L_MISC.vhd 第 541 行
解决方案
正如@user1155120 正确建议的那样,通过更改模拟时间分辨率来解决问题。我通过修改 modelsim.ini 文件将其更改为皮秒。需要修改的参数是:
; Set SystemC default time unit.
; Set to fs, ps, ns, us, ms, or sec with optional
; prefix of 1, 10, or 100. The default is 1 ns.
; The ScTimeUnit value is honored if it is coarser than Resolution.
; If ScTimeUnit is finer than Resolution, it is set to the value
; of Resolution. For example, if Resolution is 100ps and ScTimeUnit is ns,
; then the default time unit will be 1 ns. However if Resolution
; is 10 ns and ScTimeUnit is ns, then the default time unit will be 10 ns.
ScTimeUnit = ps
您可能还希望或需要更改项目文件夹中 .mpf 文件中的相同参数。如果这不会改变模拟分辨率,您可以在 vsim 命令中隐式执行它:
vsim work.<your_test_bench> -t ps
推荐阅读
- python - 如何生成散点图,其中点的颜色由它们的 y 值定义
- core-data - 无法在 SwiftUI 中重新渲染 CoreData 更新上的视图
- c++ - 以数组和数组作为参数的意外结果
- adonis.js - AdonisJs 嵌套关系
- ssh - 如何对 SSH 错误进行 Ansible 重试?
- python - Pytorch几何稀疏邻接矩阵到边缘索引张量
- amazon-web-services - 通过 Lambda@Edge 来自 KMS 加密存储桶的 AWS CloudFront 自定义 s3 来源
- c# - 无法复制文件“obj \ Debug \ {ProjectName} .exe” - 找不到文件
- python - 在 pytransitions 中处理多个对象
- c# - 尝试将数据从 db 返回到控制器并出现“如果您使用 DataContractSerializer,请考虑使用 DataContractResolver”错误