FPGA实验(精华) - 图文(2)

2020-04-03 12:02

选择图形方式:MAX+PLUS II→Graphic edit,File→New→ Graphic edit file。根据图1-1输入实验电路图,从MAX+PLUS II的基本元件库中将各元件调入图形编辑窗口、连线,添加输入输出引脚。

将所设计的图形文件ALU.gdf保存到原先建立的文件夹中,将当前文件设置成工程文件,以后的操作就都是对当前工程文件进行的。

(3)器件选择

在主采单的Assign选ACEX1K系列,在Devices中选择器件EP1K100QC208-3。编译,引脚锁定,再编译。引脚锁定后需要再次进行编译,才能将锁定信息确定下来,同时生成芯片编程/配置所需要的各种文件。

(4)芯片编程Programming(可以直接选择光盘中demo1_ALU,已完成的设计进行验证实验) 打开编程窗口。将配置文件ALU.sof下载进GW48系列现代计算机组成原理系统中的FPGA中。 (5)选择实验系统的电路模式是NO.0,验证ALU的运算器的算术运算和逻辑运算功能

根据表1-1,从键盘输入数据A[7..0]和B[7..0],并设置S[3..0]、M、Cy,验证ALU运算器的算术运算和逻辑运算功能,记录实验数据。

图1-1 算术逻辑单元ALU实验原理图

四.实验任务

(1)按图1-1所示,用数据选择开关KEY3的高/低电平选择总线通道上的8位数据进入对应的74373中;用键KEY2、KEY1分别向A[7..0] 置数01010101(55H),向B[7..0]置数10101010(AAH)。

(2)用设定键KEY8为高电平,即M1=1,键KEY5控制时钟SCLK,设置S[3..0]=0~F,KEY7设置cn=0或cn=1,验证ALU的逻辑运算功能,并记录实验数据。

(3)用设定键KEY8为低电平,即M=0,键KEY5设置S[3..0]=0~F,KEY7设置cn=0和cn=1,验证ALU的算术运算功能,并记录实验数据。

表1-2 A[7..0],B[7..0]设置值检查

F[7..0] SW_B 寄存器内容 A[7..0] 01010101 01010101 B[7..0] 1010101010 1010101010 S3 S2 S1 S0 M BUS (3)验证ALU181的算术运算和逻辑运算功能,ALU181模块功能可参照表1-1。 表1-3给定了寄存器DRl=A[7..0]和DR2=B[7..0]的数据(十六进制),要求根据此数据对照逻辑功能表所得的理论值(要求课前完成)与实验结果值进行比较(均采用正逻辑0)。

(4)表1-4列出了8种常用的算术与逻辑运算要求指定的操作内容,正确选择运算器数据通路、控制参数S3、S2、S1、S0、M,并将实验结果值填入括号内,表中给定原始数据DR1=A[7..0]和DR2=B[7..0],以后的数据取自前面运算的结果。

- 6 -

表1-3

S3 S2 S1 S0 0000000011111111000011110000111100110011001100110 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 A[7..0] AA AA AA AA FFFFFFFF5555F F F F F F F F 5 5 5 5 B[7..0] 55550000FFFF00005 5 5 5 1 1 1 1 F F F F 1 1 1 1 算术运算 M=0 cn=0(无进位) cn=1(有进位) 逻辑运算(M=1) F=( ) F=( ) F=( ) F=( ) F=( ) F=( ) F=( ) F=( ) F=( ) F=( ) F=( ) F=( ) F=( ) F=( ) F=( ) F=( ) F=( ) F=( ) F=( ) F=( ) F=( ) F=( ) F=( ) F=( ) F=( ) F=( ) F=( ) F=( ) F=( ) F=( ) F=( ) F=( ) F=( ) F=( ) F=( ) F=( ) F=( ) F=( ) F=( ) F=( ) F=( ) F=( ) F=( ) F=( ) F=( ) F=( ) F=( ) F=( ) 表1-4 操传送 按位加 取反 加1 求负 加法 减法 逻辑乘 8种常用的算术与逻辑运算 M Cn DR1 66 DR2 FF 运算关系及结果显示 Cn4 DR1 .DR2→DR2( ) DR1 → DR2 ( ) DR1?DR2→DR2( ) DR→ DR2 ( ) 1作 S3 S2S1S0 DR2 + 1→DR2 ( ) DR+ 1 →DR2( ) 2DR1 + DR2→DR2( ) DR1 – DR2→DR2( ) 五.实验要求 1、做好实验预习,掌握运算器的数据传送通路和ALU的功能特性,并熟悉本实验中所用的控制台开关的作用和使用方法。

2、写出实验报告,内容是:

①实验目的; ②按理论分析值填写好表1-2、表1-3和表1-4,给出对应的仿真波形。

③列表比较实验数据(2)的理论分析值与实验结果值;并对结果进行分析。实验结果与理论分析值比较,有没有不同?为什么? ④通过本实验,你对运算器ALU有何认识,有什么心得体会?

六.实验题与思考题

1.用VHDL实现输入暂存器74373B的功能,及模式选择计数器LPM_COUNTER的功能。 3.用VHDL表达整个ALU实验电路的功能,对电路进行仿真、引脚锁定、并在实验台上实现其功能。 4.用VHDL设计一个简化的8位alu,具有基本算术运算(加、减、带进位加、减)功能和逻辑运算(与AND、或OR、异或XOR、非NOT等)功能,给出仿真波形,并在实验台上实现。

5.用VHDL设计一个16位的ALU,实现基本的算术逻辑运算,为了节省逻辑资源,建议使用两个8位ALU模块级联而成。 6.对ALU181进行算术运算和逻辑运算的功能仿真,并记录仿真波形。 使用说明 : “ALU”目录8位“算术逻辑运算器”示例使用说明 1)、下载ALU_demo1中的ALU.SOF到FPGA中;2)、用模式键选模式“0”,再按一次右侧的系统复

- 7 -

位键;3)、键2和键1可输入8位二进制数;4)、按键3,当=0时,数据送往A[7..0]; 当=1时,数据送往B[7..0];5)、A[7..0](显示于数码管2和数码管1上,高位靠左);6)、B[7..0](显示于数码管4和数码管3上,高位靠左);7)、加法器最低进位位Cn由键7控制;加法器的算术/逻辑控制选择位M由键8控制;8)、ALU工作模式选择端S3、S2、S1、S0,通过键6控制(显示于数码管8上),每按键两次,计数递增1,;9)、5、运算结果F[7..0]显示于数码管6和5;10)、加法器溢出位Cn4由数码管7显示。

附:ALU181.VHD(源文件请参考CPP100文件夹中demo1_ALU中的ALU181.VHD,)

2.带进位算术运算实验

一.实验目的

1、验证带进位控制的算术运算功能发生器的功能。 2、按指定数据完成几种指定的算术运算。

二.实验原理

在实验(1)的基础上增加进位控制电路,将运算器ALU181的进位位送入D锁存器,由T4和CN控制其写入,在此,T4是由键5产生的脉冲信号,这时,CN的功能是电平控制信号(高电平时,CN有效),控制是否允许将进位信号co加入下一加法周期的最低进位位,从而可实现带进位控制运算。

图1-2A 带进位控制的ALU

图1-2B带进位控制的ALU的仿真波形

三.实验步骤

(1)示例工程文件是.\\demo2_alu\\alu_c.gdf,下载alu_c.sof,选择模式NO.0;

(2)根据电路图1-2A和波形图B,首先使键5(T4)和键7(CN)=0;键8(M)和键3(A0_B1)=1;连续按键6,使产生9个脉冲,这时数码管8显示9;再用键2,键1输入加数9DH;

(3)按键3=0,再用键2,键1输入被加数E5H(数码管4、3、2、1分别显示加数和被加数);再将键8(M)置0,使ALU作算术运算,这时可以从数码管6,5上看到9DH+E5H=82H(低8位和);

(4)先将键7(CN)置为1,再用键5(T4)产生一个正脉冲,就能将进位锁入D触发器中:数码管7将显示1,表示加法有进位,并被锁;同时可以看到此进位被累加,使数码管6,5=83H。

(5)置键8=1,在实验箱上作逻辑运算方面的实验,给出相应的仿真波形图;

(6)利用带进位控制,控制T4,分别由低到高输入3个8位加数和被加数,计算24位加法: 7AC5E9 H+ BD5AF8H = ?最后按照下表完成实验,记录实验数据,给出对应仿真波形图。

- 8 -

S3 S2 S1 S0 A[7..0] B[7..0] 算术运算 M=0 cn=0(无进位) cn=1(有进位) 逻辑运算(M=1) 0001111110000110011 0 1 0 1 0 FFFFFFF F F F F F 000FFF1 1 1 F F F F=( ) F=( ) F=( ) F=( ) F=( ) F=( ) F=( ) F=( ) F=( ) F=( ) F=( ) F=( ) F=( ) F=( ) F=( ) F=( ) F=( ) F=( ) 四.实验要求 1、做好实验预习,掌握带进位控制的算术运算功能发生器的功能特性。

2、写出实验报告,内容是:①实验目的;②按理论分析值填写表1-5。③列表比较实验数据的理论分析值与实验结果值;并对结果进行分析。④实验结果与理论分析值比较,有没有不同?为什么?

五.附加实验题和思考题

1.带进位运算与不带进位运算有何区别?

2.如何实现带进位运算,将上一次运算的进位位用于下一次的运算当中,并实现多个8位数据的(如两个24位数据的加法)运算?在控制电路上应作怎样的改动?给出24位加法详细的仿真波形图。

3. 移位运算器实验

一.实验目的

1. 验证移位控制的组合功能。

二.实验原理

1、移位运算实验原理图如图1-3所示。移位运算器SHEFT使用VHDL语言编写,其输入/输出端分别与键盘/显示器LED连接。移位运算器是时序电路,在时钟信号到来时状态产生变化,CLK为其时钟脉冲。由S0、S1、M控制移位运算的功能状态,具有数据装入、数据保持、循环右移、带进位循环右移,循环左移、带进位循环左移等功能。移位运算器的具体功能见表1-7所示:

2.电路连接、输入数据的按键、输出显示数码管的定义如图1-3右上角所示。 CLK——时钟脉冲,通过 键5产生0—1;

M ——工作模式,M=1时带进位循环移位,由 键8控制; C0 ——允许带进位移位输入,由 键7控制;

S ——移位模式0~3,由 键6控制,显示在数码管LED8上;

D[7..0] ——移位数据输入,由 键(2和1)控制,显示在数码管(2和1)上; QB[7..0]——移位数据输出,显示在数码管(6和5)上; CN——移位数据输出进位,显示在数码管(7)上;

三.实验步骤

(1)用文本编辑器输入移位运算器文件SHEFT.VHD并编译通过,再用图形编辑器(Graphic Editor)输入图1—4,锁定引脚(实验台选择模式0)、下载(Configure)到实验台;

(2)通过键盘K1、K2向D[7..0]置数01101011;

(3)将D[7..0]装入移位运算器QB[7..0]。键6设置(S1,S0)=11B(3), 键5产生CLK将数据装入; (4)对输入数据进行移位运算。键5产生(0—1)CLK,输出结果QB[7..0]将发生变化,观察带进位移位允许控制C0的置位与清零对移位的影响;

(5)根据表1—7,通过设置(M、S1、S0)验证移位运算的带进位和不带进位移位功能。

四.实验要求

1、做好实验预习,掌握带进位控制的算术运算功能发生器的功能特性。

2、写出实验报告,内容是:①实验目的,实验原理;②按理论分析值准备并填写好实验数据表;③列表比较实验数据的理论分析值与实验结果值,并对结果进行分析;④实验结果与理论分析值比较,有没有不同?为什么?

- 9 -

图1-3 移位运算实验原理图

表1-7 移位发生器的功能 G 0 0 0 0 0 任意 S1 0 1 1 0 0 1 S0 0 0 0 1 1 1 M 任意 0 1 0 1 任意 功 能 保持 循环右移 带进位循环右移 循环左移 带进位循环左移 加载待移位数 五.思考题

如何实现有符号数的算术右移和算术左移?修改用VHDL编写的实验参考程序,进行功能仿真,并在实验台上调试实现。 附:实验参考程序请参考CPP100文件夹中demo3_SHIFTER中的1SHEFT.VHD和CNT2.VHD

实验二 存储器实验

1、FPGA中LPM_ROM配置与读出实验 一.实验目的

1、掌握FPGA中lpm_ROM的设置,作为只读存储器ROM的工作特性和配置方法。

2、用文本编辑器编辑mif文件配置ROM,学习将程序代码以mif格式文件加载于lpm_ROM中; 3、在初始化存储器编辑窗口编辑mif文件配置ROM; 4、验证FPGA中mega_lpm_ROM的功能。

二.实验原理

ALTERA的FPGA中有许多可调用的LPM (Library Parameterized Modules)参数化的模块库,可构成如lpm_rom、lpm_ram_io、lpm_fifo、lpm_ram_dq的存储器结构。CPU中的重要部件,如RAM、ROM可直接调用他们构成,因此在FPGA中利用嵌入式阵列块EAB可以构成各种结构的存储器,lpm_ROM是其中的一种。lpm_ROM有5组信号:地址信号address[ ]、数据信号q[ ]、时钟信号inclock、outclock、允许信号memenable,其参数都是可以设定的。由于ROM是只读存储器,所以它的数据口是单向的输出端口,ROM中的数据是在对FPGA现场配置时,通过配置文件一起写入存储单元的。图2-1-1中的lpm_ROM有3组信号:inclk——输入时钟脉冲;q[23..0]——lpm_ROM的24位数据输出端;a[5..0]——lpm_ROM的6位读出地址。

实验中主要应掌握以下三方面的内容:

(1)lpm_ROM的参数设置; (2)lpm_ROM中数据的写入,即LPM_FILE初始化文件的编写; (3)lpm_ROM的实际应用,在GW48_CPP实验台上的调试方法。

三.实验步骤

(1)用图形编辑Graphic Editer,进入max2lib\\mega_lpm元件库,调用lpm_rom元件,设置地址总线宽度address[]和数据总线宽度q[],分别为6位和24位,并添加输入输出引脚,如图2-1-1设置和连接。

(2)在设置lpm_rom数据参数选择项lpm_file的对应窗口中,用键盘输入lpm_ROM配置文件的路径。

- - 10


FPGA实验(精华) - 图文(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:怎样识别冬虫夏草

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: