ISE工程建立(含IP核建立)和chipscope实验

可进qq群进行相关Verilog知识交流:1073030956

一个完整工程的建立

  1. 打开软件,点击file——new project。

在这里插入图片描述
2. 建立一个新的工程,工程名为project1_produce_1M-15MHz_Sin_wave_use_chipscope_simulation,next~。
在这里插入图片描述
根据自己使用的板子类型,设置下列参数并点击next–
在这里插入图片描述
在这里插入图片描述
这里是总结界面
在这里插入图片描述
3. 添加source,右键点击new source。
在这里插入图片描述
选择verilog module。文件名输入为top_module
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
写入对应代码并点击保存
在这里插入图片描述
4. 对系统ROM IP核进行调用。
打开XILINX的ISE,NEW SOURCE中选择IP,写好NAME,点击下一步
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
注意生成好的coe文件复制到该工程目录下。
在这里插入图片描述
再进行下一步操作
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
下图表示RAM IP 核已经成功调用。
在这里插入图片描述
5. (引脚绑定)
在这里插入图片描述
在这里插入图片描述
6综合
在这里插入图片描述
在这里插入图片描述

1. ChipScope完整流程

1.点击Synthesize-XST右键ReRun,把整个工程综合一遍。
在这里插入图片描述
2、选中顶层模块名top_module,然后鼠标右键选择New Source选项,在弹出的New Source Wizard界面中选择第二个ChipScope Definition and Connection File选项,并取名字ChipScope_sin_wave(名字可以随便取),然后点击Next
在这里插入图片描述
2、点击Next以后在弹出的一下对话框中点击Finish
在这里插入图片描述
2、Finish点击完毕以后,等一段时间,工程的层次目录就多出来了一个后缀为.cdc的ChipScope文件
在这里插入图片描述
2.双击ChipScope_LED.cdc文件,会弹出下面的界面,使用默认的设置保证Use SRLs和Use RPMs处于选中状态

在这里插入图片描述
Use SRLs(SRL = Shift Register LUT)选项使编译器用移位寄存器的查找表(Shift Register LUTs)代替触发器(flip flops)和乘法器,因此它能有效的减少FPGA内部资源,提高ChipScope性能
  Use RPMs(RPM = Relationally Placed Macros)包含RLOC约束,RLOC定义了潜在设计原语的顺序与结构。Use RPMs让编译器用FMAP,HMAP,ROM,RAM等相关联的宏模块,使逻辑块布局的更加合理,可以有效的提高速度与性能,并节省FPGA资源
6、上一步选择完并点击Next后弹出如下界面,这个界面保持默认设置
在这里插入图片描述
2、继续点击Next弹出如下界面。在这个界面中选择触发端口(Trigger Ports)的数目和它们各自的宽度(Trigger Width),
在这里插入图片描述
说明:
  a、这里建议先把触发宽度(Trigger Width)选择为最大值256,后面等信号添加完毕以后在回来修改为信号的总宽度。这么做是因为在一个比较复杂的设计中,你事先根本不知道自己要抓多少信号,所以等你把要抓的信号都设置好了以后在回来修改这个参数是比较好的选择。
  b、Match Type的类型一共有6种,每种支持的值类型与功能见下表
在这里插入图片描述
在这里插入图片描述
由于本例比较简单,所以Match Type选择为Basic就可以了
  c、Enable Trigger Sequencer选项指定了触发队列的级数,这个值保持默认即可。触发队列的结构图如下图所示
在这里插入图片描述
d、Enable Storage Qualification选项可以通过用户自定义的条件去过滤捕获的数据,这个选项一般让它默认选上
8、点击Next进入Capture Parameter选项卡,这一页在这个例子中保持默认参数即可
在这里插入图片描述
说明:
  a、Data Depth指的是当触发条件满足以后,采样的数据的个数。这个值设置的越大,那么你得到的信息就越多,但相应的占用的FPGA内部的资源也越多。如果你想抓取UART和IIC的数据,由于UART和IIC协议的传输速度较慢,所以这个值必须设置大一点才能看到比较多的信息,而对于SPI这种传输速度比较快的协议,这个值可以设置的小一些。
  b、Data Same As Trigger选项的意思是你抓取的信号既可以触发信号,也可以作为数据信号。这里给大家一个建议,对于inout信号(双向信号),最好选择只作为数据信号,不作为触发信号。
9、点击Next,进入Net Connections选项页
在这里插入图片描述
10、双击红色的CLOCK PORT选项,在弹出的界面中按照下图1、2、3的顺序把时钟信号连上.
在这里插入图片描述
10、连好时钟信号以后点击OK,返回到Net Connections界面,发现CLOCK PORT已经由红色变成了黑色,说明时钟设置成功
在这里插入图片描述
10、接着双击红色的TRIGGER PORTS,在弹出的界面中设置要抓取的信号
在这里插入图片描述
10、要抓取的信号设置完毕以后点击OK返回Net Connections选项页,发现TRIGGER PORTS还是红色的,这是因为我们先前设置的要抓取信号的总宽度是256,而这里我们只抓了15个信号,所以需要返回Trigger Parameter页把Trigger Width设置为15.
在这里插入图片描述
10、设置正确的Trigger Width以后,在回到Net Connections选项页可以发现TRIGGER PORTS已经变成黑色的了,说明信号连接全部设置正确。然后点击Return To Project Navigator
在这里插入图片描述
10、在弹出的Save Project对话框中选择“是”
在这里插入图片描述
至此,整个.cdc文件的设置过程全部设置完毕。
16、接着双击Generate Programming File生成bit文件
在这里插入图片描述
出现下面错误:
在这里插入图片描述
解决方式:
先采取思路1:查看了管脚约束是有些问题,输入大意了两个都分配成了T18,将第二个修改为R18后,仍然出现同样的问题,再三确定约束正确后采取思路 2:
右键Generate Programming File 点击Process Properties
在这里插入图片描述
右下角选择Advanced
在这里插入图片描述
在Other Bitgen Command Line Options中 填入 :-g UnconstrainedPins:Allow
在这里插入图片描述
然后点击OK
在这里插入图片描述
继续生成bit流
在这里插入图片描述
10、连接好开发板的Jtag线并上电。双击图片最后一个选项Analyze Design Using ChipScope打开ChipScope界面如下所示
在这里插入图片描述
10、连接好开发板的Jtag线并上电。双击上张图片最后一个选项Analyze Design Using ChipScope打开ChipScope界面如下所示
在这里插入图片描述
出现错误:
在这里插入图片描述
方法:控制面板>时钟和区域>更改日期、时间或数字格式>将格式改为英语(美国)。。。。
在这里插入图片描述
10、如果Jtag连接正常的话,会弹出下面的窗口,这个窗口表示找到了开发板使用的FPGA型号为XC6SLX45。
在这里插入图片描述
11、点击OK,左上角的P标签变成了绿色,Jtag Chain多出了FPGA型号这个标签
在这里插入图片描述
12.左键单击选中DEV:0 MyDevice0 (XC6SLX45),然后右键弹出菜单栏,在菜单栏中选择Configure…
在这里插入图片描述
13.在弹出的界面中勾选Import Design-level CDC File和Auto-create Buses两个选项
在这里插入图片描述
14.点击OK,bit文件就被下载到了开发板中,然后进入以下界面
在这里插入图片描述
15、双击Trigger Setup和Waveform分别打开设置触发的窗口和波形窗口
在这里插入图片描述
触发窗口中的Depth就是我们之前在.cdc文件中设置要抓取的数据深度,Position这个参数默认情况是0,但是建议最好设置一个偏移量,这里我设置的是100,它表示的是把触发条件满足之前的100个数据和触发条件满足之后的924(1024-100)个数据显示到波形窗口中,这样我们就可以捕捉到在触发之前的一部分信息,更有助于问题的定位。Storage Qualification这个参数就是之前在.cdc文件勾选了Enable Storage Qualification这个选项后才有的,一般选择默认的All Data。

波形窗口是显示要抓取的波形的窗口,这里还没开始抓取,所以显示为空。

17、点击右上角的1号图标,把Trigger Setup窗口放大,然后设置触发条件为I_rst_n为R(R表示上升沿触发),接着点击3号图标进入等待触发状态
在这里插入图片描述
18.等待触发状态
在这里插入图片描述
19.按一下开发板上I_rst_n信号绑定的按钮,使触发条件满足,波形窗口出现了抓到的波形
在这里插入图片描述
上图中红色的T标尺代表的触发的起始位置,它的位置不能移动;绿色的O和蓝色的X是两个可移动标尺,他们两个的绝对位置以及差值均显示在波形窗口的右下角,有时候需要测量两个关键点的差值就可以拖动这两个标尺来直接得出结果

20、按住鼠标左键在波形窗口中画一个矩形框可以把波形窗口放大,可以看到更多的波形细节
在这里插入图片描述
21.如果我想让O_led_out为4’b0010的时候触发,那么修改触发条件为如下图所示,然后点击触发按钮
在这里插入图片描述
22…由于我们设置的O_led_out一直在自增,所以不需要按按键,等O_led_out为4’b0010触发条件满足就可以触发了,触发以后的波形如下图所示
在这里插入图片描述
显然触发位置在O_led_out为4’b0010的位置,和之前设置的相同。

23.、如果你想查看O_led_out总线每一个bit的波形情况,可以点击一下信号名前面的小图标展开
在这里插入图片描述
24.如果你想看O_led_out总线的模拟波形,那么你可以双击Bus Plot标签,在弹出的界面中选中O_led_out总线就可以了。
在这里插入图片描述
25、到这里ChipScope的教程就讲完了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值