内核发生器系统实验.docx
- 文档编号:7975153
- 上传时间:2023-01-27
- 格式:DOCX
- 页数:12
- 大小:146.42KB
内核发生器系统实验.docx
《内核发生器系统实验.docx》由会员分享,可在线阅读,更多相关《内核发生器系统实验.docx(12页珍藏版)》请在冰豆网上搜索。
内核发生器系统实验
实验5:
内核发生器系统实验
内核发生器系统实验
实验介绍
这个实验将指导你创建一个Xilinx内核发生器系统,并把这个内核嵌入到你的设计中来完成实验。
独立实验包含了含内核的仿真设计。
实验目的
完成这个实验后,你将能学会:
●通过使用Xilinx内核生成器系统生成一个内核
●将这个内核应用于已有的HDL设计中
●对包含内核的HDL设计执行仿真
●对硬件设计进行测试
实验步骤
在这个实验中,你将使用内核发生器系统来创建一个RAM模块,应用程序进行初始化
将其应用到PicoBlaze设计中,最后在DigilentSpartan-3E目标板上进行测试。
这个实验包括以下四个主要步骤:
1.查看设计
2.生成内核
3.在新的回路模块执行仿真
根据以下给出的每条指令,你将找到在以下的实验步骤中,配合每一步操作,我们配有相关的图示。
如果对流程比较熟悉,可以跳过其中的一些操作。
注意:
如果在以后你想看这些实验,您可以从Xilinx的大学计划网站
生成ROM初始化文件步骤1
打开ISE™ProjectNavigator,打开工程文件。
1.打开XilinxISE软件,选择StartProgramsXilinxISE8.2iProjectNavigator
2选择FileOpenProject
Verilogusers:
Browsetoc:
\xup\fpgaflowlabs\verilog\lab4
VHDLusers:
Browsetoc:
\xup\fpgaflow\labs\vhdl\lab4
3.选择synth_lab.ise,点击打开
浏览设计中用红色标记的问题,掌握设计中大致的程序模块。
使用原来的实验中的程序,完成第三个任务。
汇编后产生一个内核文件,这将用于初始化一个ROM.
1.打开program.psm文件,在project目录下,使用效果如windowsexporer
2.通过写小段软件代码完成任务#3,键盘显示终端。
注意:
参考程序指示里的注释。
3.打开一个命令窗口,浏览包含程序的路径,汇编程序,在命令提示中输入以下命令:
>kcpsm3program
注意:
汇编将产生几个文件,包括一个.COE,这个将被用来初始化一个内核发生器的存储记忆。
产生一个内核步骤2
产生一个新的COREGenIP源文件,命名为program.类型为DualPortROM
1.在ProcessesforSource窗口,双击CreateNewSource
如果你没有看见生成的新的源程序,确认一个HDL源文件是否已经在SourcesinProject窗口中已选择。
2.在新的Source对话框中,选择IP(CoreGen&ArchitectureWizard),在文件命名区输入program,如Figure5-1所示。
Figure5-1.NewSource对话框
3.点击Next
4.在选择CoreType对话框后,展开Memories&StorageElements,展开RAMs&ROMs,选择BlockMemoryGeneratorv2.1,如下图所示。
Figure5-2.选择CoreType对话框
5.点击Next,点击Finish
一会,一个内核生成系统GUI将打开。
配置DualPortBlockMemory内核,有如下特性:
●名字:
program
●存储器类型:
DualPortROM
●存储器大小:
1024x18
1.在Figure5-3中设置以下参数,然后点击
●器件名称:
program
●存储器类型:
DualPortROM
Figure5-3.BlockMemory选项
2.在Figure5-4中设置如下参数,然后点击
●读宽度:
18
●读深度:
1024
●操作模式:
WriteFirst
●使能:
AlwaysEnabled
Figure5-4.PortAdesignoptionsandpinpolarity
3.在Figure5-5中设置如下参数,然后点击
●读宽度:
18
●读深度:
1024
●操作模式:
WriteFirst
●使能:
AlwaysEnabled
Figure5-5.PortBdesignoptionsandpinpolarity
4.点击LoadInitFile,从assembler目录下选择PROGRAM.COE文件。
Figure5-6.Initializethememorywiththeprogram
5点击Show按钮,从下拉框中选择memory_initialization_vector,查看在配置FPGA后将要装载到存储器中的内容。
6.在DualPortBlockMemory对话框底部点击Generate
注意:
program.xco文件必须自动增加到ISE工程
例示BlockRAM内核到Verilog源步骤3a
VHDL使用者:
跳到步骤3b,“例示BlockRAM内核到VHDL源文件。
”
将产生的内核例示到loopback.v.
1.在SourcesinProject窗口,双击loopback.v
loopback.v文件在文件编辑窗口中打开
2.选择EditLanguageTemplates
例示内核模块在该窗口中的COREGEN单元。
3.展开COREGEN,展开VERILOGComponentInstantiation,选择program,如Figure5-7所示。
Figure5-8a.LanguageTemplates
4.复制粘贴template到loopback.v文件,有如下说明,“//InstantiatetheRAMblockhere”
5.编辑instantiation如下:
programmy_program(
.clka(clk55MHz),
.addra(addess),
.douta(instruction),
.clkb(1'b0),
.addrb(10'b0000000000),
.doutb());
6.选择FileSave
例示BlockRAM内核到VHDL源步骤3b
Verilog用户:
直接跳到步骤4——“执行仿真动作”
例示步骤2中生成的内核到fifo_2048x8.vhd.
1.在SourcesinProject窗口,双击loopback.vhd
loopback.vhd文件在文本编辑窗口中打开。
2.选择EditLanguageTemplates
例示内核模块在该窗口中的COREGEN单元。
3.展开COREGEN,展开VERILOGComponentInstantiation,选择program,如Figure5-7所示。
Figure5-8b.LanguageTemplates
4.复制粘贴template到program.vhd文件
粘贴componentdeclaration到,题为“----Insertcomponentdeclarationforprogramhere”.
粘贴componentinstantiation到,题为“--insertcomponentinstantiationforprogramhere”.
5.编辑instantiation如下连接到dual-portblockROM
my_program:
program
portmap
(
clka=>clk55MHz,
addra=>address,
douta=>instruction,
clkb=>'0',
addrb=>"0000000000",
doutb=>open);
6.选择FileSave
执行仿真动作步骤4
检查文件了解正在发生的动作
1.在SourcesinProject窗口,双击testbench.v/.vhd
查看testbench的功能,有相关的testbench的注释:
●testbenchtoggles转换
●等待几个时钟周期
●检验LEDs查看他们是否与相应的设置匹配
2.在SourcesinProject窗口,选择program.xco
3.在ProcessesforSource窗口,展开COREGen工具箱,双击ViewVerilog/VHDLFunctionalModel
这个文件夹参考了XilinxCoreLib仿真库的模型,被用于在ProjectNavigatoroftheISE™软件中自动地执行仿真的动作。
VHDL用户:
如果文件夹没有出现在文本编辑中,双击VHDLFunctionalModel,选择OpenWithoutUpdating.
使用testbench.v或testbench.vhd文件,执行50000ns的仿真动作,查看波形确认内核连接的正确性。
1.在SourcesinProject窗口,为查看源文件选择BehavioralSimulation,点击testbench.v/.vhd
2.在ProcessesforSource窗口,展开XilinxISESimulator进程,点击SimulateBehavioralModel,选择Properties。
3.输入仿真时间50000ns
4.点击OK
5.双击SimulateBehavioralModel
6.检查波形确认转化与LEDS的显示匹配。
硬件的测试应用步骤5
打开hyperterminal部分,生成位流,下载到Digilent板,测试应用。
1.在project目录下,双击terminal.ht,开始hyperterminal部分
2.在Project浏览器里,着重loopback.v/vhd,展开GenerateProgrammingfile,双击ConfigureDevice(iMPACT).
3.当impact打开后,使用JTAG下载电缆配置FPGA,确认以下选项已经选择,点击
•Boundary-ScanMode
•Automatciallyconnectcable
4.当窗口打开提示在JATG链中有两个装置被检测到的时候点击
5.分配loopback位到Spartan-3exc3s500e,设PROM旁路。
6.点击Spartan-3e装置,选择program,点击
注意:
你会看见“XilinxRules!
”信息列在hyperterminal窗口,任何键盘上的信息也可以陈列出来。
Figure5-9.Viewtheoutputonthehyperterminalwindow
结论
使用COREGenerator™系统生成内核,这个内核可以很方便地把一个Verilog或VHDL设计例程融入进去。
为方便使用,VEO和VHO文件提供了你cut-and-paste例示模块。
VEO和VHO文件可以用于仿真实验。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 内核 发生器 系统 实验