基于XILINXFPGA数字系统设计实验三.docx

上传人:b****3 文档编号:7011412 上传时间:2023-05-11 格式:DOCX 页数:11 大小:273.55KB
下载 相关 举报
基于XILINXFPGA数字系统设计实验三.docx_第1页
第1页 / 共11页
基于XILINXFPGA数字系统设计实验三.docx_第2页
第2页 / 共11页
基于XILINXFPGA数字系统设计实验三.docx_第3页
第3页 / 共11页
基于XILINXFPGA数字系统设计实验三.docx_第4页
第4页 / 共11页
基于XILINXFPGA数字系统设计实验三.docx_第5页
第5页 / 共11页
基于XILINXFPGA数字系统设计实验三.docx_第6页
第6页 / 共11页
基于XILINXFPGA数字系统设计实验三.docx_第7页
第7页 / 共11页
基于XILINXFPGA数字系统设计实验三.docx_第8页
第8页 / 共11页
基于XILINXFPGA数字系统设计实验三.docx_第9页
第9页 / 共11页
基于XILINXFPGA数字系统设计实验三.docx_第10页
第10页 / 共11页
基于XILINXFPGA数字系统设计实验三.docx_第11页
第11页 / 共11页
亲,该文档总共11页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

基于XILINXFPGA数字系统设计实验三.docx

《基于XILINXFPGA数字系统设计实验三.docx》由会员分享,可在线阅读,更多相关《基于XILINXFPGA数字系统设计实验三.docx(11页珍藏版)》请在冰点文库上搜索。

基于XILINXFPGA数字系统设计实验三.docx

基于XILINXFPGA数字系统设计实验三

数字系统设计-实验三

VHDL比较器及自定义IP核

实验

一、实验内容:

本次实验完成两个内容。

1、VHDL比较器实验

2、MicroBlaze自定义IP核实验

二、实验目的:

1.学习使用assert语句

2.学习使用VHDL中的基本条件描述结构if/else

3.用行为描述方式和RTL描述方式分别对给定的模块进行描述

4.验证设计文件的正确性

三、实验步骤:

一、VHDL比较器实验

1.创建一个新的工程。

2.创建COMP的行为描述(如图所示)。

3.完成模块的结构体描述

本步骤主要完成行为描述方式的结构体,最主要的目的是进行仿真。

由VHDL的assert语句比较两个输入信号,并配以severitylevel和report结构完成比较。

用条件信号赋值语句对输出信号RESULT赋值。

实验中用到的代码如下:

COMP.VHD

libraryIEEE;

useIEEE.STD_LOGIC_1164.ALL;

useIEEE.STD_LOGIC_ARITH.ALL;

useIEEE.STD_LOGIC_UNSIGNED.ALL;

 

entityCOMPis

Port(EN:

inSTD_LOGIC;

CLK:

inSTD_LOGIC;

EXPECTED:

inSTD_LOGIC_VECTOR(3downto0);

ALU_OUT:

inSTD_LOGIC_VECTOR(3downto0);

RESULT:

outSTD_LOGIC);

endCOMP;

architectureBehavioralofCOMPis

begin

process(CLK)

begin

ifrising_edge(CLK)then

if(EN='1')then

if(EXPECTED=ALU_OUT)then

RESULT<='1';

else

RESULT<='0';

endif;

assert(EXPECTED=ALU_OUT)

report"Warning,simulationmismatchhasoccurred"

severitywarning;

endif;

endif;

endprocess;

endBehavioral;

COMP_RTL.VHD

libraryIEEE;

useIEEE.STD_LOGIC_1164.ALL;

useIEEE.STD_LOGIC_ARITH.ALL;

useIEEE.STD_LOGIC_UNSIGNED.ALL;

entityCOMP_RTLis

Port(EN:

inSTD_LOGIC;

CLK:

inSTD_LOGIC;

EXPECTED:

inSTD_LOGIC_VECTOR(3downto0);

ALU_OUT:

inSTD_LOGIC_VECTOR(3downto0);

RESULT:

outSTD_LOGIC);

endCOMP_RTL;

architectureRTLofCOMP_RTLis

begin

process(CLK)

begin

ifrising_edge(CLK)then

ifEN='1'then

ifEXPECTED=ALU_OUTthen

RESULT<='1';

else

RESULT<='0';

endif;

endif;

endif;

endprocess;

endRTL;

COMP_TB.VHD

LIBRARYieee;

USEieee.std_logic_1164.ALL;

USEieee.std_logic_unsigned.all;

USEieee.numeric_std.ALL;

ENTITYCOMP_TBIS

ENDCOMP_TB;

ARCHITECTUREbehaviorOFCOMP_TBIS

--ComponentDeclarationfortheUnitUnderTest(UUT)

COMPONENTCOMP

PORT(

EN:

INstd_logic;

CLK:

INstd_logic;

EXPECTED:

INstd_logic_vector(3downto0);

ALU_OUT:

INstd_logic_vector(3downto0);

RESULT:

OUTstd_logic

);

ENDCOMPONENT;

--Inputs

signalEN:

std_logic:

='1';

signalCLK:

std_logic:

='0';

signalEXPECTED:

std_logic_vector(3downto0):

=(others=>'0');

signalALU_OUT:

std_logic_vector(3downto0):

=(others=>'0');

--Outputs

signalRESULT:

std_logic;

BEGIN

--InstantiatetheUnitUnderTest(UUT)

uut:

COMPPORTMAP(

EN=>EN,

CLK=>CLK,

EXPECTED=>EXPECTED,

ALU_OUT=>ALU_OUT,

RESULT=>RESULT

);

CLK<=notCLKafter20ns;

TB:

process

begin

EXPECTED<=X"A";

ALU_OUT<=X"A";

waitfor200ns;

ALU_OUT<=X"B";

wait;

endprocess;

END;

4.语法检查

在Sources窗口中选中COMP.VHD,在Processes窗口中展开Synthesize,并双击CheckSyntax

完成以上步骤并且没有语法错误的情况下继续下面的步骤:

1.创建COMP的RTL描述

(1)选择菜单栏中的Project→NewSource

(2)选择左侧VHDLModule右侧fileName栏中填入文件名COMP_RTL。

(3)在DefineModule窗口中,将模块的结构体名称改为RTL,并按照行为描述方式中相同的方法填写模块的端口定义。

(4)在COMP_RTL的结构体中使用if/else语句描述COMP_RTL的功能。

2.创建此时平台文件

创建一个测试平台文件,并验证COMP模块的功能是否正确。

二、MicroBlaze自定义IP核实验

一、实验目的:

1.创建一个自定义的外围设备并将其添加到IP目录(IPCatalog)下

2.将该自定义设备添加到你的设计中

3.添加引脚约束

4.生成比特流并下载至开发板,检验运行结果

二、实验内容:

本实验将通过CreateandImportPeripheralWizard创建一个自

定义的外围设备,并将它增加到处理器系统中。

三、实验过程:

本实验将会扩展实验二中的硬件设计,创建一个plb外围设备,并将其关联到spartan-3E板上的LCD显示屏。

四、实验步骤

1.继续实验二的内容,创建一个lab3文件夹,将lab2中的内容复制到新文件夹中。

2.打开PlatformStudio,选择Hardware→CreateorImportPeripheral

使用向导完成设置。

在lab3目录下,打开pcores\lcd_ip_v1_00_a\data\lcd_ip_v2_1_0.mpd文件

在SPLB_Clk端口前添加以下代码:

PORTlcd=“”,DIR=O,VEC=[0:

6]

使用向导生成的的HDL模板文件(lcd_ip.vhd和user_logic.vhd)创建LCD控制器。

你可以使用标准的文本编辑器来修改它们。

在pcores\lcd_ip_v1_00_a\hdl\vhdl目录下打开lcd_ip.vhd文件,添加一个宽度为7比特的lcd端口

查找文本”--USER”,定位到390行左右,增加端口映射语句。

保存并关闭文件。

在vhdl目录下,打开user_logic.vhd文件,在USERPorts区域添加lcd端口定义

查找文本”--USER”,定位到132行,添加内部信号声明。

•查找文本--USERlogicimplementation,定位到146行,添加以下代码:

保存并关闭文件

选择Project→RescanUserRepositories使之前的改动生效。

使用SystemAssembyView添加lcd_ip实例到PLB总线上。

双击LCD_IP核,将其添加到SystemAssembyView当中

在lcd_ip_0的BusConnection中,选择mb_plb,将其连接到plb总线上

在ports选项卡中,展开lcd_ip_0,选择MakeExternal将lcd端口作为外部端口。

点击Addresses选项卡,锁定除lcd_ip_0之外的所有地址

将lcd_ip_0的地址大小设为64K,点击GenerateAddresses

修改system.ucf文件,将lcd控制器绑定到FPGA相应的引脚上。

打开system.ucf文件,添加以下代码

 

编译程序

下载比特流

连接并启动Spartan3E板。

启动一个超级终端。

选择Device→ConfigurationDownloadBitstream,下载比特流至FPGA

 

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2