专用集成电路实验报告Word文档下载推荐.docx
《专用集成电路实验报告Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《专用集成电路实验报告Word文档下载推荐.docx(22页珍藏版)》请在冰豆网上搜索。
三、实验内容:
1、本实验以三线八线译码器(LS74138)为例,在XilinxISE9.2软件平台上完成设计电路的VHDL文本输入、语法检查、编译、仿真、管脚分配和编程下载等操作。
下载芯片选择Xilinx公司的CoolRunnerII系列XC2C256-7PQ208作为目标仿真芯片。
2、用1中所设计的的三线八线译码器(LS74138)生成一个LS74138元件,在XilinxISE9.2软件原理图设计平台上完成LS74138元件的调用,用原理图的方法设计三线八线译码器(LS74138),实现编译,仿真,管脚分配和编程下载等操作。
四、实验步骤:
1、三线八线译码器(LS74138)VHDL电路设计
(1)三线八线译码器(LS74138)的VHDL源程序的输入
(2)设计文件存盘与语法检查
(3)仿真文件设计
(4)芯片管脚定义
(5)编译与综合
(6)编程下载
2、元件的生成、调用和仿真
五、实验原理
VHDL源程序
process(g1,g2,inp)
begin
if((g1andg2)='
1'
)then
caseinpis
when"
000"
=>
y<
="
00000001"
;
001"
00000010"
010"
00000100"
011"
00001000"
100"
00010000"
101"
00100000"
110"
01000000"
111"
10000000"
whenothers=>
00000000"
endcase;
else
y<
endif;
endprocess;
测试向量参考程序
uut:
ls74138PORTMAP(
G1=>
G1,
G2=>
G2,
INP=>
INP,
Y=>
Y
);
--***TestBench-UserDefinedSection***
u1:
PROCESS
BEGIN
G1<
='
0'
waitfor10us;
waitfor90us;
wait;
ENDPROCESSu1;
u2:
G2<
ENDPROCESSu2;
u3:
INP<
waitfor20us;
endPROCESSu3;
六、实验结果
上图中,g1和g2为两个使能控制信号,inp为命令码输入信号,y为8位译码输出信号。
,当g1与g2均为高电平时,译码器正常工作,译码如上。
生成元件图
实验二组合逻辑电路的VHDL语言实现
一、实验目的:
1、掌握VHDL语言设计基本单元及其构成
2、掌握用VHDL语言设计基本的组合逻辑电路的方法。
3、掌握VHDL语言的主要描述语句。
二、实验器材:
计算机、QuartusII软件或XilinxISE
以下三个内容选择两个完成
用VHDL语言实现八位加法器的设计并实现功能仿真。
(一)用VHDL语言实现八位加法器的设计并实现功能仿真。
1、完成1位全加器设计,在XilinxISE软件平台上完成设计电路的VHDL文本输入,编辑,编译,仿真,管脚分配和编程下载等操作。
2、用实验内容1所设计的全加器的VHDL文件生成一个adder的元件,在XilinxISE软件原理图设计平台上完成adder元件的调用,用原理图的方法设计一个8位二进制加法器,实现编译,仿真,管脚分配和编程下载等操作。
原理:
全加器是带进位信号的加法器,其逻辑表达式为:
。
它的真值表如表1所示,其中
和
为加数与被加数,
是输入的进位位信号,而
是和数,
是输出进位位信号。
参考真值表,实现八位全加器的功能。
表1
输入
输出
1
(二)用实验内容1所设计的全加器的VHDL文件生成一个adder的元件,在XilinxISE软件原理图设计平台上完成adder元件的调用,用原理图的方法设计一个8位二进制加法器。
(三)用VHDL语言实现优先编码器的设计并实现功能仿真
libraryIEEE;
useIEEE.STD_LOGIC_1164.ALL;
useIEEE.STD_LOGIC_ARITH.ALL;
useIEEE.STD_LOGIC_UNSIGNED.ALL;
--Uncommentthefollowinglinestousethedeclarationsthatare
--providedforinstantiatingXilinxprimitivecomponents.
--libraryUNISIM;
--useUNISIM.VComponents.all;
entityadderis
Port(a:
instd_logic;
b:
cin:
sum:
outstd_logic;
cout:
outstd_logic);
endadder;
architectureBehavioralofadderis
sum<
=(axorb)xorcin;
cout<
=(aandb)or(cinanda)or(cinandb);
endBehavioral;
测试向量程序
adderPORTMAP(
a=>
a,
b=>
b,
cin=>
cin,
sum=>
sum,
cout=>
cout
);
u1:
PROCESS
a<
waitfor10us;
a<
waitfor20us;
wait;
ENDPROCESSu1;
u2:
process
begin
b<
waitfor10us;
waitfor20us;
wait;
ENDPROCESSu2;
u3:
process
begin
cin<
waitfor40us;
cin<
wait;
endprocessu3;
六、实验结果与分析
2.1原件连接图
实验三时序逻辑电路的VHDL语言实验
1、掌握用VHDL语言设计基本的时序逻辑电路及仿真。
2、掌握VHDL顺序语句和并行语句的异同
3、掌握触发器同步复位和异步复位的实现方式。
4、掌握软件时钟的加入方法。
5、掌握信号和变量的主要区别。
设计一带使能的同步复位清零的递增8位二进制计数器
设计一带使能的异步清零复位的递增8位二进制计数器
参考程序:
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
entityycounteris
port(clk,clear,ld,enable:
instd_logic;
d:
instd_logic_vector(7downto0);
qk:
outstd_logic_vector(7downto0));
endycounter;
architecturea_ycounterofycounteris
PROCESS(clk)
VARIABLEcnt:
std_logic_vector(7downto0);
IF(clk'
EVENTANDclk='
)THEN
IF(clear='
cnt:
="