首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在modelsim上运行一段verilog代码时的奇怪行为

在modelsim上运行一段Verilog代码时的奇怪行为可能是由于以下几个原因引起的:

  1. 代码错误:首先,需要检查代码本身是否存在语法错误、逻辑错误或者时序错误。可以通过仔细检查代码、使用调试工具或者添加一些调试语句来定位问题所在。
  2. 模拟设置错误:其次,需要确认模拟设置是否正确。包括时钟频率、仿真时间、仿真器选项等。可以检查这些设置是否与代码的预期行为相匹配。
  3. 仿真环境问题:还有可能是由于仿真环境的问题导致的奇怪行为。例如,仿真器版本不兼容、仿真器配置错误、仿真库文件缺失等。可以尝试更新仿真器版本、重新配置仿真器或者检查仿真库文件是否正确引入。
  4. 仿真时序问题:Verilog代码中的时序问题可能导致奇怪的行为。例如,时钟边沿的触发、信号的延迟等。可以通过添加时序约束、调整时钟边沿或者检查信号延迟来解决。
  5. 仿真工具限制:最后,需要考虑到仿真工具本身的限制。不同的仿真工具可能对Verilog代码的支持程度不同,某些高级语法或者特性可能不被支持。可以查阅modelsim的文档或者咨询相关技术支持来确认是否存在限制。

总之,在解决modelsim上运行Verilog代码时的奇怪行为时,需要综合考虑代码本身、仿真设置、仿真环境、时序问题以及仿真工具的限制。通过逐步排查和调试,可以找到问题所在并解决。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

让Python在退出时强制运行一段代码

设想这样一个场景,你要给一个项目开发测试程序,程序开始运行的时候,会创建初始环境,测试完成以后,会清理环境。...这段逻辑本身非常简单: setup() test() clean() 但由于测试的代码比较复杂,你总是在调试的时候程序异常,导致每次clean()函数还没有来得及运行,程序就崩溃了。...程序一定会运行到clean()函数,但是,如果你代码写的多,你就应该知道,滥用try...except...会让你非常痛苦。...有什么办法,既能让程序报错,又能在报错已经还能运行clean()呢? 这个时候,我们就可以使用Python自带的atexit这个模块了。...它的使用方法非常简单: import atexit @atexit.register def clean(): print('清理环境相关的代码') setup() test() 这样一来,

2.3K20

FPGA开篇

接下来很长一段时间都将进行FPGA的表述,中间也不时的发一些设计硬件电路和嵌入式开发的讲解,如果对FPGA也还不知道是什么东西的朋友可以自己上网了解,反正一个字表述就是:“强”,还有呢就是以后的表达以Verilog...首先对FPGA的设计开发流程要有个了解,方便以后的了解,可看下图了解,这是以前上相关的课程时老师提供的一个图。 ?...设计时,根据不同的设计阶段,仿真可以分为三大类型,详细名称如下: 1、RTL级行为仿真(又称作为、前仿真) 这个阶段的仿真是检查代码中的语法错误和代码行为的正确与否,不含延时信息。...今天主要对FPGA的一些设计流程做一个大概的了解,可能是我不太喜欢这些纯表述性的东西,感觉弄得有些不足,对于它的历史背景那些东西,就大家自己网络上看了,也很详细;之后将开始Verilog的编写,对它历史感兴趣的也可以继续上网查阅...,这些多了解下也可以增加点知识,当然需要有一些准备工作~ 首先接下来的一段时间是进行简单的代码仿真,然后对Verilog的语法有一定的熟悉,所以需要安装有一个Modelsim,也可以装FPGA大厂商的开发软件

70130
  • 教育直播源码:在Python退出时强制运行代码的方法

    设想这样一个场景,你要给一个项目开发测试程序,程序开始运行的时候,会创建初始环境,测试完成以后,会清理环境。   ...这段逻辑本身非常简单: 31.png 但由于测试的代码比较复杂,你总是在调试的时候程序异常,导致每次clean()函数还没有来得及运行,程序就崩溃了。   ...你可能想到,如果这样写会怎么样呢: 32.png   似乎看起来,程序一定会运行到clean()函数,但是,如果你代码写的多,你就应该知道,滥用try...except...会让你非常痛苦。...有什么办法,既能让程序报错,又能在报错已经还能运行clean()呢?   这个时候,我们就可以使用Python自带的atexit这个模块了。..._exit(),你注册的函数无法正常执行。 以上就是在教育直播源码中,如果想要在Python退出时强制运行一段代码的方法,希望对您有所帮助。

    1.5K10

    适合初学者的 4 大 HDL 仿真器

    在学习使用硬件描述语言(如Verilog或VHDL)对FPGA或ASIC进行编程时,能够仿真代码是学习过程的重要组成部分。 市场上有许多不同的仿真器,每种仿真器都有自己的优点和缺点。...我们同样可以在 Windows、macOS 或基于 Linux 的操作系统上使用 GHDL。 GHDL 是最流行的开源 VHDL 仿真器。...但是,有一个适合初学者的免费版本,可用于基本的设计和仿真。 我们可以在基于 Windows 和 Linux 的操作系统上使用 Vivado,但目前不支持 macOS。...Modelsim 可以在基于 Linux 或 Windows 的操作系统上使用,但不能在 macOS 上使用。...但是,使用 Modelsim 进行 HDL 仿真也存在一些缺点。 与我们讨论过的其他工具相比,Modelsim 是最难使用的。为了有效地运行仿真,有必要使用 tcl 编写脚本。

    92710

    【笔记】Altera – Quartus II使用方法——工程创建、Modelsim破解仿真、Verilog编写、举例(待续)

    (Pin Planner) 7、编译工程 8、下载程序 下载到**SRAM**,断电丢失 生成FLASH文件 下载FLASH文件,重新上电后运行FLASH 擦除FLASH SignalTap II(信号窃听...——业界公认仿真最优秀 Modelsim简介 ☑前仿真FPGA(功能仿真) 后仿真设计(时序仿真,布局布线后仿真) Modelsim版本(功能最全的SE版) Modelsim安装 Modelsim破解...、拷贝文件 3、ModelSim添加、编译网表文件 4、开始仿真 5、添加到波形 6、观察波形,与时钟不对应,有延时 Verilog简介 1、什么是FPGA:可编程的集成电路 2、什么是HDL:硬件描述语言...分析与综合结果 6、引脚分配(Pin Planner) 7、编译工程 开始编译 编译结果 8、下载程序 下载到SRAM,断电丢失 生成FLASH文件 下载FLASH文件,重新上电后运行...7、查看信号 8、使用后关闭SignalTap II,节约资源 Modelsim仿真环境搭建——业界公认仿真最优秀 Modelsim简介 Modelsim是Mentor公司的,业界最优秀的语言仿真工具

    2K10

    摆脱Vivado单独建仿真环境的终极解决方案

    本文就探讨如何把Vivado与ModelSim联合仿真修改为单独采用ModelSim进行仿真。 在本公众号上一篇文章(【干货】推荐一款FPGA仿真调试鸟枪换炮的工具!...采用ModelSim单独仿真 1、整理RTL代码及仿真代码 如果要用ModelSim单独仿真,并且需要搭建类似于上面描述的采用脚本形式来仿真的仿真环境,那么第一步就需要从Vivado工程中把相应的Verilog...联合仿真时ModelSim预先编译好的仿真库,这里面很多都是FPGA上用到的BUFG、PLL等内容。...运行结束后,就可以在图形界面上看到覆盖率分析的结果。 ? 随着测试例的运行,上面设计代码的覆盖率也会逐渐提高,最后可以通过选择达不到覆盖率要求的模块进行详细的分析,查看测试例没有运行到的语句。...本文中提到的仿真环境仅仅是一种最简单的只有Verilog代码的仿真环境,在验证复杂度和便捷性等方面都差的很远远。

    1.9K30

    Modelsim 安装步骤详解

    它能提供友好的仿真环境,采用单内核支持VHDL和Verilog混合仿真的仿真器。它采用直接优化的编译技术、Tcl/Tk技术和单一内核仿真技术,编译仿真速度快且编译的代码与平台无关。...特点 RTL和门级优化,本地编译结构,编译仿真速度快,跨平台跨版本仿真; 单内核VHDL和Verilog混合仿真; 源代码模版和助手,项目管理; 集成了性能分析、波形比较、代码覆盖、数据流ChaseX、...可以单独或同时进行行为(behavioral)、RTL级、和门级(gate-level)的代码。...SE版和OEM版在功能和性能方面有较大差别,比如对于大家都关心的仿真速度问题,以Xilinx公司提供的OEM版本ModelSim XE为例,对于代码少于40000行的设计,ModelSim SE 比ModelSim...XE要快10倍;对于代码超过40000行的设计,ModelSim SE要比ModelSim XE快近40倍。

    2.6K40

    FPGA零基础学习:Intel FPGA 开发流程

    将HDL代码输入的and_gate2_1.v 重新添加回来。在Files上右键,选择Add/Remove Files in project(添加或移除文件)。...点击Simulation -> Run Functional Simulation(运行功能仿真)。 图68 :选择运行功能仿真 经过一段时间的运行。...在开发中用的比较多的方式是利用HDL的方式进行充当激励,modelsim软件会自动抓取HDL代码中的信号进行绘制波形,用于设计者的观测。...Modelsim的软件无法为原理图的输入方式进行仿真,所以要将HDL代码输入的方式添加到工程,将原理图输入的方式移除工程。在企业工程开发时,不建议使用原理图的方式输入,移植性太低。...图85 :进行RTL 仿真 稍微等一段时间,modelsim软件会自动启动。如果没有启动的话,并且报错的话,请查看modelsim的关联位置。

    1K01

    FPGA零基础学习:Intel FPGA 开发流程

    将HDL代码输入的and_gate2_1.v 重新添加回来。在Files上右键,选择Add/Remove Files in project(添加或移除文件)。 ?...点击Simulation -> Run Functional Simulation(运行功能仿真)。 ? 图68 :选择运行功能仿真 经过一段时间的运行。 ?...在开发中用的比较多的方式是利用HDL的方式进行充当激励,modelsim软件会自动抓取HDL代码中的信号进行绘制波形,用于设计者的观测。...Modelsim的软件无法为原理图的输入方式进行仿真,所以要将HDL代码输入的方式添加到工程,将原理图输入的方式移除工程。在企业工程开发时,不建议使用原理图的方式输入,移植性太低。...图85 :进行RTL 仿真 稍微等一段时间,modelsim软件会自动启动。如果没有启动的话,并且报错的话,请查看modelsim的关联位置。 ?

    2.2K30

    ModelSim 使用【一】介绍

    1,ModelSim软件介绍 Mentor 公司的 ModelSim 是工业界最优秀的语言仿真器,它支持 XP、Win7 和 Linux 系统,是单一内核支持 VHDL 和 Verilog 混合仿真的仿真器...ModelSim-Altera 版软件包括 ModelSim PE 的基本特性,包括了行为仿真、HDL 测试台和Tcl 脚本。...说完了仿真的两个概念,接下来我们在来说一说 ModelSim 的使用,ModelSim 的使用主要分为两种情况,第一种就是通过 Quartus II 软件调用我们的 ModelSim 来进行仿真,这种情况也就是我们通常所说的自动仿真...当我们执行了仿真以后,ModelSim 软件会根据我们的设计文件和仿真文件生成波形图,最后,我们观察波形并判断设计的代码功能是否正常。...【注】本系列教程使用的源码和testbench代码如下: 源码: module Verilog_First ( //输入端口 CLK_50M,RST_N, //输出端口 LED1

    1.8K40

    FPGA:逻辑功能的仿真与验证

    文章和代码已归档至【Github仓库:hardware-tutorial】,需要的朋友们自取。...仿真时,信号线a、b、s上要加一组测试激励信号,这组激励信号的产生,是通过initial内部的过程语句产生的,而过程语句只能给reg型变量赋值。...仿真时,信号线a、b、s上的激励信号是不能消失的,需要有“寄存”效应,能够描述这种“寄存”行为的,只能是reg型。...端口连接时有关变量数据类型的一些规定 仿真过程简介 使用软件ModelSim-Altera 6.5b Starter Edition 进行仿真验证的大致过程 ModelSim仿真软件的使用 创建一个工作目录...输入源文件 建立工作库 编译设计文件 装入设计文件到仿真器 运行仿真器 ----

    47130

    ModelSim 使用【四】ModelSim手动仿真

    【注】本文为系列教程,使用同一个仿真代码,关注公众号“数字积木”,对话框回复“ modelsim_prj ”,即可获得。这是系列第四篇。...manual_modelsim 文件夹创建好以后,我们还需要将已经编写好的Verilog 仿真文件和 Testbench 仿真文件添加至我们的 manual_modelsim 文件夹中,这里我们就将自动仿真时用到的...(Verilog_First.v 文件在我们的 Quartus II 工程目录下,Verilog_First.vt 文件在我们的Quartus II 工程目录下 simulation 文件夹下的 modelsim...,所以出现这种状态时推荐读者也要根据警告信息修改代码,确保后续使用的安全性。...这时,我们可以按快捷键 F9,也可以在 ModelSim 的菜单栏中找到【Run】按钮,点击运行就会出现我们想要的波形,这里我们需要注意的是,默认的运行时间一次运行的是 100ps,我们可以在菜单栏中进行修改

    2.1K40

    【干货】推荐一款FPGA仿真调试鸟枪换炮的工具!

    非微电子专业没有做过芯片的同学,是不知道这个世界上还有效率更高的用来对Verilog/VHDL代码进行仿真的工具的。...本公众号之前一篇文章分享程序--Verilog HDL代码分析及整理软件,也可以用来对代码规范进行分析,甚至进行整理。这些规范化的约定,在整个FPGA开发流程中,往往是最能达到事半功倍效果的一个步骤。...debussy 大家在用ModelSim做仿真时,常常遇到这样一个问题。...那么,有没有一种办法,只需要跑一次仿真,就可以把整个波形储存下来且不占太大空间,然后在追踪BUG时,还可以方便的把波形中出错的地方直接对应到代码中具体某一行上,还可以方便的对某个变量进行后向或者前向追踪...3、Debussy软件使用方法 在使用 Debussy 软件过程中,软件并不能直接智能地识别 Verilog-2001 代码,需要对软件进行一下设置,否则添加文件时软件就会报出很多错误告警,而且也看不到原理图

    10K11

    ModelSim 使用【六】modelsim手动时序仿真

    【注】本文为系列教程,使用同一个仿真代码,关注公众号“数字积木”,对话框回复“ modelsim_prj ”,即可获得。这是系列第六篇。...在该对话框中我们点击【Browse】,在弹出的对话框中我们找到 manual_modelsim 文件夹下的 Verilog_First.vo,然后将 Verilog_First.vo 添加至我们的 ModelSim...接下来我们进行代码全编译,编译完成后,我们在 ModelSim 的菜单栏中找到【Simulate】→【StartSimulation...】按钮并点击打开,我们打开 Libraries 标签,将仿真库添加至配置仿真环境中...如果不知道需要选择哪个库,我们可以先直接运行仿真,这时候 ModelSim 控制窗口中会提示错误信息,我们根据错误信息便能够分析出我们需要的库名,然后我们再重复上述步骤添加完了仿真库,接下来我们在 SDF...添加完成之后,最后我们在返回 Design 标签页面中,找到 work 下的 Verilog_First_vlg_tst,如图 ?

    84720

    在Jetson NANO 2GB上运行10行代码的威力

    因此一开始我们就为大家提供一个比较经典的范例,只用 10 行的 python 代码,实现对 90 种类别的深度学习物件检测(object detection)识别,在 Jetson Nano 2GB 上达到...上,能做到 4~6FPS 已经不容易了。...详细的代码如下: 在说明代码之前,建议先把这段代码敲进你的 Jetson Nano 2GB 设备里,当然这个代码也适用于 Jetson 全系列产品,自行取个文件名,例如 “10lines.py” ,可以在设备中的任何一个位置...最简单的视频文件可以在你 Nano 上的 “/ usr / share / visionworks / sources / data ” 下面。 其他地方无需修改。...分钟的时间,因此并不是当机,还请耐心等候,以后再执行相同模型时,就只需要十多秒就可以了。

    1.1K30

    vivado2018 中使用modelsim联合仿真

    MODELSIM SE是主要版本号,也是功能最强大的版本,支持对Verilog和VHDL语言的混合仿真。...SE版和OEM版在功能和性能方面有较大差别,比如对于大家都关心的仿真速度问题,以Xilinx公司提供的OEM版本ModelSim XE为例,对于代码少于40000行的设计,ModelSim SE 比ModelSim...XE要快10倍;对于代码超过40000行的设计,ModelSim SE要比ModelSim XE快近40倍。...三、在vivado中关联了modelsim软件和编译器件库之后,就可以在vivado中调用modelsim软件对设计进行仿真了。不过,在对每一个新建的工程设计进行仿真时需要进行一些设置。...在弹出的对话框中,设置仿真工具为modelsim、仿真语言为verilog或VHDL或混合,当设计中用到vivado中自带的仿真工具时,还要指定器件库的路径,如图10所示。

    1.9K30

    ModelSim 使用【二】联合Quarus自动仿真

    首先我们讲解的 ModelSim 自动仿真,所谓自动仿真,其实是在 Quartus II 中调用 ModelSim 软件来进行仿真,在调用过程中,Quartus II 会帮我们完成 ModelSim 中的所有操作...我们在 Quartus II 软件的菜单栏中找到【File】→【Open】按钮并打开,在对话框中找到我们的 Verilog 文件,如图 ? 打开之后,如图 ?...在该图中我们可以看到,Quartus II 软件已经为我们完成了一些基本工作,包括端口部分的代码和接口变量的声明,我们要做的就是在这个模板里添加我们需要的测试代码(也就是我们常说的激励)。...想要进行仿真首先要规定时间单位,我们建议大家最好在 Testbench 里面统一规定时间单位,不要在工程代码里定义,因为不同的模块如果时间单位不同可能会为仿真带来一些问题,timescale 是 Verilog...这时,我们再点击【RTL Simulation】按钮就会出现 Modelsim 仿真窗口界面了,这里我们需要说明的是:有的电脑不添加反斜杠是可以运行的,有的电脑不添加反斜杠是不能运行。

    2K20

    最实用的Modelsim初级使用教程

    它支持Verilog、VHDL以及他们的混合仿真,它可以将整个程序分步执行,使设计者直接看到他的程序下一步要执行的语句,而且在程序执行的任何步骤任何时刻都可以查看任意变量的当前值,可以在Dataflow...可综合FPGA代码是用RTL级代码语言描述的,其输入为RTL级代码与Testbench。...具体步骤如下: ⑴ 执行File->New->Source->verilog,或者直接点击工具栏上的新建图标,会出现一个verilog文档编辑页面,在此文档内设计者即可编辑测试台文件。...也可以在命令行输入命令:run @1000 则执行仿真到1000ns,后面的1000也可以是别的数值,设计者可以修改。在下一次运行该命令时将接着当前的波形继续往后仿真。至此,前仿真步骤完成。...)和.sdo文件(时延文件)外,还生成了gate_work文件夹、verilog_libs文件夹;gate_work文件夹(可以叫工作库,也可以叫编译库)下存放了已编译的文件,verilog_libs文件夹下存放了仿真所需要的资源库

    2.5K20
    领券