在xilinxise12.2环境下用自带的isim仿真详解

yijingjing17 yijingjing17     2022-12-10     782

关键词:

    学习FPGA写的第一篇文档,算是人生的一个里程碑,现在脑子里是当年一个人在一个实验室默默学习的场景,但最后依靠着这项技能养活自己,感恩

     最近项目用到FPGA,也开始了FPGA的学习历程,硬件为红色飓风的E45,FPGA是spartan6系列的,软件开发环境是xilinx ise12.2的版本。

     之前一直在做单片机,有一定的C基础,对FPGA的学习也算快吧,花了一天的时间移植了一个FPGA的串口程序,测试通过,收发正常,心里美滋的,在第三天的时候要做一个SPI的时序,由于程序是自己写的,所以对时序没把握,就需要仿真,看一下波形,可谁知道这一仿真就是2天的时间,搞得我头疼闹热的,到处查资料,看网站,弄得我好不痛苦啊,明明很简单的事情,却花了两天的时间,哎,在此也深感一个人学习的痛苦,也感到资源的可贵啊,为了我的两天时间,我决定写下记录,以此让跟我一样遇到问题的人能够少花时间。

以下是我从网上收集的在xilinx ise12.2 环境下用自带的isim仿真步骤:                

http://wenku.baidu.com/view/fce6e53c0912a21614792981.html

该链接的资料是OK的,但是有些小的细节需要说了,同时也我遇到的问题。

1.  在生成verilog hex fixture 之后,一定要记得在Add stimulus here之后加上你的动作代码,要不然仿真是不会有动作的,问题很幼稚,但是他花了我2个小时的时间,回头看了好几遍文档在注意到有自己要添加的东西。

一般的添加格式为:

initial

  begin

        clk= 1'b0;

        rst=    1'b0;

        #5

        clk= 1'b1;

        rst=    1'b1;

  end

always #10clk = ~clk;

2. 对于isim的界面,需要用好几个工具。


1所指的10us的选项,一般默认都很小,所以要根据具体的时间自己修改,小问题,也花了我不少时间

2所指的功能键是一次运行10us,很有用的

3所指的放大器在看波形的很好用

如果仿真出现红线和蓝线,证明仿真失败!


这是我两天以来出现的最多的仿真界面,到现在才明白如果信号不是绿色的证明都是有问题的,仿真是失败的!之所以会出现这种问题都是因为自己的设计功底太差。

3.仿真是程序应该注意的问题.

以下为一段可以正确运行的程序:

module led_run(iClk,oLed);

input iClk;

output [3:0] oLed;

reg [3:0] oLed;

reg [24:0] count;

reg [1:0] state;

wire clk;

 

always @ (posedge iClk)

count=count+1;

assign clk=count[24];

always @ (posedge clk)

begin

case(state)

2'b00:   oLed<=4'b0001;

2'b01:   oLed<=4'b0010;

2'b10:   oLed<=4'b0100;

2'b11:   oLed<=4'b1000;

endcase

state=state+1;

end

endmodule

但是仿真是失败的,原因来自于:没有rst信号。对于count的初始值仿真器无从取得,导致仿真失败。

应该对其做以下修改:

module led_run(iClk,oLed,rst);

input iClk;

input rst;

output [3:0] oLed;

reg [3:0] oLed;

reg [1:0] count;

reg [1:0] state;

wire clk;

 

always @ (posedge iClk or negedge rst)

begin

     if(!rst)

     count = 0;

     else

     count=count+1;

end

assign clk=count[1];

 

always @ (posedge clk or negedge rst)

begin

if(!rst)

     oLed <=4'b0001;

else

     begin

          case(state)

          2'b00: oLed<=4'b0001;

          2'b01: oLed<=4'b0010;

          2'b10: oLed<=4'b0100;

          2'b11: oLed<=4'b1000;

          endcase

          state=state+1;

     end

end

endmodule

对于FPGA的仿真而言,每个值都应该有其初始值,而我恰恰是忽略了这一点。

最后要注意的地方:


仿真时要点击生产的verilog hex fixture文件,而不是其本身的V文件

 

                                                yi 于2012.02.23

                                                  EMEQ实验室

在xilinxise中生成rom时需要注意的事

  在XilinxISE中生成ROM时,需要指定.coe文件。需要做到两件事。其一,要使用memory_initialization_radix=;memory_initializatoin_vector=;其二,在修改.coe文件之后,必须重新上传,在上传时需要重新选择。否则,即使.coe文件保持原来的... 查看详情

xilinxise如何调用modelsim进行联合仿真

...现内存限制的问题,且仿真器也更加好用。这里介绍一下XilinxISE如何调用Modelsim进行联合仿真。 首先需要用XilinxISE里面的 查看详情

windows10下xilinxise需要注意的事项。

一是安装。可以在Windows10下安装XilinxISE14.7. 详见:https://www.eevblog.com/forum/xilinx/guide-getting-xilinx-ise-to-work-with-windows-8-64-bit/?action=printpage二是运行。有的安装方法在Windows64位下使用ISE32位。在最后下载到器件时会报错。因此, 查看详情

在windows下用vagrant建立lnmp开发环境

1.安装vagrant,vitrualbox2.下载homestead的box包,并添加到vagrant下载地址:https://atlas.hashicorp.com/laravel/boxes/homestead如果这里没有看到下载链接,可以将版本号拼接为如下地址进行下载,即将下面的0.2.6换成下载对应的版本。https://atlas.has... 查看详情

在windows下用vagrant建立lnmp开发环境

1.安装vagrant,vitrualbox2.下载homestead的box包,并添加到vagrant下载地址:https://atlas.hashicorp.com/laravel/boxes/homestead如果这里没有看到下载链接,可以将版本号拼接为如下地址进行下载,即将下面的0.2.6换成下载对应的版本。https://atlas.has... 查看详情

在windows下用脚手架搭建vue环境

做了几个月vue项目,最近两个项目使用脚手架搭建的,确实用脚手架搭建方便了许多,想想以前自己手配的时候,确实是。。。1.在这之前我是默认你已经使用过vue的,也默认你已经安装了node.js2.接着安装全局的vue-cli脚手架,用... 查看详情

xilinxise的时序约束

  使用SynplifyPro加时序约束。综合完毕后,可以在ISE中进行布局、布线。需要用.ucf文件指定布局布线的时钟约束。前者可以比后者小。早期的ISE,两个约束可以继承。现在用的高版本,反而需要分别指定,否则会忽略掉。... 查看详情

如何在windows下用flask做web开发

...dow下不能使用,可以试一下用fastcgi,不过最好还是在linux环境进行开发部署,windows在服务器支持方面不太好。参考技术Aintyear,month,day;while(1)printf("\n请选择你所需要的服务:\n");printf("\n输入1求某个日期对应的... 查看详情

xilinxspartan6驱动ads1278/4

Spartan6驱动ADS1278/4,编译环境为ISE12.2,仿真为isim。以下为ADS1278/4的引脚图:个人总结ADS1278/4的特征:ADS1278/4在芯片设计时,去掉了ADS1278/4的内部寄存器,对于ADS1278/4的工作方式的配置不需要通过通信的方式进行... 查看详情

如何用modelsim对xilinxise产生的网表进行仿真

...用。 下面以综合后仿真为例,讲一下如何用ModelSim对XilinxISE综合后产生的网表进行仿真。 在用XilinxI 查看详情

xilinxise14.7在win732位电脑安装后,当时能打开使用,12小时候打不开

...个bug,求各位大神支招解决方法:以兼容模式安装和运行xilinxise14.7就可以了。解决方法:先下载xilinxise14.7安装包,a、在xilinxise14.7程序右键-属性。b、选择“兼容性。c、在兼容模式下,勾选“以兼容模式运行这个程序”。d、选... 查看详情

vs2012+cad2010开发环境配置

win7系统64位下用VS2012+CAD2010配置开发环境注定失败。acmgd和acdbmgd要求3.5的.Net,在VS2012下配置3.5都编译不过去。将VS2012配置在4.0,在加载自定义dll又会因为用了较新的.net而无法加载。win7系统32位下用VS2012+CAD2010配置开发环境可以成... 查看详情

在windows下用eclipse开发和运行spark程序

我们想现在windows环境下开发调试好spark程序,然后打包,最后放到linuxspark集群环境去运行。Windows环境准备准备好Eclipse开发环境,最好是支持scala语言的。可以到scala的官网上下载:http://scala-lang.org/download/下载Spark... 查看详情

xilinxise不能综合是怎么回是?

定义了一个8倍抽取的模块,但在综合时出现这样的问题:"D:/ProgramFiles/ISEprojects/DDC_4/DDC_4.vhd"line412:Nodefaultbindingforcomponent:<extract_8>.Port<dout>doesnotmatch.ISE安装路径不要有中文名字或者是空格,系统的主题要使用widows... 查看详情

win10下用anaconda安装tensorflow

...在PyCharm中进行学习。但是最近为了使用Python的科学计算环境,我把之前的环境卸载了,并用Anaconda重新安装了TensorFlow,这里介绍一下cpu版本的安装方法。前提检查:在 https://developer.nvidia.com/cuda-gpus 确认你的显卡支持CUDA... 查看详情

android源码环境下用android.mk导入aar(代码片段)

本文讨论两个问题:如何在Android源码环境下使用Android.mk的方式把aar导入apk(apk引用aar的内容);含有so文件的aar在源码环境下编译后so文件不会被打包进apk,如何解决app运行时找不到so的问题。现在新的源码中... 查看详情

win10下xilinxise14.7的edkxps无法打开项目或文件

win10下XilinxISE14.7的EDKXPS无法打开项目或文件win10成功安装xilinxISE14.7,ISE和SDK运行都正常,就是XPS运行后一点打开文件或是项目就弹出xpsgui.exe运行失败的错误,导致XPS没法用。请问一下有人知道是什么问题吗?要怎么解决?参考... 查看详情

在windows环境下用c++完成一个hello/hi网络聊天程序(代码片段)

  经过网络程序设计课程的学习,我们了解了socket网络程序编程,接下来,就要学以致用,完成一个hello/hi的网络聊天程序。  Socket介绍      Socket是应用层与TCP/IP协议族通信的中间软件抽象层... 查看详情