tag 标签: ModelSim

相关帖子
相关博文
  • 热度 34
    2021-6-29 09:40
    17953 次阅读|
    0 个评论
    . Syntax error near “non-printable character with the hex value ‘0xef“ 手打了一个简单的源文件,ModelSim编译的时候出现几条类似上述的语法错误。由于代码简单,也没几行实在是不知道问题出在哪里,后来网上搜索,发现有其它人遇到了类似问题。问题出在手打代码的时候使用了第三方编辑器,比如UEdit或 notpad++等等,这些编辑器很容易在不经意间保存文件的时候会在代码中某处出现隐藏的乱码。解决的一种办法就是用ModelSim自己的编辑器打开源文件,乱码会无处藏身。 另外,仿真的时候使用了文件操作,首先是打开文件 File = $fopen("fft_cos.hex", "r"); 上述代码在初始化的时候打开文件,File定义为integer类型,仿真的时候倒是没有出现什么问题。但是在读取文件的时候,使用 $fscanf(File, "%h",data); 语句将文件一行数据读取并保存到寄存其data里,读取函数会自动换行。在时钟同步下控制文件的读取,即同步与时钟的读取使能信号来控制文件的每一次(每一行)数据的读取的时候,上述语句位于always进程里, always@(posedge clk or negedge rst_n) begin if (!rst_n) begin data <=56'h00000000000000; end else begin if(filerd_en) begin //callback = $fscanf(File, "%h",data); $fscanf(File, "%h",data); //data_o <= data; valid <= 1'b1; end else begin valid <= 1'b0; end end end 这时候仿真会给出一个警告 ** Warning: (vsim-PLI-3691) E:/workspace/prj/SourceSim/SortMergerSim/CS_sort_and_merger_by_stack/rdFile.v(35): Expected a system task, not a system function '$fscanf'. # Time: 0 ps Iteration: 0 Instance: /cs_sortmerger_stack_tb/FileRead File: E:/workspace/prj/SourceSim/SortMergerSim/CS_sort_and_merger_by_stack/rdFile.v 去除该警告的方法,就是使用上述代码中屏蔽的 //callback = $fscanf(File, "%h",data);
  • 热度 11
    2021-6-28 16:03
    8115 次阅读|
    0 个评论
    版本:ModelSim 64 10.7 问题:当进行仿真的时候,脚本里命令为:“vsim -L lpm -L altera -L sgate -L lpm_ver -L altera_ver -L sgate_ver -L altera_mf_QII170 -L 220model_QII170 -t 1ps work.cs_sortmerger_stack_tb” 上述命令没有使用属性“-novopt”所以为开启优化选项,这时候如果源文件里如果使用generate复用的时候,会导致复用模块里的端口或者底层的观察信号无法添加到ModelSim 的波形窗口进行观察。 而如果添加“-novopt”属性的话,则会提示以下错误信息: # vsim -gui -novopt -L 220model_ver -L altera_mf_ver work.testbench -t ps # Start time: 14:24:56 on Jun 28,2021 # ** Error (suppressible): (vsim-12110) All optimizations are disabled because the -novopt option is in effect. This will cause your simulation to run very slowly. If you are using this switch to preserve visibility for Debug or PLI features, please see the User's Manual section on Preserving Object Visibility with vopt. -novopt option is now deprecated and will be removed in future releases. # Error loading design # End time: 14:24:57 on Jun 28,2021, Elapsed time: 0:00:01 # Errors: 1, Warnings: 0 解决方法: 为了避免模块端口被优化掉,使用vsim -voptargs=+acc就可以了。随意修改后脚本为: vsim -L lpm -L altera -L sgate -L lpm_ver -L altera_ver -L sgate_ver -L altera_mf_QII170 -voptargs=+acc -t 1ps work.cs_sortmerger_stack_tb
  • 热度 28
    2019-8-14 16:05
    4534 次阅读|
    0 个评论
    在ModelSim里添加带路径的文件
    最近在仿真Xilinx的PCIe,用的是其xapp1052下的参考工程,这个工程基于vivado,默认使用vivado自带的仿真器,如果转换成ModelSim的话,vivado会后台自动生成一系列脚本文件,仿真的时候直接运行批处理文件,该批处理文件会自动调用脚本启动ModelSim进行仿真。 下图是编译源文件的时候vlog使用的语法 由于xapp1052这个设计并不完备,我需要对其进行修改,但是为了让自己能够回到初始状态,又不希望在这个项目上直接修改,所以想到将其pcie_7x_0_example.srcs目录下所有文件拷贝到其它地方再进行修改并仿真。问题是改动位置后上述vlog语法找寻文件的路径就变了,需要做如下更正: 学过dos系统都知道,“..”表示上一级目录,“.”表示本级目录,如果源文件都在脚本目录下,就不需要指定路径。其实还有一个最笨的办法,就是给每个文件提供完整的绝对路径。
  • 热度 25
    2018-5-13 19:34
    3195 次阅读|
    0 个评论
    使用ModelSim遇到的问题
    排版有问题的话看这里 Quartus 相关问题点击这个链接 DSP Builder 相关问题点击这个链接 Error: Could not find altera.alt_dspbuilder_package. 解决方法自然是添加包了。 1. 把\quartus\libraries\vhdl\altera目录下的alt_dspbuilder_package.vhd文件复制到\modelsim_ase\altera\vhdl\src\altera目录下。 2. 然后再对Modlesim里库文件altera进行compile,选中alt_dspbuilder_package.vhd文件进行compile,从而把alt_dspbuilder_package添加进来,重新启动即可。 具体操作如图,记得要 选择altera库 再编译 编译完成后会把alt_dspbuilder_package添加到altera库中,然后就可以仿真DSP Builder的项目了
  • 热度 23
    2011-3-23 17:55
    5208 次阅读|
    2 个评论
    Abstract 本文介紹使用ModelSim做前仿真,並搭配Quartus II與ModelSim作後仿真。 Introduction 使用環境:Quartus II 8.1 + ModelSim-Altera 6.3g 由於FPGA可重複編程,所以不少開發人員就不寫testbench,直接使用Quartus II的programmer燒進開發板看結果,或者使用Quartus II自帶的Waveform Editor進行仿真,這種方式雖然可行,但僅適用於小project,若project越寫越大,Quartus II光做fitter就很耗時間,一整天下來都在作Quartus II編譯。 比較建議的方式,還是學ASIC那招:『寫testbench先對每個module作前仿真,再對每個module作後仿真,最後再燒入FPGA測試。』 這種方式的優點是: 1.testbench比waveform editor可更靈活的描述電路規格。 2.testbench可使用Verilog的系統函數,如$display()、$fwrite()...等。 但要使用testbench作仿真,單獨Qaurtus II並無法做到,就得使用ModelSim了,這又牽涉到『前仿真』與『後仿真』。 所謂的『前仿真』,就是Quartus II的Functional Simulation,不考慮電路的門延遲與線延遲,重點在觀察電路在理想環境下的行為與設計構想是否一致 。由於沒經過fitter階段,所以模擬速度很快。 前仿真結果正確,並不表示將來結果結果正確,但若前仿真結果不正確,則將來結果一定不正確 。 所謂的『後仿真』,就是Quartus II的Timing Simulation,考慮了電路的門延遲與線延遲,由於經過fitter階段,所以模擬結果最為精準。但fitter在Quartus II編譯需耗費很多時間, 所以建議『前仿真』正確後,再考慮『後仿真』 。 使用Quartus II的waveform editor作前仿真與後仿真,我就不再多談,本文主要是談如何使用ModelSim-Altera作前仿與後仿。 1.使用GUI的方式在ModelSim-Altera作前仿真。 2.使用DO macro在ModelSim-Altera作前仿真。 3.使用Quartus II + ModelSim-Altera作後仿真。 Counter.v / Verilog 1 /* 2 (C) OOMusou 2008 http://oomusou.cnblogs.com 3 4 Filename    : Counter.v 5 Compiler    : Quartus II 8.1 / ModelSim-Altera 6.3g 6 Description : simple counter 7 Release     : 01/30/2009 1.0 8 */ 9 10 `timescale 1ns / 100ps 11 12 module Counter ( 13 input         CLK, 14 input         RST_N, 15 output CNT 16 ); 17 18 reg cnt; 19 assign CNT = cnt; 20 21 always @( posedge CLK, negedge RST_N) begin 22 if ( ! RST_N) 23     cnt = # 5 4 ' h0; 24 else 25     cnt = # 5 cnt + 1 ' b1; 26 end 27 28 endmodule 一個很簡單的counter,從0數到15重複數。由於要使用ModelSim作前仿,所以在reg做了delay,不過這在Quartus II作合成時會自動忽略, 因為delay並非可合成的Verilog。 一般寫給FPGA的RTL,都不會去設定timescale,不過由於要用ModelSim作前仿,所以要加上timescale。 Counter_tb.v / Verilog 1 /* 2 (C) OOMusou 2008 http://oomusou.cnblogs.com 3 4 Filename    : Counter_tb.v 5 Compiler    : Quartus II 8.1 / ModelSim-Altera 6.3g 6 Description : simple counter testbench 7 Release     : 01/30/2009 1.0 8 */ 9 10 `timescale 1ns / 100ps 11 12 module Counter_tb; 13 14 reg         clk; 15 reg         rst_n; 16 wire cnt; 17 18 parameter PERIOD = 20 ; 19 20 Counter counter ( 21 .CLK(clk), 22 .RST_N(rst_n), 23 .CNT(cnt) 24 ); 25 26 initial begin 27 # 0 clk   = 1 ' b0; 28      rst_n = 1 ' b0; 29 # 5 rst_n = 1 ' b1; 30 end 31 32 // 50MHz 33 always #(PERIOD / 2 ) clk = ~ clk; 34 35 endmodule 一個很典型的testbench,唯一要注意的是第28行。    rst_n = 1 ' b0; # 5 rst_n = 1 ' b1; 之所以一開始要將rst_n為0,是因為ModelSim與Quartus II對reg初始值看法不一樣,Quartus II認為reg初始值為0,但ModelSim認為reg初始值為x,所以需要rst_n=1'b0將reg歸0,這樣用ModelSim前仿才會正確,但ModelSim後仿可以不這樣做,因為Quartus II會先做處理。 不過為了前仿與後仿都使用同一個testbench,建議加上rst_n = 1'b0設定reg初始值為0。 有了RTL與testbench之後,來看看如何使用ModelSim作前仿與後仿。 1.使用GUI的方式在ModelSim-Altera作前仿真 ModelSim提供了全GUI的方式,只要使用操作的方式,就能做前仿。 Step 1: File - New Project Step 2: Add Existing File 將Counter.v與Counter_tb.v加入 Step 3: Compile All 選擇Counter.v或者Counter_tb.v,按滑鼠右鍵,選擇Compile-Compile All,編譯所有Verilog code。 編譯成功。 Step 4: Simulate 在Library tab選擇Counter_tb,按滑鼠右鍵,選Simulate。 Simulate成功。 Step 5: Add Signal to Wave 將欲觀察的信號從Objects加入Wave,加入clk,rst_n與cnt。 最後結果。 Step 6: Run 300ns 最後前仿結果。 2.使用DO macro在ModelSim-Altera作前仿真 ModelSim也提供macro的方式,以上所有的GUI操作,都可以使用TCL script描述。 Step 1與Step 2與之前一樣。 Step 3: Execute Macro Counter_wave.do / ModelSim Macro 1 # compile 2 vlog Counter . v 3 vlog Counter_tb . v 4 5 # simulate 6 vsim Counter_tb 7 8 # probe signals 9 add wave * 10 11 # 300 ns 12 run 300 ns 最後前仿結果。 3.使用Quartus II + ModelSim-Altera作後仿真 Step 1: 設定Quartus II使用ModelSim-Altera作後仿真 Assignments - Settings - Category :EDA Tool Settings - Simulation:Tool name:ModelSim-Altera 選取Run gate-level simulation automatically after compilation Format for output netlist:Verilog Time scale:1 ns Step 2: 設定testbench 在同一頁的NativeLink settings選擇Compile test bench,按下TestBenches..加入Counter_tb.v。比較詭異的是,Test bench name、Top level module in test bench與Design instance name in test bench無法自己抓到,必須自己填。 Step 3: 編譯與模擬 Processing - Start Compilation 完整程式碼下載 Counter.7z Conclusion 本文介紹了使用ModelSim作前仿真與後仿真,善用ModelSim,將可加快FPGA與SOPC的開發。 转自:http://hi.baidu.com/davinzhan/blog/item/5ad9e21660aa4659f2de3278.html
相关资源
  • 所需E币: 1
    时间: 2022-9-29 20:18
    大小: 10.76MB
    上传者: 西风瘦马
    ModelSim使用技术.pdf
  • 所需E币: 0
    时间: 2022-5-5 17:47
    大小: 39.1KB
    UsingModelSim
  • 所需E币: 1
    时间: 2022-3-30 18:02
    大小: 258KB
    上传者: Argent
    ModelSim轻松入门
  • 所需E币: 0
    时间: 2021-4-24 18:17
    大小: 569.86KB
    上传者: Argent
    随着FPGA技术的不断发展,许多消费类产品都嵌入了FPGA程序,ZYNQ架构属于主流,搜集的部分有关FPGA学习资料,希望对您有所帮助,欢迎下载。
  • 所需E币: 0
    时间: 2021-4-24 18:17
    大小: 281.49KB
    上传者: Argent
    随着FPGA技术的不断发展,许多消费类产品都嵌入了FPGA程序,ZYNQ架构属于主流,搜集的部分有关FPGA学习资料,希望对您有所帮助,欢迎下载。
  • 所需E币: 0
    时间: 2021-4-24 19:07
    大小: 374.23KB
    上传者: Argent
    随着FPGA技术的不断发展,许多消费类产品都嵌入了FPGA程序,ZYNQ架构属于主流,搜集的部分有关FPGA学习资料,希望对您有所帮助,欢迎下载。
  • 所需E币: 0
    时间: 2021-4-24 19:32
    大小: 1.27MB
    上传者: Argent
    随着FPGA技术的不断发展,许多消费类产品都嵌入了FPGA程序,ZYNQ架构属于主流,搜集的部分有关FPGA学习资料,希望对您有所帮助,欢迎下载。
  • 所需E币: 0
    时间: 2021-4-24 19:32
    大小: 903.5KB
    上传者: Argent
    随着FPGA技术的不断发展,许多消费类产品都嵌入了FPGA程序,ZYNQ架构属于主流,搜集的部分有关FPGA学习资料,希望对您有所帮助,欢迎下载。
  • 所需E币: 0
    时间: 2021-4-24 19:32
    大小: 84.5KB
    上传者: Argent
    随着FPGA技术的不断发展,许多消费类产品都嵌入了FPGA程序,ZYNQ架构属于主流,搜集的部分有关FPGA学习资料,希望对您有所帮助,欢迎下载。
  • 所需E币: 0
    时间: 2021-4-24 19:32
    大小: 288.5KB
    上传者: Argent
    随着FPGA技术的不断发展,许多消费类产品都嵌入了FPGA程序,ZYNQ架构属于主流,搜集的部分有关FPGA学习资料,希望对您有所帮助,欢迎下载。
  • 所需E币: 0
    时间: 2021-4-24 19:32
    大小: 31KB
    上传者: Argent
    随着FPGA技术的不断发展,许多消费类产品都嵌入了FPGA程序,ZYNQ架构属于主流,搜集的部分有关FPGA学习资料,希望对您有所帮助,欢迎下载。
  • 所需E币: 5
    时间: 2019-12-26 00:36
    大小: 93.95MB
    上传者: rdg1993
    ModelSimSEVer6.0……
  • 所需E币: 4
    时间: 2019-12-28 21:37
    大小: 314.38KB
    上传者: 2iot
    介绍了HDLC协议控制器的IP核方案及实现方法,分别对发送和接收模块进行了分析,给出了仿真波形图.该设计采用VerilogHDL语言进行描述,用ModelSimSE6.0进行了功能仿真.HDLC协议控制器IP核昀设计与实坝王雅荣,鲍民权,邱智亮(西安电子科技大学ISN国家重点实验室,陕西西安710071)摘要:介绍了HDLC协议控制器的IP核方案及实现方法,分别对发送和接收模块进行了分析,给出了仿真波形图。该设计采用VerilogHDL语言进行描述,用ModelSimSE6.O进行了功能仿真。关键词:HDLC协议IP核VerilogHDL语言HDLC(HighLevelDataLinkContml)协议是通信领地址字段用于标识接收站的地址。控制字段实现了域中应用最广泛的协议之一,它是面向位的高级数据HDLC的许多重要功能,根据其最前面两个位的取值,可链路控制规程,具有差错检测功能强大、高效和同步传将HDLC帧划分为:信息帧、监督帧和无编号帧。信息字输的特点。目前市场上有很多专用的HDLC芯片,但这段为所要传……
  • 所需E币: 3
    时间: 2019-12-25 16:59
    大小: 96.63KB
    上传者: rdg1993
    不错的资料,与大家分享希望以后大家能够把好的资料分享,共同进步!西北狼EDA工作室Modelsimse中创建altera的仿真库*************************************************modelsimversionnumber-----modelsimse5.8b****author:西北狼****QQ:11423644QQ:58948391*************************************************一、创建altera的仿真库a)路径选择启动modelsimse仿真工具,在主窗口中选择【file】→【changedirectory】命令,将工作目录改变到你想存放仿真库的目录,点击【ok】.b)创建仿真库在生窗口中选择【file】→【new】→【library】命令,在弹出的【createanewlibrary】窗口中将选项【create】设置为【anewlibraryandalogicalmappingtoit】,在【libryrname】和【li……
  • 所需E币: 4
    时间: 2019-12-25 16:59
    大小: 56KB
    上传者: rdg1993
    不错的资料,与大家分享希望以后大家能够把好的资料分享,共同进步!怎样用modelsim做后仿(编译工具采用quatus)step1:在qurtus改变编译选项:assignments->EDAtoolsetting:选择verilog还是vhdl[pic]step2:编译。你会在你的工程所在目录看到一个simulation的目录,这里面有你生成的网表文件和标准延时文件step3:在目录:quartus\eda\sim_lib找到你选用器件对应的库文件,将库文件和网表文件以及延时文件和testbench文件放在同一目录,在modelsim里进行编译库文件、网表文件以及bench文件step4:编译成功后,然后进行load,在loaddesign的时候,需要制定延时文件的路径,以及延时文件作用的区域,延时文件的左右区域就是testbench里面调用顶层文件取的名字[pic]step5:打开signal窗口(view->signal)和wave窗口(view->signal),将你希望仿真的信号添加进去。Step:仿真。。。……
  • 所需E币: 5
    时间: 2019-12-25 16:37
    大小: 882.81KB
    上传者: 二不过三
    基本的modelsim6.0使用手册,以及与cgywin相关的命令ModelSim使用教程1www.fpga.com.cn典型的PLD设计流程2www.fpga.com.cn典型的PLD流程设计规范修改设计设计输入RTL仿真设计综合布局和布线门级仿真时序分析系统上验证系统产品3www.fpga.com.cn典型的PLD设计流程设计输入……
  • 所需E币: 3
    时间: 2019-12-25 16:34
    大小: 972.63KB
    上传者: quw431979_163.com
    CICXilinxFPGAtraining-simulationflowwithModelSimCICXilinxFPGAtrainingJuly20041Aftercompletingthissection,youwillbeableto:QuicklyrealizetheXilinxFPGASimulationFlowwithModelsimUseHDLBenchertogeneratedesigntestbenchVerifydesignthroughthesimulationprocess23ModelSimDesignEntryXST,Synplicity,…ISEDesignCreationInputs:LegacyHDL,legacyEDIFschematic,……
  • 所需E币: 5
    时间: 2019-12-25 16:23
    大小: 18.89MB
    上传者: givh79_163.com
    此套FPGA视频教程由华清远见FPGA师资团队老师精心制作,非常适合FPGA初学者,是华清远见推出的第一期嵌入式公益活动资料集锦,共分7讲(包括视频以及PDF文档),推荐!!第1讲、FPGA设计基础(PDF、视频)第2讲、FPGA设计入门(视频、课后习题)第3讲、VerilogHDL基础(PDF、视频、课后习题)第4讲:VerilogHDL中的组合逻辑设计方法(PDF、视频)第5讲:ModelSim软件使用方法和技巧(视频)第6讲、Sopc硬件系统(视频)第7讲、sopc软件系统(视频)……
  • 所需E币: 3
    时间: 2019-12-25 16:00
    大小: 235.89KB
    上传者: 二不过三
    基于MODELSIM与ISE的FPGA设计全流程FPGA设计全流程:Modelsim>>Synplify.Pro>>ISE第一章Modelsim编译Xilinx库第二章调用XilinxCORE-Generator第三章使用Synplify.Pro综合HDL和内核第四章综合后的项目执行第五章不同类型结构的仿真第一章Modelsim编译Xilinx库本章介绍如何编译HDL必须的Xilinx库和结构仿真。创建将被编译库的目录在编译库之前,最好先建立一个目录(事实上必须建立一个目录),步骤如下。(假设Modelsim的安装目录是“$Modeltech_6.0”,ISE的安装目录是“$Xilinx”)◆在“$Modeltech_6.0/”目录下建立一个名为XilinxLib的文件夹;◆启动Modelsim后,从“File”菜单项中点击“ChangeDirectory”并指定到刚刚建立的那个文件夹“XilinxLib”;◆接下来要做的事情是将Xilinx库编译到“XilinxLib”文件夹中。有三个库需要被编译。它们分别是“simprims”,“unisims”和“XilinxCoreLib”;(所有这些库文件都在“$Xilinx/verilog/src”目录下)◆点击Modelsim中的“Workspace”窗口,建立一个名为Xilinx_Co……
  • 所需E币: 5
    时间: 2019-12-25 16:00
    大小: 100.3KB
    上传者: 16245458_qq.com
    怎样写testbench怎样写testbench本文的实际编程环境:ISE6.2i.03ModelSim5.8SESynplifyPro7.6编程语言VHDL在ISE中调用ModelSim进行仿真一、基本概念和基础知识Testbench不仅要产生激励也就是输入,还要验证响应也就是输出。当然也可以只产生激励,然后通过波形窗口通过人工的方法去验证波形,这种方法只能适用于小规模的设计。在ISE环境中,当前资源操作窗显示了资源管理窗口中选中的资源文件能进行的相关操作。在资源管理窗口选中了testbench文件后,在当前资源操作窗显示的ModelSimSimulator中显示了4种能进行的模拟操作,分别是:SimulatorBehavioralModel(功能仿真)、SimulatorPost-translateVHDLModel(翻译后仿真)、SimulatorPost-MapVHDLModel(映射后仿真)、SimulatorPost-Place&RouteVHDLModel(布局布线后仿真)。如图1所示:图1lSimulatorBehavioralModel也就是所说的功能仿真、行为仿真、前仿真。验证功能是否正确,这是设计的第一步。功能仿真正确的程序不一定能被正确综合,也就是硬件实……