困住整整一周了,工作进行不下去,中午偶遇导师,指导意见是有两种可能: 1.  FPGA编译器优化代码,可以考虑把综合过程中所有的warning排查一下 2.  verilog里有不可综合的语句. 又及,原有的功能模块完全正确,自己改写的不行,导师说那是自己写的时序不对,仿正确的模块看modesim里自己写的和正确的模块时序差在哪里,修改自己的. 添加各种(*keep="true"*),未果 排查所有warning,没看到会和这个问题相关 相信大神导师写的代码不会有问题 一下午加晚上各种…
Modelsim SE 仿真 ALTERA FPGA IP 最近,有几个朋友问过我是不是有新版本的Modelsim altera,其原因是 Qii 升级为新版本的,但是没配套的modelsim,没办法仿真程序中的IP,但是我还一直坚守modelsim SE6.5,现在简单讲下如何用SE版本的仿真IP步骤,其实方法还是很多种,但是感觉下面这方法还是一次工作长期受益的.希望能给遇到这个问题的朋友一点帮助. 其实主要就是编译一次ALTERA的ip文件,然后仿真的时候把库加载进来就OK了. 打开mode…
之前遇到一个很苦恼的问题,jmeter链接数据库,数据库填写的资料全部都没有问题,在其他电脑jmeter上都可以正常链接,但是在我的电脑上运行却总是不出结果, 用mysql链接数据库也一切正常,一直找不到原因.查看报错信息, 还以为是jmeter版本不对,于是重新换了几个jmeter版本,最后还是不行. 最后查看我的jdk版本,原来我的jdk版本不匹配导致,我的jdk版本是1.7,可能是由于1.7的jdk有些地方不兼容,后来更换了1.8的jdk,之后,在下载jmeter,之后运行就正常了.原来是…
声明:本文为黑金动力社区(http://www.heijin.org)原创教程,如需转载请注明出处,谢谢! 黑金动力社区2013年原创教程连载计划: http://www.cnblogs.com/alinx/p/3362790.html <FPGA那些事儿-Modelsim仿真技巧>REV1.0 PDF下载地址: http://www.heijin.org/forum.php?mod=viewthread&tid=22419&extra=page%3D1 前 言 第一章 仿真的…
本文章详细介绍了怎样用ModelSim仿真Verilog,虽然只是很简单的一个二分频器的例子,但却正式小白入门所需要的. 本教程以ModelSim SE 10.4为例 1. 新建工程 file->new->project,输入工程名 例如half_clk 2. 新建文件 新建二分频器模块文件和testbench文件,分别为half_clk和half_clk_tb,注意type选择Verilog. 3. 编写模块文件和激励文件内容 half_clk.v half_clk 1 2 3 4 5 6…
1. 算法介绍 CORDIC(Coordinate Rotation Digital Computer)算法即坐标旋转数字计算方法,是J.D.Volder1于1959年首次提出,主要用于三角函数.双曲线.指数.对数的计算.该算法通过基本的加和移位运算代替乘法运算,使得矢量的旋转和定向的计算不再需要三角函数.乘法.开方.反三角.指数等函数,计算向量长度并能把直角坐标系转换为极坐标系.因为Cordic 算法只用了移位和加法,很容易用纯硬件来实现,非常适合FPGA实现. CORDIC算法完成坐标或向量…
之前写了两篇关于Modelsim仿真的blog,其中模块管脚的命名可能让人觉得有些奇怪,其实不然,之前的两篇内容都是为了仿真SDRAM操作做铺垫的. 由于SDRAM的仿真过程相对比较复杂,也比较繁琐.故可能需要不止一篇blog来完成. 在开始仿真之前,如果对SDRAM原理以及时序不是很了解的朋友,推荐看一下如下这篇文章: SDRAM-高手进阶,终极内存技术指南——完整进阶版 OK,下面正式开始仿真的过程. 通过看内存技术指南,我们大概可以总结出SDRAM的工作过程: 上电后进入200us的输入稳…
ModelSim仿真入门之一:软件介绍 编写这个教程之前,为了让不同水平阶段的人都能阅读,我尽量做到了零基础入门这个目标,所有的操作步骤都经过缜密的思考,做到了详细再详细的程度. 如果您是FPGA开发方面的初学者,那么这个教程一定能够帮助你在仿真技术上越过新人的台阶:如果您是FPGA开发的老手,这篇文档也并非对您没有帮助,您可以把教程发给其他刚入门的同事,免去您亲自上阵指导的麻烦,把主要的精力放在更有价值的地方. 一.FPGA设计仿真验证简介 严格来讲,FPGA设计验证包括功能仿真.时序仿真和电…
前两天在群里看到有朋友说Vivado级联Modelsim仿真出现修改设计代码后重新run do文件,波形没有随着代码修改而改变,这个问题博主之前没有注意到,因为把Vivado和Modelsim级联好后还没有试过仿真过,不过用ISE级联好后,修改设计代码,可以直接重新run do文件进行仿真,不必关闭Modelsim. 对于这个问题博主打开Vivado工程目录下生成的do文件看了下. 我们需要run的是这个xxx_simulate.do文件,打开看下里面内容. 发现这里面没有,编译库和编译文件的脚…
1. 在QuartusII中生成rom的初始化文件,可以是hex,也可以是mif.MIF文件的格式很简单明了,所以我一向都是用MIF. 2.下载convert_hex2ver.dll文件,convert_hex2ver.dll就是把hex文件转换成ModelSim 能认出来的ver文件的动态链接库文件.新版本的QuartusII中已经不带此文件了.需要在网上找一份.(老版本 的软件里带了此文件(路径:quartusXX/eda/mentor/modelsim/),应当可以用.) 3.将conve…
这两天做综合后仿真,发现FPGA器件库又不会加了,无奈上网找方法.说起来不好意思,很早就接触Modelsim这个仿真软件了,可是没有好好琢磨.把这两天找的方法贴出来,再加上自己的理解,以后忘了可以上博客翻翻,也适合新手看.(这个办法是quartusII综合完后启动Modelsim仿真综合后的网表,要是quartusII里直接启动Modelsim需不需要加库不清楚,我没试过) -----------------------------------转载分割线---------------------…
在使用Verilog编写有限状态机等逻辑的时候,状态机的各个状态通常以参数表示(如IDLE等).当使用ModelSim仿真的时候,状态机变量在wave窗口中以二进制编码的形式显示,如下面所示,这种显示形式不是很直观,但我们可以使用ModelSim提供的命令将状态机变量以“文本”形式的参数名显示,从而有利于调试. 下面以一个实例来说明. 代码来源:http://www.cnblogs.com/oomusou/archive/2011/06/05/fsm_coding_style.html 源文件:…
modelsim仿真include文件会出现找不到文件的情况,这是因为include文件路径有两种,一种是相对路径,另一种是绝对路径. 相对路径: 如果 ‘include "primitive.v"文件放在测试文件tb的当前目录中,则在工程.v文件中只需写 ‘include "primitive.v"就可以仿真了. 绝对路径: 如果 ‘include "primitive.v"文件没放在测试文件tb的当前目录中,则在工程.v文件中需写如 `inc…
在quartus调用modelsim仿真过程中,出现了一个错误,如下所示: Check the NativeLink log file I:/Quartus11.0/Myproject/testi_nativelink_simulation.rpt for detailed error message 如果modelsim在quartus中的路径设置对的,那么就是.v程序有问题,或程序中含有中文字体没注释掉.…
modelsim 仿真时出现无限迭代(iteration reach limitation) 出现这种故障的原因:  一般都是代码里出现的组合逻辑无限循环或者组合逻辑A产生signal_A,signal_A又通过组合逻辑产生signal_B,signal_B又通过组合逻辑产生signal_C,signal_C又通过组合逻辑产生signal_A(这样就形成了组合逻辑的无限循环),就会导致这个故障出现.类似: always(*) begin signal_A=~signal_A; end 出现这种故…
好久没再用过modelsim,都忘的一干二净了.刚换了份工作,又要重新拾起来,不过现在感觉modelsim的仿真其实是比较快的,很有用处.再者这么长时间老是学了忘,忘了再学,觉得真浪费时间,平时确实应该好好总结下的,关于modelsim的仿真这一次一定要系统的总结出来,顺便再练下写文档的能力. modelsim仿真方法1:用modelsim直接建立工程. 1.建工程 输入工程名,选择工程路径. 添加源文件及测试文件. 在这里为什么要选择第二项,我也不在了然的,改天再查下. 文件添加进来之后就是编…
1.modelsim经常遇到数据位宽不相等的情况,这样往往仿真时是不会出数据的,如果用parameter定义了数据的位宽, 要注意实际的位宽数大于parameter定义参数能表示的位宽时,如: parameter WIDTH = 5'd46,要注意5位的数据宽度最大能表示的数是31,46已经溢出. 2.# ** Warning: (vsim-3015) F:/Company_Prj/Date201409/LowCost/ICS_MyPrj/Src/aic_fir_2ch_64x.v(182): …
2021年11月15日 00 安装包/版本 我是提前在网上下好的(但这一点也给我的实验造成了"麻烦"),用的是Modelsim SE-64 2020.4版本的,学校实验室的似乎不同.但最终没有太大影响. 01 配置环境步骤 学校有一个文档,在机房电脑照做就行.我因为是自己下载的,配置与机房软件有所不同,所以又平添了很多麻烦. 01-0 verilog文件 这个代码可以在很多地方编写:Visual Studio Code里有Verilog的插件:还可以有更强大的语言编辑器:Nodepad…
原文:SQL Server中存储过程比直接运行SQL语句慢的原因 在很多的资料中都描述说SQLSERVER的存储过程较普通的SQL语句有以下优点: 1.       存储过程只在创造时进行编译即可,以后每次执行存储过程都不需再重新编译,而我们通常使用的SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度. 2.       经常会遇到复杂的业务逻辑和对数据库的操作,这个时候就会用SP来封装数据库操作.当对数据库进行复杂操作时(如对多个表进行 Update,Insert,Query…
1.除手动使用开始菜单自启动或者程序启动TOMCAT时TOMCAT一闪而过,这时候是发生了错误,这时候我们打开BIN目录下的“startup.bat”文件,编辑,在结尾添加pause命名,这样在CMD下执行startup.bat时就会出错停止,这时候我们就知道是什么错误了. 2.运行tomcat/bin目录下的startup.bat时报错:the CATALINA_HOME environment variable is not defined correctly 碰到这个问题时的第一反应是添加…
运行spark官方的graphx 示例 ComprehensiveExample.scala报错解决 在Idea中,直接运行ComprehensiveExample.scala,报需要指定master异常. 修改源码:指定master为local模式, val spark = SparkSession .builder .appName(s"${this.getClass.getSimpleName}").master("local[2]") .getOrCreat…
在运行vue项目时,执行npm install 报错,导致后续的执行报各种错误,根据报错,尝试了网上的各种办法,最后发现时网络问题下载失败导致,解决办法: 安装cnpm==>npm install cnpm -g –registry=https://registry.npm.taobao.org cnpm与npm区别: cnpm跟npm用法完全一致,只是在执行命令时将npm改为cnpm. 使用cnpm install 解决问题(在使用cnpm前将原先报错的模块删除)…
我的程序: #include<iostream> #include<cctype> #include<string> #include<vector> using namespace std; int main() { string s; cin>>s; int bl,m; cin>>bl; cin>>m; int count=0; vector<string>s1; for(int i=0;i<m;i+…
#include<stdio.h>#include<nids.h>#include<string.h>#include <sys/socket.h>#include <netinet/in.h>#include <arpa/inet.h>#include<stdlib.h>#include<netinet/ip.h>#include<arpa/inet.h>#include<netinet/t…
网上的关于DO文件的编写好像资料不多,比较杂,所以本人总结一下常用的简单语法,方便大家查看.其实本人也刚接触DO文件没多久,有纰漏很正常,欢迎指正批评,互相学习.PS:写得有点乱   还有一个值得注意的是 我在看到这篇文章的时候我正在仿真一个verilog文件,文件中调用了一个ROM , 但是我怎么仿真 rom的输出文件都有问题, 经过一个QQ好友的指点,我发现竟然是我 QUARTUS 下考过来的库文件 有问题, 自此提醒遇到过此问题 但还没有解决的同学.. 一.DO文件的简介和工作方式 DO文…
网上的关于DO文件的编写好像资料不多,比较杂,所以本人总结一下常用的简单语法,方便大家查看.其实本人也刚接触DO文件没多久,有纰漏很正常,欢迎指正批评,互相学习.PS:写得有点乱   还有一个值得注意的是 我在看到这篇文章的时候我正在仿真一个verilog文件,文件中调用了一个ROM , 但是我怎么仿真 rom的输出文件都有问题, 经过一个QQ好友的指点,我发现竟然是我 QUARTUS 下考过来的库文件 有问题, 自此提醒遇到过此问题 但还没有解决的同学.. 一.DO文件的简介和工作方式 DO文…
对于 lattice  Diamond 与 modelsim 的联合仿真,我总结了一句话,那就是—— 难者不会,会者不难.  也许刚开始 觉得 摸不着 头脑,但是 一旦学会 感觉还是很简单和直观的. 直接进入正题, 仿真第一步 : 建立仿真库. 在正确安装了Diamond  和 modelsim  之后,就是先要建立自己的 lattice 仿真的库文件: 1.打开 modelsim 的 安装目录,在其目录下 打开 modelsim.ini 的属性,去除其只读性. 2.在modelsim 安装目录…
如果在不需要波形,只需要快速知道结果的情况下,可以用优化选项.这适用于做大量case的仿真阶段.因为这一阶段多数case都是通过的,只需要快速确认即可,然后把没通过的case拿出来做全波形的仿真调试. 根据“Quick Reference Guide for Increasing Performance”,经典的办法是 3-step method1) Compile2) Optimize3) Simulate 脚本如下vlib workvlog *.vvopt -o testbench_opt…
①仿真精度越高,仿真效率月底. 仿真时采用`timescale 1ns/1ns比采用1ns/100ps的仿真效率高 simulation was two billion ns. ②clock generation coding tips (from<A BFM Simulation Strategy for Verilog>) ②减少层次结构 在设计中层次结构越少,仿真速度越快,这是因为参数在module中通过端口传递会消耗仿真器的时间 ③进程越少,仿真效率越高 代码中出现的进程越少,仿真越快…
转自:http://www.cnblogs.com/emouse/archive/2012/07/08/2581223.html Quartus 中调用modelsim的流程 1. 设定仿真工具 assignments - setting - EDA tool setting - simulation 选择你需要的工具. 2. 自动产生测试激励文件模板: processing - start - Start test bench template writer  我们点击之后系统会自动在目录:当…