-
实验项目一
:74LS318
译码器的设计
p>
实验目的
:
1
、通过一个简单的三-八译码器的设计
,
让学生掌握组合逻辑电路的设计方法。
2
、掌
握组合逻辑电路的静态测试方法。
3
,初步了解
QUARTUS
II
原理图输入设计的全过程。
二、实验的硬件要求:
1
、
EDA2000
实验箱(其他厂家具有同等配置
试验箱均可)
,主要使用:输入:
DIP
拨码
开关
3
位、输出:
LED
灯;
2
、主芯片:
EP1K1OTC100-3
(大于此
规模的芯片亦可)
;
3
、计算机与
QUARTUS
软件;
三、实验原理
三-译码器为三输入、
八输出。
当输入信号按二进制方式的表示值为
< br>N
时
(输入端低电
平有效)
p>
,输出端从零到七,标号为
N
输出端输出低
电平表示有信号产生,而其它则为高电
平表示无信号产生。
因为
三个输入端能产生的组合状态有八种,
所以输出端在每种组合中仅
有一位为低电平的情况下,
能表示所有的输入组合,
因此不需
要像编码器实验那样再用一个
输出端指示输出是否有效。
但可以
在输入中加入一个输出使能端,
用来指示是否将当前的输
入进行
有效的译码,
当使能端指示输入信号无效或不用对当前信号进行译码时,
输出端全为
高电平,
表示无任何信号。
本例设计中没有考虑使能输入端,
自己设计时可以考虑加入使能
输入端时,程序如何设计。
输入
A2
0
0
0
0
1
1
1
1
A1
0
0
1
1
0
0
1
1
A0
0
1
0
1
0
1
1
表
8.1
三
-
八译码器真值表
输出
Y7
0
0
0
0
0
0
0
1
Y6
0
0
0
0
0
0
1
0
Y5
0
0
0
0
0
1
0
0
Y4
Y3
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
Y2
0
0
1
0
0
0
0
0
Y1
0
1
0
0
0
0
0
0
Y0
1
0
0
0
0
0
0
0
四、实验步骤:
打开
QUARTUS II
,打开原理
图编辑器
,
按图
8.26
进行原理图设计。各逻辑符号放置在
原理图上后,
经
检查保存原理图。
完成了原理图的输入后,
我们就可以用前面介
绍的软件的
使用方法,对程序进行管脚的定义、编译、仿真、下载,完成整个实验的设计
。
1
、三一八译码器设计的代码:
LIBRARY
IEEE;
USE
_LOGIC_;
ENTITY
decoder_3_8
IS
PORT(A,B,C,G1,G2A,G2B:IN STD_LOGIC;
y:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));
END decoder_3_8;
ARCHITECTURE rtf OF decoder_3_8 IS
signal input:STD_LOGIC_VECTOR(2 downto
0);
BEGIN
input<=C&B&A;
process(input,G1,G2A,G2B)
BEGIN
IF(G1='1' AND G2A='0'
AND G2B='0')then
case input IS
WHEN
WHEN
WHEN
WHEN
WHEN
WHEN
WHEN
WHEN
WHEN others=>y<=
END case;
else
y<=
END if;
END process;
END rtf;
1
、保存该代码将出现下图
继续
2
、检查该代码是否正确。即将出现
3
进行波形的描述
打开管脚
画出波形
进行功能仿真得下图
再进行时序仿真
实验二:触发器的功能模拟
一、实验目的:
1
、掌握触发器功能的测试方法。
<
/p>
2
、掌握基本
RS
触发器的组成及工作原理。
3
、掌
握集成
JK
触发器和逻辑功能及触发方式。
4
、掌握几种主要触发器之间相互转换的方法。
5
、通过实验,体会
CPLD
、
FPGA
芯片的高集成度和
多
I/O
口。
二、硬件要求:
< br>1
、
EDA2000
实验箱(其
他厂家具有同等配置试验箱均可)
,主要使用:输入:时钟源,
按键开关,拨码开关,输出:
LED
灯;
2
、主芯片:
EP1K1OTC1
00-3
(大于此规模的芯片亦可)
;
3
、计算机与
QUARTUS
软件;
三、实验内容:
分别用“图形输入法
”
、
“代码输入法”将基本
RS
触发器,同步
RS
触发器,集成
J-K
触发器,
D
触发器同
时集成在一个
FPGA
芯片中模拟其功能,并研究其相互转化的
方法。
实验的具体实现要连线测试。
四、实验原理图
实验代码:
library ieee;
use _logic_;
entity mff is
port(sd,rd,r,s,clk,j,k,d:in std_logic;
qrs,nqrs,qrsc,nqrsc,qjk,nqjk,qd,nqd:out
std_logic); --
定义多触发器
I/O.
end mff;
architecture mff of
mff is
signal qtp, qbtp,dd,ndd:
std_logic;
begin
rsff:process(rd,sd)
--
基本
RS
触发器功能模拟
begin
if rd='0'
and sd='1' then
qrs<='0';nqrs<='1';
elsif rd='1' and sd='0' then
qrs<='1';nqrs<='0';
elsif
rd='1' and sd='1' then null;
end if;
end process rsff;
rsc:process(clk,rd,sd,r,s)
--
同步
RS
触发器功能模拟
begin
if sd='0'
then
qrsc<='1'; nqrsc<='0';
elsif rd='0' then
qrsc<='0';
nqrsc<='1';
elsif clk='1'
then
if r='0' and s='1' then
qrsc<='0';nqrsc<='1';
elsif r='1' and s='0' then
qrsc<='1';nqrsc<='0';
elsif r='0' and s='0' then null;
end if;
end if;
end process
rsc;
jk:PROCESS(clk, sd, rd, j, k)
--JK
触发器功能模拟
BEGIN
IF sd='0' then qtp<='1';
qbtp<='0';
elsif rd='0'
THEN qtp<='0';qbtp<='1';
elsif
rising_edge(clk) then
if j='0' and k='0' then
null;
elsif j='0' and k='1' then
qtp<='0'; qbtp<='1';
elsif
j='1' and k='0' then
qtp<='1';
qbtp<='0';
else
qtp<=NOT qtp;
qbtp<=NOT qbtp;
end if;
end if;
qjk<=qtp;nqjk<=qbtp;
end process jk;
dff:process
(clk,rd,sd,d)
--D
触发器功能模拟
begin
if (rd='0') then dd<='0';
ndd<='1';
elsif(sd='0') then
dd<='1'; ndd<='0';
elsif
rising_edge(clk) then dd<=d; ndd<=not d;
end if;
qd<=dd; nqd<=ndd;
end process
dff;
end mff;
基本
RS
触发器仿真波形
p>
同步
RS
触发器的仿真波形
JK
触发器的波形
D
触发器功能仿真波形
实验三:带进制的计数器的设计
一、实验目的:
1
、掌握带进制的的计数器设计方法。
2
、掌握实现带计数、译码、显示功能数字系统架构方法。
p>
3
、掌握
QUARTUS
Ⅱ代码设计输入方法设计的全过程。
二、实验的硬件要求:
1
、
EDA2000
实验箱(其他厂家具有同等配置
试验箱均可)
,主要使用:输入:时钟源,
输出
:
数码管
;
2
、主芯
片:
EP1K1OTC100-3
(大于此规模的芯片亦可)<
/p>
;
3
、计算机与
QUARTUS
软件;
三、实验原理:
计数最高值都受计数
器输出位数的限制,
当位数改变时,
计数最高值也会发生改变。
如
对于
8
位计
数器,
其最高计数值为“11111111”,
即每计
255
个脉冲后就回到“00000000”;
而对于
16
位计数器,
其最高计数值为
“FFFFH”,
每计
65535
个时
钟脉冲后就回到“0000H”。
如果需要计数到某特定值时
就回到初始计数状态,
则用以上程序就无法实现,
这就提出
p>
了设计某个进制的计数器的问题。
本例设计了一个六十进制的计数器
,
为使该程序更具代表
性,还增加了一些控制功能。
一个同步清零、使能、同步预置数的六十进制计数器应具备的脚位有:<
/p>
时钟输入端:
clk
< br>;
计数输出端:
bcd10[2..0],
bcd1[3..0]
;
进位输入输
出端:
cin,co
;
加载控制端:
bcd1wr,bcd10wr
;
p>
加载数据输入:
datain[3..0
]
。
计数器是在数字系统中使用最多
的时序电路,
它不仅能用于对时钟脉冲计数,
还可以用
于分频,
定时,
产生节拍脉冲和脉冲序列以及进
行数字运算等。
计数器是一个典型的时序电
路,分析计数器就能
更好地了解时序电路的特性。计数器分同步计数器和异步计数器两种。
所谓同步计数器,
就是在时钟脉冲
(计数脉冲)
的控制下
,
构成计数器的各触发器状态同时
发生变化的那一类计数器。<
/p>
六十进制计数器
众所周知,
用一个
4
位二进制计数
器可构成
1
位十进制计数器,
而
2
位十进制计数器连
接起来可以构成一个六十
进制的计数器。
六十进制计数器常用于时钟计数。
一个六十进制
计
数器的外部端口示意图如图
8.31
所示。在该六十进制计数器的电路中,
BCD1WR
和
BCD10WR
与
DATAIN
配合,以实现对六十进制计数器的个位和十位值的预置操作。应注意,在对个位
和十位进行预置操作时,
DATAIN
输入端是公用的,因而个
位和十位的预置操作必定要串行
进行。
CLK
BCD1WR
BCD10WR
CIN
DATAIN[3..0]
BCD60COUNT
CO
BCD1[3..0]
BCD10[2.
.0]
8.31
六十进制计数器外部端口示意图
实验代码:
LIBRARY IEEE;
USE _LOGIC_;
USE _LOGIC_;
ENTITY
counter60 IS
PORT(CLK,BCD1WR,BCD10WR,CIN:STD_LOGIC;
CO:OUT STD_LOGIC;
DATAIN:IN
STD_LOGIC_VECTOR (3 DOWNTO 0);
BCD1:OUT STD_LOGIC_VECTOR (3 DOWNTO 0);
BCD10:OUT STD_LOGIC_VECTOR (3
DOWNTO 0));
END counter60;
ARCHITECTURE RTL OF counter60 IS
SIGNAL BCD1N:STD_LOGIC_VECTOR (3
DOWNTO 0);
SIGNAL
BCD10N:STD_LOGIC_VECTOR (3 DOWNTO 0);
BEGIN
BCD1<=BCD1N;
BCD10<=BCD10N;
-
-
-
-
-
-
-
-
-
上一篇:计算机维修工 试题D
下一篇:数学常用概念英文