导航:首页 > 源码编译 > vhdl编译内部错误

vhdl编译内部错误

发布时间:2025-06-15 05:40:33

❶ VHDL 下如何实现在if语句下运行process

在VHDL编程中,if语句是一种顺序执行的语句,而process语句则是一种并行执行的语句。process语句的主要作用是将顺序描述的电路模块转化为并行描述,使其能够更好地符合硬件并行工作的需求。因此,顺序语句通常用于进程(process)或子程序中,而进程或子程序内部则不允许出现并行语句,因为这违背了硬件并行工作的基本原则。

如果在if语句中尝试使用process语句,将会导致编译错误。这是因为VHDL设计语言的规范要求,if语句只能包含顺序执行的语句,而process语句是并行执行的,两者不能混用。为了满足硬件设计的需求,VHDL提供了一种特殊的语句结构,即sensitivity列表,可以将顺序语句转换成并行语句,从而实现对输入信号的实时响应。

在实际编程中,开发者常常需要在if语句中进行逻辑判断,然后根据不同的判断结果执行不同的操作。这种情况下,可以使用VHDL提供的case语句或者generate语句来替代if语句,从而避免在if语句中嵌套process语句。通过合理地运用case语句或者generate语句,可以有效地实现顺序逻辑和并行逻辑的混合编程,以满足复杂硬件设计的需求。

值得注意的是,虽然if语句中不能直接嵌入process语句,但可以通过调用包含process语句的子程序或函数来实现复杂逻辑的并行执行。这种设计方法不仅提高了代码的可读性和可维护性,还能够充分利用硬件的并行处理能力,从而提高整个设计的性能。

❷ 请求各位帮忙看一下到底是甚么原因,VHDL会有这样的错误讯息还有该怎么改呢

以上是属于多时钟问题!在设计时往往会遇到这种情况,需要对外部某个输入信号进行判断,当其出现上跳或下跳沿时,执行相应的操作,而该信号不像正常时钟那样具有固定占空比和周期,而是很随机,需要程序设计判断其上跳沿出现与否。

http://blog.csdn.net/denghuanhuandeng/article/details/6877439

❸ 怎样用modelsim做后仿真

step1:在qurtus改变编译选项:
assignments->EDA tool setting:选择verilog还是vhdl。

step2:编译。你会在你的工程所在目录 看到一个simulation的目录,这里面有你生成的网表文件和标准延时文件。

step3:在目录:\quartus\eda\sim_lib找到你选用器件对应的库文件,将库文件和网表文件以及延时文件和testbench文件放在同一目录,在modelsim里进行编译库文件、网表文件以及bench文件。

step4:编译成功后,然后进行load,在load design的时候,需要制定延时文件的路径,以及延时文件作用的区域,延时文件的左右区域就是testbench里面调用顶层文件取的名字。

step5:打开signal窗口(view->signal)和wave窗口(view->signal),将你希望仿真的信号添加进去。

Step:仿真。。。

利用ModelSim SE6.0C实现时序仿真!!!
1) 打开一个工程文件。
2) 打开Settings设置栏,选择EDA Tools Settings下的Simulation栏。在右边出现的设置栏中将“Tool name”的下拉菜单选择“ModelSim(Verilog)”(如果工程用VHDL语言实现,则可以选择“ModelSim(VHDL)”;如果ModelSim使用的是for Altera的专用版本,则可以选择“ModelSim-Altera(Verilog)”或“ModelSim-Altera(VHDL)”)。
另外在设置栏中还有其他的核选框。
如果选中“Maintain hierarchy”,则表示在做时序仿真时就能看到像在功能仿真的工程文件层次结构,可以找到定义的内部信号。因为在做后仿时,源文件中的信号名称已经没有了,被映射为软件综合后自己生成的信号名,观察起来很不方便。这个设置与ISE里综合右键属性的Keep Hierarchy选择YES的功能是一样的。
如果选中“Generate netlist for functional simulation only”,则表示只能做功能仿真。
3) 点击 “Start Compilation”按钮编译工程,完成之后在当前的工程目录下可以看到一个名为“Simulation”的新文件夹,下面的“ModelSim”文件夹下包括仿真需要的.vo网表文件和包含延迟信息的.sdo文件。
4) 打开ModelSim软件(或者在Quartus下“Settings->EDA Tools Setting->Simulation”出现的设置栏中选中“Run this tool automatically after compilation”,直接从Quartus下调用ModelSim软件),可以在当前工程目录下新建一个Project。在Project标签栏内点击右键,出现在快捷菜单中选择“Add to Project->Existing File…”。加入当前工程目录的“\Simulation\ModelSim\”路径下的.vo文件、TestBench文件和对应当前工程所选择器件的网表文件。
比如:当前工程选择的器件是Cyclone系列,Quartus安装目录在“C:\altera”路径下。因此需要在“C:\altera\quartus50\eda\sim_lib”路径下找到“cyclone_atom.v”的网表文件导入到ModelSim下的Project。如果是其他器件亦是如此,只要在此目录下找到对应有“_atom”后缀的.v文件。当然整个大前提是ModelSim SE版本已经加入了Alterta的仿真库,不过ModelSim-Altera版本就不会存在这样的问题。

5) 在出现的Project标签栏的快捷菜单中选择“Add to Project->Simulation Configuration”,会出现如上图所示的名为“Simulation1”的仿真配置。右键点击选择“Properties”,弹出的“Simulation Properties”对话框中有几个标签栏。
在“Design”标签栏内需要选择仿真的文件,也就是TestBench文件。

在“SDF”标签栏内需要选择包含延迟信息的文件,即Quartus下生成的.sdo文件。这里建议将.sdo文件与ModelSim的工程文件(.mpf文件)放在同一个目录下,不然ModelSim会报类似无法读取.sdo文件的错误。当加入.sdo文件时,需要在如下图所示的“Apply to Region”的编辑框内填写延迟信息文件作用的区域。
举个例子来说明:
TestBench文件中定义了测试文件的Mole名称为ConvEncdTestBnch。
TestBench文件中调用待测顶层文件的实例名为top_encode_1。(top_encode top_encode_1(clk, rst, dataIn, serialData, parData);这是TestBench文件中调用顶层的语句)
所以在作用区域内需要填写“/ConvEncdTestBnch/top_encode_1”。

6) 右键点击名为“Simulation1”的仿真配置,快捷菜单中选择“Execute”命令,执行仿真。
7) 指定延时文件sdo 路径时,特别注意“域”的指定,否则用户会在timing 仿真中报load error “can’t find instance file”. 指定的域可以从sim标签页查看sim 的top 层,或要仿真的对象。另外,时序仿真时,一定要记住要把顶层top.v 用 top.vo 替换。同时要确保预编译的库中每个库的名字必需遵循altera的要求,比如:cylcone 的device 库必需命名为cycclone, maxii 的device命名为maxii, flex10Ke 和acex1K 都命名为flex10Ke,详细查看文档附件。Simulation.pdf
8) 提供一个testbench 的模板。

利用ModelSim SE6.0C实现功能仿真
功能仿真流程比较简单,一般不会出现什么问题,这里不再多述。

阅读全文

与vhdl编译内部错误相关的资料

热点内容
隐藏文件夹忘了放哪 浏览:45
sdd编译 浏览:578
csgon怎么连接社区服务器 浏览:599
丽升系统服务器地址是什么 浏览:241
中粮期货的手机app叫什么 浏览:839
心理解压的书籍 浏览:700
软件测试技术pdf 浏览:690
口袋妖怪白金压缩包 浏览:728
母亲缓解压力的利器 浏览:323
奶油脸的特效是哪个app 浏览:45
高阶导数简便算法 浏览:289
可爱的程序员电视剧全集免费观看 浏览:265
电脑看文件夹需要下载什么软件 浏览:654
高三自我解压教程 浏览:210
linuxphp参数 浏览:741
视图预编译sql 浏览:143
安卓编程要用什么配置的电脑 浏览:339
压缩工具为什么解压不了 浏览:303
06年之前的程序员 浏览:629
静态编译和误报毒哪个大 浏览:245