EDA技术实验报告书写参考资料.docx
《EDA技术实验报告书写参考资料.docx》由会员分享,可在线阅读,更多相关《EDA技术实验报告书写参考资料.docx(47页珍藏版)》请在冰豆网上搜索。
EDA技术实验报告书写参考资料
实验一简单组合逻辑设计
一、实验前准备
本实验例子使用独立扩展下载板EP1K10_30_50_100QC208(芯片为EP1K100QC208)。
EDAPRO/240H实验仪主板的VCCINT跳线器右跳设定为3.3V;EDAPRO/240H实验仪主板的VCCIO跳线器组中“VCCIO3.3V”应短接,其余VCCIO均断开;独立扩展下载板“EP1K10_30_50_100QC208”的VCCINT跳线器组设定为2.5V;独立扩展下载板“EP1K10_30_50_100QC208”的VCCIO跳线器组设定为3.3V。
请参考前面第二章中关于“电源模块”的说明。
二、实验目的
1、熟悉Max+PlusII下简单的VHDL文本方式设计。
2、学习使用JTAG接口下载逻辑电路到CPLD并能调试到正常工作。
3、熟悉数字电路集成设计的过程。
三、实验原理
译码器是把输入的数码解出其对应的数码,例如:
BCD至7段显示器执行的动作就是把一个四位的BCD码转换成7个码的输出,以便在7段显示器上显示这个十进制数。
译码器有N个二进制选择线,那么最多可译码转换成2N个数据。
当一个译码器有N条输入线及M条输出线时,则称为N×M的译码器。
3×8译码器是依此而来。
3×8译码器真值表如下表所示:
A2A1A0
Y7Y6Y5Y4Y3Y2Y1Y0
000
00000001
001
00000010
010
00000100
011
00001000
100
00010000
101
00100000
110
01000000
111
10000000
四、实验内容
把译码器的输入接到拨码开关,输出端接8个LED灯,通过拨码开关改变输入的逻辑电平变化来观察LED输出情况,验证3×8译码器的工作状态。
五、实验要求
学习使用Max+PlusII的使用VHDL语言组成简单的数字逻辑电路。
六、设计框图及原理图
首先判断使能端口EN状态,当其满足高电平时,判断三个输入端口A2、A1、A0的状态来决定输出,如使能端口为低电平则固定输出不受三个逻辑输入A2、A1、A0的影响,使能有效时按照三个输入状态来决定八个输出的状态。
七、实验电路连线与使用操作
A0、A1、A2:
为独立扩展下载板上第53、47、46脚,内部已锁定,无需连线。
Y0、Y1、Y2、Y3、Y4、Y5、Y6、Y7:
为独立扩展下载板上的第12、13、14、15、17、18、19、24脚,内部已锁定,并已连接至“红色信号指示灯L1-8”的“L1~L8”。
EN:
为使能输入信号脚,定义在独立扩展下载板上第68脚,应接“多功能复用按键F1-F12”信号接线组“F1_12(T)”的F12~F9中任意一个引线插孔,即高电平有效。
使用操作:
使用拨码开关SW6、SW7、SW8来实现三个数字状态的开关量输入A2、A1、A0,通过“红色信号指示灯L1-8”的“L1~L8”8个LED指示灯来观察Y0~Y7的译码输出变化。
使能输入端口高电平有效。
八、波形仿真分析
输入信号:
EN:
使能信号高电平下工作,通过多功能复位按键F9~F12中任意一键来控制。
A2、A1、A0:
三个数字状态输入端口,决定八个状态输出情况,由8位数字开关组SW6、SW7、SW8分别对应A2、A1、A0来实现对Y0至Y7的译码输出。
输出信号:
Y0~Y7:
8个状态输出,输出点亮红色指示灯组L1~L8。
波形结果分析:
当A2、A1、A0对应于:
“100”时,Y(八位)输出“00010000”,当输入信号跳变为“000”时Y(八位)输出“00000001”。
满足设计要求。
九、VHDL语言源程序
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYdemo1IS
PORT(A:
INSTD_LOGIC_VECTOR(2DOWNTO0);
EN:
INSTD_LOGIC;
Y:
OUTSTD_LOGIC_VECTOR(7DOWNTO0));
ENDdemo1;
ARCHITECTUREDEC_BEHAVEOFdemo1IS
SIGNALSEL:
STD_LOGIC_VECTOR(3DOWNTO0);
BEGIN
SEL(0)<=EN;
SEL
(1)<=A(0);
SEL
(2)<=A
(1);
SEL(3)<=A
(2);
WITHSELSELECT
Y<="00000001"WHEN"0001",
"00000010"WHEN"0011",
"00000100"WHEN"0101",
"00001000"WHEN"0111",
"00010000"WHEN"1001",
"00100000"WHEN"1011",
"01000000"WHEN"1101",
"10000000"WHEN"1111",
"11111111"WHENOTHERS;
ENDDEC_BEHAVE;
实验二数码管扫描显示电路
一、实验前准备
本实验例子使用独立扩展下载板EP1K10_30_50_100QC208(芯片为EP1K100QC208)。
EDAPRO/240H实验仪主板的VCCINT跳线器右跳设定为3.3V;EDAPRO/240H实验仪主板的VCCIO跳线器组中“VCCIO3.3V”应短接,其余VCCIO均断开;独立扩展下载板“EP1K10_30_50_100QC208”的VCCINT跳线器组设定为2.5V;独立扩展下载板“EP1K10_30_50_100QC208”的VCCIO跳线器组设定为3.3V。
请参考前面第二章中关于“电源模块”的说明。
二、实验目的
1、了解时序电路设计。
2、制作一个数码管显示的7段译码电路,以备以后调用。
三、实验原理
在电子电路显示部分里,发光二极管(LED)、七段显示数码管、液晶显示(LCD)均是十分常见的人机接口电路。
通常点亮一个LED所需的电流在5~20mA之间,电流愈大,LED的亮度也高,相对的使用寿命也愈短。
若以10mA导通电流来估算一个接5V的串接电阻值计算应为:
(5-1.6)/10mA≈0.34KΩ。
七段显示数码管分为共阳、共阴二种极性。
它们等效成八个LED相连电路。
共阴极七段显示器的LED位置定义和等效电路
共阴极七段显示码十六进制转换表
十六进制码
共阴极七段显示码
Num
D8
D4
D2
D1
g
f
e
d
c
b
a
0
0
0
0
0
0
1
1
1
1
1
1
1
0
0
0
1
0
0
0
0
1
1
0
2
0
0
1
0
1
0
1
1
0
1
1
3
0
0
1
1
1
0
0
1
1
1
1
4
0
1
0
0
1
1
0
0
1
1
0
5
0
1
0
1
1
1
0
1
1
0
1
6
0
1
1
0
1
1
1
1
1
0
1
7
0
1
1
1
0
0
0
0
1
1
1
8
1
0
0
0
1
1
1
1
1
1
1
9
1
0
0
1
1
1
0
1
1
1
1
A
1
0
1
0
1
1
1
0
1
1
1
B
1
0
1
1
1
1
1
1
1
0
0
C
1
1
0
0
0
1
1
1
0
0
1
D
1
1
0
1
1
0
1
1
1
1
0
E
1
1
1
0
1
1
1
1
0
0
1
F
1
1
1
1
1
1
1
0
0
0
1
四、实验内容
用拨码开关产生8421BCD码,CPLD器件产生译码及扫描电路,把BCD码显示在LED数码管上,通过改变扫描频率观察数码管刷新效果。
五、实验要求
学习在MAX+PLUSII中使用VHDL设计功能模块,并将所生成的功能模块转换成MAX+PLUSII原理图的符号库,以便在使用原理图时调用该库。
六、设计框图
◆动态共阴数码管扫描设计框图(程序为1-D)
◆静态共阳数码管扫描设计框图(程序为1-S)
七、原理图
◆动态共阴数码管(程序为1-D):
在原理图方式中设计了两个模块,其中一个用于BCD码译码输出,转换成数码管的段码,数据输入端口为D[3..0],输出端口A~G通过数码管驱动电路分别驱动各段来点亮动态数码管。
数码管上显示的值为“8位数字开关组(A)”的“SW8~SW5”所输入的8421BCD码值的数值。
另外一个模块使用74161计数器进行数码管显示选择设定。
74161的输入端有时钟信号CLK和复位信号RESET,输出为数码管段位译码的输入信号SS0、SS1、SS2。
◆静态共阳数码管(程序为1-S):
八、实验电路连线与使用操作
◆动态共阴数码管实验电路连线(程序为1-D):
D0、D1、D2、D3:
分别为独立扩展下载板上第53、47、46、45脚,内部已锁定,并已连接至“8位数字开关组(A)”的“SW8~SW5”,无需连线。
A:
为独立扩展下载板上第86脚,应接“数码管段位引线”接线组“KPL_AH”的A
B:
为独立扩展下载板上第87脚,应接“数码管段位引线”接线组“KPL_AH”的B
C:
为独立扩展下载板上第88脚,应接“数码管段位引线”接线组“KPL_AH”的C
D:
为独立扩展下载板上第89脚,应接“数码管段位引线”接线组“KPL_AH”的D
E:
为独立扩展下载板上第90脚,应接“数码管段位引线”接线组“KPL_AH”的E
F:
为独立扩展下载板上第92脚,应接“数码管段位引线”接线组“KPL_AH”的F
G:
为独立扩展下载板上第93脚,应接“数码管段位引线”接线组“KPL_AH”的G
SS0:
为独立扩展下载板上第68脚,是数码管的位选扫描信号,接信号接线组“DS1-8A(T)”的引线插孔SS0。
SS1:
为独立扩展下载板上第69脚,是数码管的位选扫描信号,接信号接线组“DS1-8A(T)”的引线插孔SS1。
SS2:
为独立扩展下载板上第70脚,是数码管的位选扫描信号,接信号接线组“DS1-8A(T)”的引线插孔SS2。
RESET:
为独立扩展下载板上第71脚,应接“多功能复用按键F1-F12”信号接线组“F1_12(T)”的F9~F12的任意一个引线插孔
CLK:
为独立扩展下载板上第79脚即GCLK1脚,应接时钟信号接线组“CLOCK(T)”的“FRQ(11)”引线插孔。
动态共阴数码管使用操作(程序为1-D):
改变“8位数字开关组(A)”的“SW8~SW5”,共有24=16种状态,即在共阴动态数码管上分别显示十六进制数0~F。
◆静态共阳数码管实验电路连线(程序为1-S):
本例数码管为共阳极性,位于EDAPRO/240H实验仪的“DS7C”。
D1、D2、D3、D4:
分别为独立扩展下载板上第53、47、46、45脚,内部已锁定,并已连接至“8位数字开关组(A)”的“SW8~SW5”,无需连线。
数码管段码A、B、C、D、E、F、G分别为独立扩展下载板上第25、26、27、28、29、30、31脚,内部已锁定,无需连线。
IO_DS7:
为独立扩展下载板上第37脚,内部已锁定,无需连线。
静态共阳数码管使用操作(程序为1-S):
改变“8位数字开关组(A)”的“SW8~SW5”,共有24=16种状态,即在DS7C共阳静态数码管上显示对应的十六进制数0~F。
九、波形仿真分析
◆动态共阴数码管(程序为1-D):
输入信号:
D[3..0]:
状态输入端口,决定数码管的显示。
CLK:
74161的时钟信号。
RESET:
74161的复位输入信号。
输出信号:
A~G:
数码管7个段。
SS0~SS2:
动态共阴数码管位控译码的输入信号。
波形结果分析:
如仿真波形所示,在“b”坐标轴处D[3..0]的输入数据为“A”,SS0~SS2在“A”数据输入期间(列坐标a与列坐标c这段时间内),有0~7个状态循环往复,说明在此期间8个数码管的各位控均有有效输入信号,相应的数码管都有相同的字形码“A”输出(1110111),输入其他不同的BCD码如0~F,其输出结果均与此类同。
结论:
从以上分析结果可知,所设计的电路符合实验设计要求。
◆静态共阳数码管(程序为1-S):
波形仿真分析(略)
十、VHDL和AHDL语言源程序
◆动态共阴数码管显示模块VHDL程序(程序为1-D)
libraryIEEE;
useIEEE.std_logic_1164.all;
entityxdeledis
port(
di:
inSTD_LOGIC_VECTOR(3downto0);
a:
outSTD_LOGIC;
b:
outSTD_LOGIC;
c:
outSTD_LOGIC;
d:
outSTD_LOGIC;
e:
outSTD_LOGIC;
f:
outSTD_LOGIC;
g:
outSTD_LOGIC
);
endxdeled;
architectureaofxdeledis
begin
--<>
process(di)
typedata_outisarray(0to6)ofstd_logic;
variableoutp:
data_out;
begin
casediis
when"0000"=>outp:
="1111110";
when"0001"=>outp:
="0110000";
when"0010"=>outp:
="1101101";
when"0011"=>outp:
="1111001";
when"0100"=>outp:
="0110011";
when"0101"=>outp:
="1011011";
when"0110"=>outp:
="1011111";
when"0111"=>outp:
="1110000";
when"1000"=>outp:
="1111111";
when"1001"=>outp:
="1111011";
when"1010"=>outp:
="1110111";
when"1011"=>outp:
="0011111";
when"1100"=>outp:
="1001110";
when"1101"=>outp:
="0111101";
when"1110"=>outp:
="1001111";
when"1111"=>outp:
="1000111";
whenothers=>null;
endcase;
a<=outp(0);
b<=outp
(1);
c<=outp
(2);
d<=outp(3);
e<=outp(4);
f<=outp(5);
g<=outp(6);
endprocess;
enda;
74161为采用Altera内建库来进行的实现。
◆静态共阳数码管显示模块AHDL程序(程序为1-S)
SUBDESIGNdeled
(
num[3..0]:
INPUT;
a,b,c,d,e,f,g:
OUTPUT;
)
BEGIN
TABLE
num[3..0]=>a,b,c,d,e,f,g;
H"0"=>1,1,1,1,1,1,0;
H"1"=>0,1,1,0,0,0,0;
H"2"=>1,1,0,1,1,0,1;
H"3"=>1,1,1,1,0,0,1;
H"4"=>0,1,1,0,0,1,1;
H"5"=>1,0,1,1,0,1,1;
H"6"=>1,0,1,1,1,1,1;
H"7"=>1,1,1,0,0,0,0;
H"8"=>1,1,1,1,1,1,1;
H"9"=>1,1,1,1,0,1,1;
H"A"=>1,1,1,0,1,1,1;
H"B"=>0,0,1,1,1,1,1;
H"C"=>1,0,0,1,1,1,0;
H"D"=>0,1,1,1,1,0,1;
H"E"=>1,0,0,1,1,1,1;
H"F"=>1,0,0,0,1,1,1;
ENDTABLE;
END;
实验三计数器电路设计
一、实验前准备
本实验例子使用独立扩展下载板EP1K10_30_50_100QC208(芯片为EP1K100QC208)。
EDAPRO/240H实验仪主板的VCCINT跳线器右跳设定为3.3V;EDAPRO/240H实验仪主板的VCCIO跳线器组中“VCCIO3.3V”应短接,其余VCCIO均断开;独立扩展下载板“EP1K10_30_50_100QC208”的VCCINT跳线器组设定为2.5V;独立扩展下载板“EP1K10_30_50_100QC208”的VCCIO跳线器组设定为3.3V。
请参考前面第二章中关于“电源模块”的说明。
二、实验目的
1、了解各种进制计数器设计方法
2、了解同步计数器、异步计数器的设计方法
3、通过任意编码计数器体会语言编程设计电路的便利
三、实验原理
时序电路应用中计数器的使用十分普遍,如分频电路、状态机都能看到它的踪迹。
计数器有加法计数器、可逆计数器、减法计数器、同步计数器等。
利用MAXPLUSII已建的库74161、74390分别实现8位二进制同步计数器和8位二——十进制异步计数器。
输出显示模块用VHDL实现。
四、实验内容
1、用74161构成8位二进制同步计数器(程序为T3-1);
2、用74390构成8位二——十进制异步计数器(程序为T3-2);
3、用VHDL语言及原理图输入方式实现如下编码7进制计数器(程序为T3-3):
0,2,5,3,4,6,1
五、实验要求
学习使用Altera内建库所封装的器件与自设计功能相结合的方式设计电路,学习计数器电路的设计。
六、设计框图
首先要熟悉传统数字电路中同步、异步计数器的工作与设计。
在MAX+PLUSII中使用内建的74XX库选择逻辑器件构成计数器电路,并且结合使用VHDL语言设计转换模块与接口模块,最后将74XX模块与自设计模块结合起来形成完整的计数器电路。
并借用前面设计的数码管显示模块显示计数结果。
◆74161构成8位二进制同步计数器(程序为T3-1)
◆
七、原理图
◆8位二进制同步计数器原理图(程序为T3-1)
模块说明:
采用了两个74161计数器,一个用来作为低位计数,另一个作为高位计数器。
数据总线开关(4位二路开关)模块用于将计数器输出的数据分路切换为LED数码管显示所需要的数据格式。
字形码转换模块调用前面实验所设计的模块。
◆8位二——十进制异步计数器原理图(程序为T3-2)
◆7进制计数器原理图(程序为T3-3)
八、实验电路连线
与使用操作
A:
为独立扩展下载板上第86脚,应接“数码管段位引线”接线组“KPL_AH”的A
B:
为独立扩展下载板上第87脚,应接“数码管段位引线”接线组“KPL_AH”的B
C:
为独立扩展下载板上第88脚,应接“数码管段位引线”接线组“KPL_AH”的C
D:
为独立扩展下载板上第89脚,应接“数码管段位引线”接线组“KPL_AH”的D
E:
为独立扩展下载板上第90脚,应接“数码管段位引线”接线组“KPL_AH”的E
F:
为独立扩展下载板上第92脚,应接“数码管段位引线”接线组“KPL_AH”的F
G:
为独立扩展下载板上第93脚,应接“数码管段位引线”接线组“KPL_AH”的G
SEL0:
为独立扩展下载板上第69脚,为数码管的位选扫描信号,接信号接线组“DS1-8A(T)”的SS0引线插孔。
SS1、SS2接地(即在电源引线插孔组GND孔处)。
RESET:
为独立扩展下载板上第68脚,应接“多功能复用按键F1-F12”信号接线组“F1_12(T)”的F9~F12的任意一个插孔
CKCNT:
为独立扩展下载板上第70脚,应接时钟信号源接线组“CLOCK(T)”的“FRQ(18~21)”引线插孔
CKDSP:
为独立扩展下载板上第79脚即GCLK1,应接时钟信号接线组“CLOCK(T)”的“FRQ(11)”引线插孔
备注:
程序T3-1、T3-2、T3-3的插线均相同,其中T3-3中CLK与T3-1的CKCNT定义引脚相同。
使用操作:
◆8位二进制同步计数器使用操作(程序为T3-1):
程序下载以后,在“动态键盘显示模块”的二个数码管DS8.7A上显示计数值,范围为00~FFH的二位十六进制数,并循环递增计数。
◆8位二——十进制异步计数器使用操作(程序为T3-2)
程序下载以后,在“动态键盘显示模块”的二个数码管DS8.7A上显示计数值,范围为00~99的二位十进制数,并循环递增计数。
◆7进制计数器使用操作(程序为T3-3)
程序下载以后,在“动态键盘显示模块”的二个数码管DS8.7A上显示计数值,每个数码管按顺序循环显示七进制数:
0,2,5,3,4,6,1。
按动复位键几次后,可看到二个数码管显示的数不一样。
九、波形仿真分析
◆8位二进制同步计数器仿真结果(程序为T3-1):
输入信号:
RESET:
清零信号,低电平下重新开始计数。
CKDSP:
动态显示数码管扫描频率设定。
CKCNT:
计数时钟信号。
中间信号量:
DA[7..0]:
用于显示计数模块输出的中间计数结果。
输出信号:
A~G:
数码管7个段位,用于显示计数结果。
波形结果分析:
如图所示,当计数器DA[7..0]输出为“16”时,坐标轴“b”处对应数码管的段码值为“0000110”,即共阴数码管显示对应的值为1,且在坐标轴“a”与坐标轴“c”时间段之间,数码管位选译码输入信号SEL0有重复“1”“0”信号出现,表明这个时间段选中二个数码管,并显示为“16”。
其他状态下计数时钟产生的显示结果值类同。
结论:
由上述分析所得结果,完全达到实验所需的要求。
◆8位二——十进制异步计数器仿真结果(程序为T3-2)
输入信号:
RESET:
清零信号,低电平下重新开始计数。
CKDSP:
动态显示数码管扫描频率设定。
CKCNT:
计数时钟信号。
中间信号量:
DA[7..0]:
用于显示计数模块输出的中间计数结果。
输出信号:
A~G:
数码管7个段位,用于显示计数结果。
波形结果分析:
如图所示,当计数器DA[7..0]输出为“91”时,坐标轴“b”处对应数码管的段码值为