EDA模块化实验指导书docxWord格式.docx

上传人:b****5 文档编号:16744190 上传时间:2022-11-25 格式:DOCX 页数:14 大小:114.71KB
下载 相关 举报
EDA模块化实验指导书docxWord格式.docx_第1页
第1页 / 共14页
EDA模块化实验指导书docxWord格式.docx_第2页
第2页 / 共14页
EDA模块化实验指导书docxWord格式.docx_第3页
第3页 / 共14页
EDA模块化实验指导书docxWord格式.docx_第4页
第4页 / 共14页
EDA模块化实验指导书docxWord格式.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

EDA模块化实验指导书docxWord格式.docx

《EDA模块化实验指导书docxWord格式.docx》由会员分享,可在线阅读,更多相关《EDA模块化实验指导书docxWord格式.docx(14页珍藏版)》请在冰豆网上搜索。

EDA模块化实验指导书docxWord格式.docx

用层次化设计方法利用已完成的2位计数器设计一个4位的计数器。

实验3计数译码显示电路的设计

(1)学会简单的计数译码显示电路的VHDL设计;

(2)学会VHDL的多进程及多层次设计方法。

译码显示通常采用小规模专用集成电路,如74或4000系列的器件。

它们一般只能作十进制BCD码译码,然而数字系统中的数据处理和运算都是2进制的,所以4位二进制计数器是16进制的,为了满足16进制数的译码显示,最方便的方法就是利用译码程序在FPGA和CPLD中来实现。

程序8-1是能够完成4位二进制计数和7段BCD码译码的VHDL源程序,输出信号DOUT的7位分别与图8-20所示数码管的7个段相接,高位在左,低位在右。

例如当DOUT输出为“1101101”时,数码管的7个段:

g、f、e、d、c、b、a分别接1、1、0、1、1、0、1;

接高电平的段发亮,于是数码管显示“5"

这里没有考虑表示小数点的发光管,如果要考虑,需要增加段h,然后将LED7S改为8位输出。

(1)说明程序8-1中各语句的含义以及该例的整体功能。

在MAX+plusII中对程序8-1进行编辑、编译、综合、适配、仿真,给出其所有信号的时序仿真波形(提示:

用输入总线的方式给出输入信号仿真数据)。

(2)引脚锁定及硬件测试。

操作方法:

建议将CLK,EN,CLR,锁定在JP3插槽内然后将三者的引脚与实验箱上“高低电平输出控制开关”模块连接来控制输入高低电平,将7个输出锁定于JP2插槽内同时将7个输出引脚与实验箱上的“七段译码显示”数码管相连接通过此数码管来观察译码显示结果。

(注意:

在锁定7个输出引脚时一定要注意锁定的顺序,防止因锁定顺序不对而产生错误结果。

)锁定引脚时,要根据选用的芯片,系统结构图信号名与芯片引脚对照表来确定引脚号。

用输入总线的方式给出输入信号仿真数据)。

(3)将程序8-1改成10进制7段译码器重复以上实验。

4.选做内容

试用层次化设计方式重复以上实验。

可用VHDL文本输入法先设计底层文件,即4位二进制计数器COUNT4B和译码器DECL7S,其源程序分别见程序8-2和程序8-3,然后用元件例化语句按图8-21的方式或用原理图方式完成顶层文件设计,并重复以上实验过程。

图8-21用计数器和译码器构成顶层文件

5.举一反三

(1)设计一个能递增显示各种不同符号的显示器,工作方式同此示例。

(2)设计一个26进制加法计数器和一个译码器,利用状态机的逻辑表达方式来设计译码器,将此加法计数器的26个输出数分别译成对应于7段数码显示的26个英语字母。

说明计数译码显示电路的工作原理;

写出VHDL源程序、软件编译、仿真过程中存在的问题及解决方法,并给出仿真波形图及硬件测试和实验方法。

7.参考程序

【程序8-1]

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYDECLEDIS

PORT(CLK:

INSTD_LOGIC;

DOUT:

OUTSTD_LOGIC_VECTOR(6DOWNTO0));

-7段输出

ENDDECLED;

ARCHITECTUREbehavOFDECLEDIS

SIGNALCNT4B:

STD_LOGIC_VECTOR(3DOWNTO0);

-4位加法计数器足义

BEGIN

PROCESS(CLK)-4位二进制计数器工作进程

IFCLK'

EVENTANDCLK=TTHEN

CNT4B<

=CNT4B+1;

--当CLK上升沿到来时计数器加1否则保持原值

ENDIF;

ENDPROCESS;

PROCESS(CNT4B)

CASECNT4BIS-CASE_WHEN语句构成的译码输出电路功能类似于真值表

WHEN"

0000"

=>

DOUT<

="

0111111"

;

-显示0

0001"

="

0000110"

-显示1

0010"

1011011"

-显示2

0011"

1001111"

-显示3

0100"

1100110"

-显示4

0101"

1101101"

-显示5

0110"

DOUT<

1111101"

-显示6

0111"

0000111"

-显示7

1000"

1111111"

-显示8

1001"

1101111"

-显示9

1010"

1110111"

-显示A

1011"

1111100"

-显示B

1100"

0111001"

-显示C

1101"

1011110"

-显示D

1110"

1111001"

-显示E

1111"

1110001"

-显示F

WHENOTHERS=>

0000000"

-必须有此项

ENDCASE;

ENDbehav;

【程序8-2】

ENTITYcount4bIS

PORT(elk:

clr,en:

q:

BUFFERSTD_LOGIC_VECTOR(3DOWNTO0));

ENDcount4b;

ARCHITECTUREbehavOFcount4bIS

PROCESS(elk,clr,en)

IFclk'

EVENTANDelk=TTHEN

IFen='

l'

then

IFclr=TTHEN

q<

ELSE

qv=q+l;

【程序8-3]

ENTITYDecl7sIS

PORT(a:

INSTD_LOGIC_VECTOR(3DOWNTO0);

led7s:

ENDDec17s;

ARCHITECTUREbehavOFDecl7sIS

PROCESS(a)

CASEaIS-CASE.WHEN语句构成的译码输出电路功能类似于真值表

led7s<

-

显示

显示1

显示2

3

显示4

显示5

led7sv=”1111101”;

显示6

7

led7sv=”1111111”;

8

1001"

9

A

1011"

B

=”0111001”;

显示C

lOllllO"

D

1110"

E

1111"

F

必须有此项

实验4——计数器的设计

1.实验目的:

(1)学会各种计数器的VHDL描述方法;

2.实验原理:

程序8-4描述的是一个含计数使能、异步复位和计数值并行预置功能的8位并行预置加法计数器。

其中,d(7DOWNTO0)为8位并行预置输入值;

Id、ce、elk和rst分别是计数器的并行预置输入的使能信号、计数时钟使能信号、计数时钟信号和复位信号。

需要注意的是,由程序8-4可见,在加载信号Id为高电平的时间内必须至少含有一个时钟上升沿。

3.实验步骤

(1)将程序8-4取名counter.vhd存入自己设定的目录,在MAX+plusII上进行编译直到通过,然后选择目标器件为EP3C40Q240C8,再进行一次编译,这一步对各个实验都一样,故以后不再重复。

(2)在做硬件测试时,建议将时钟脉冲输入端,时钟使能端,清零端,加减控制端锁定在JP2插槽内,另外将时钟脉冲输入端与“标准时钟信号源“模块相连接以此获得脉冲的输入。

将其余几个引脚与实验箱上“高低电平输出控制开关”模块连接来控制输入高低电平。

将输出端锁定于JP3插槽内,然后将输出引脚与实验箱上有“六个数码管”的副板上一个数码管下的插槽相连接,通过数码管来观察计数结果。

(注意:

在锁定输出引脚时一定要注意锁定的顺序,防止因锁定顺序不对而产生错误结果)。

4.选做内容:

(1)修改程序8-4,使计数器变为以时钟下降沿触发,并作减法计数。

(2)程序8-5描述的计数器对程序8-4作了扩展,它扩展了加减计数可控功能,且程序的计数位宽可通过类属GENERIC设置。

试将程序8-5设置成8位计数器,并在EP3C40Q240C8系统上测试其功能。

5.实验报告

(1)在QuartusII中完成程序8-4的完整仿真时序波形,并给出波形分析报告。

(2)写出硬件测试和实验过程;

(3)在QuartusII中完成程序8-5的完整仿真时序波形,并给出波形分析报告。

6.参考程序

【程序8-4】文件名:

counter,vhd

ENTITYcounterIS

PORT(Id,ce,elk,rst:

d:

INSTD_LOGIC_VECTOR(7DOWNTO0);

-8位预置值定义

q:

OUTSTD_LOGIC_VECTOR(7DOWNTO0));

ENDcounter;

ARCHITECTUREbehaveOFcounterIS

SIGNALcount:

STD_LOGIC_VECTOR(7DOWNTO0);

PROCESS(elk,rst)

IFrst='

1'

THENcount<

=(OTHERS=>

0'

);

--复位有效,计数置0

ELSIFRISING_EDGE(clk)THEN--有脉冲上升沿,贝U

IFld=TTHENcount<

=d;

--预置信号为1时,进行加载操作

ELSIFce=TTHEN--否则,在计数使能信号为高电平时

count<

=count+1;

--进行一次加1操作

q<

=count;

--将计数器中的值向端口输出

ENDbehave;

【程序8-5】文件名:

counterl.vhdLIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYcounterlISGENERIC(width:

INTEGER:

=4);

--设置计数器位宽为4

PORT(elk,rst:

up,down,load:

data:

INSTD_LOGIC_VECTOR(width-1DOWNTO0);

BUFFERSTD_LOGIC_VECTOR(width-1DOWNTO0));

ENDcounterl;

ARCHITECTUREbehaveOFcounterlISBEGIN

VARIABLEcount:

STD_LOGIC_VECTOR(width-1DOWNTO0);

BEGIN

IFrst=TTHEN

count:

=(OTHERS=>

ELSIFRISING_EDGE(elk)THENIF(load=T)THENcount:

=data;

ELSIF(up=TORdown='

)THENIF(up=T)THENcount:

=count+1;

ELSEcount:

=count-1;

ENDIF;

q<

ENDPROCESS;

ENDbehave;

实验5—用LPM设计8位数控分频器和4位乘法器

掌握LPM模块的参数设置方法以及设计和应用方法。

2,实验原理

对于高速测控系统,影响测控速度最大的因素可能是,在测得必要的数据并经过复杂的运算后,才能发出控制指令。

因此数据的运算速度决定了此系统的工作速度。

为了提高运算速度,可以用多种方法来解决,如高速计算机、纯硬件运算器、ROM查表式运算器等。

用高速计算机属于软件解决方案,

用纯硬件运算器属于硬件解决方案,而用ROM属于查表式运算解决方案。

数控分频器和乘法器的设计原理已在6.2.1节中作了详细描述。

8位数控分频器原理图

4位乘法器原理图

 

AD[3..O]

|ADI[3..O]|>

唧|_T

,AD[7..41

1ADh〔7..4]耕

(1)设计一个4X4bit查表式乘法器。

包括创建工程、调用LPM_ROM模块、在原理图编辑窗中绘制电路图,全程编译,对设计进行时序仿真,根据仿真波形说明此电路的功能,引脚锁定编译,编程下载于FPGA中,进行硬件测试。

完成实验报告。

乘法表文件是例4-1o其中的地址/数据表达方式是,冒号左边写ROM地址值,冒号右边写对应此地址放置的16进制数据。

如47:

28,表示47为地址,28为该地址中的数据,这样,地址高4位和低4位可以分别看成是乘数和被乘数,输出的数据可以看成是它们的乘积。

按照6.2.1节介绍的设计原理和流程,分别使用LPM_COUNTER和LPM_ROM设计8位数控分频器和4位乘法器。

然后进行波形仿真和硬件测试,建议选择实验电路结构图NO.3o

(2)按照以上流程和要求分别对LPM库中的先进先出寄存器LPM_FIFO、乘法器LPM_MULT、双口随机存储器LPM_RAM_DQ和移位寄存器LPM_SHIFTREG进行仿真测试与旎件实验验证。

(1)在做硬件测试时建议对于8位数控分频器它的8个预置数端锁定于JP2插槽内然后再将其引脚与实验箱上有“六个数码管”的副板上HEX码输出控制键插槽相连接以此获取预置数。

然后将udcnt,clk,clken,clr,qout锁定于JP3插槽内,然后将qout与实验箱上"

发光管显示模块”相连接来观察。

将其余几个引脚与实验箱上“高低电平输出控制开关”模块连接来控制输入高低电平,接着将8个本位输出引脚与实验箱上有“六个数码管”的副板上一个数码管下的插槽相连接,通过数码管来观察分频器数据变化情况。

(2)对于4位乘法器的硬件测试建议将8个数据输入端锁定于JP2插槽内然后将输入引脚与实验箱上有“六个数码管”的副板上"

HEX码输出控制键“插槽相连接以此获取乘法器的输入。

然后时钟输入端CLK锁定于137引脚,再将此引脚与“标准时钟信号源“模块相连接以此获得脉冲的输入。

然后将8个输出锁定于JP3插槽内,接着将8个输出引脚与实验箱上有"

六个数码管”的副板上一个数码管下的插槽相连接,通过数码管来观察数据相乘后的结果。

(注意在锁定引脚时要按顺序来锁定,例如AD[3..O]锁于PIN37,PIN38,PIN39,PIN41引脚,同样的对于总线形式的引脚锁定更应注意引脚锁定的顺序。

根据以上的实验内容写出实验报告,包括原理图设计、编译出现的问题及解决办法、仿真波形图,并分析硬件测试和实验过程等。

【例4-1】

WIDTH=8;

DEPTH=256;

ADDRESS_RADIX=HEX;

DATA_RADIX=HEX;

CONTENTBEGIN

00:

00;

01

:

02

03

04

05

06

07:

08:

09:

10:

11

01;

12

02;

13

03;

14

04;

15

05;

16

06;

17

07;

18

08;

19

09

20:

21

22

23

24

25

10;

26

12;

27:

14;

28:

16;

29:

18;

30:

31

32

33

09;

34

35

15;

36

37:

21;

38:

24;

39:

27;

40:

41

42

43

44

45

20;

46

47:

28;

48:

32;

49:

36;

50:

51

52

53

54

55

25;

56

30;

57:

35;

58:

40;

59:

45;

60:

61

62

63

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

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1