数字逻辑基础第六章 可编程逻辑器件和数字系统设计初步本章要求
本章的内容应该结合配套的实验课程进行,
主要教学任务在配套的实验课程上完成。
学生在掌握可编程逻辑器件的基本结构后,
利用计算机仿真软件进行实验。
学生应该掌握基本的计算机仿真过程。
6.1 可编程逻辑器件
可编程逻辑器件的特点
由设计者自己完成其逻辑功能
系统集成度高
可靠性高
设计过程灵活
可以用软件进行仿真
中小规模器件
PAL,GAL等
大规模器件
基于乘积项结构 —— CPLD
基于查找表结构 —— FPGA
可编程逻辑器件的种类
CPLD的基本结构
1 1 1 1
& ≥1
A DCB
F
可编程“与 -或”阵列可编程的连线区
可编程逻辑宏单元
D
Q
R
S
QCL K
0
1
11
10
00
01
S1 S0
S
EN
M U X
M U X
1
可编程接点输出/ 输出端口与或门
&
可编程连线
CPLD的结构示意图宏单元
1~ 16控制块
I / O
可编程连线区宏单元
33~ 48控制块
I / O
宏单元
17~ 32 控制块
I / O
宏单元
49~ 64 控制块
I / O
I / O
引脚
I / O
引脚
I / O
引脚
I / O
引脚
G C L K 1
G C L R n
O E 1
O E 2
FPGA的基本结构
FPGA内部的逻辑块查找表查找表
2D
2D
S
S
Q
Q
R
R
G4
G3
G2
G1
F4
F3
F2
F1
F5
CIN
CL K
CK E
进位和控制逻辑
BY
SR
X
Q
Y
Q
XB
X
YB
Y
CO UT
1 C2
1 C2
1 E N
1 E N
进位和控制逻辑查找表是一个存储器,
直接将用户需要的输入输出关系存储在内
FPGA的内部结构示意图
RA M
RA MRA M
RA M
I/O 控制块
CL Bs CL Bs
CL Bs CL Bs
I/O 引脚逻辑块可编程连线区可编程逻辑器件的设计过程逻辑设计综合与仿真下载,调试达到预想目标N
Y
6.2 数字系统设计初步
数字系统的一般结构控制子系统数据子系统外部输入状态信号控制信号数据输入数据输出
数字系统设计的一般过程
自顶向下( Top-down)的设计方法
系统功能级设计
行为级设计
寄存器传输级设计
硬件设计语言
VHDL
Verilog HDL
用 VHDL
设计的例 1
library IEEE;
use IEEE.std_logic_1164.all;
entity shiftreg is
port ( CLK,in STD_LOGIC;
D,in STD_LOGIC_VECTOR (7 downto 0);
Q,buffer STD_LOGIC_VECTOR (7 downto 0)
);
end shiftreg;
architecture shiftreg_arch of shiftreg is
begin
process (CLK)
begin
if CLK 'event and CLK = '1‘ then
Q(0) <= D(0);
Q(7 downto 1) <= Q(6 downto 0);
end if;
end process;
end shiftreg_arch;
8位移位寄存器,
左移用 VHDL
设计的例 2
library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.std_logic_unsigned.all;
entity counter is
port ( CLK,in STD_LOGIC;
Q,out STD_LOGIC_VECTOR (3 downto 0)
);
end counter;
architecture counter_arch of counter is
signal cnt,STD_LOGIC_VECTOR (3 downto 0);
begin
Q <= cnt;
process (CLK)
begin
if CLK 'event and CLK = '1' then
if cnt = "1001" then cnt <= "0000";
else cnt <= cnt+1;
end if;
end if;
end process;
end counter_arch;
10进制加法计数器
本章的内容应该结合配套的实验课程进行,
主要教学任务在配套的实验课程上完成。
学生在掌握可编程逻辑器件的基本结构后,
利用计算机仿真软件进行实验。
学生应该掌握基本的计算机仿真过程。
6.1 可编程逻辑器件
可编程逻辑器件的特点
由设计者自己完成其逻辑功能
系统集成度高
可靠性高
设计过程灵活
可以用软件进行仿真
中小规模器件
PAL,GAL等
大规模器件
基于乘积项结构 —— CPLD
基于查找表结构 —— FPGA
可编程逻辑器件的种类
CPLD的基本结构
1 1 1 1
& ≥1
A DCB
F
可编程“与 -或”阵列可编程的连线区
可编程逻辑宏单元
D
Q
R
S
QCL K
0
1
11
10
00
01
S1 S0
S
EN
M U X
M U X
1
可编程接点输出/ 输出端口与或门
&
可编程连线
CPLD的结构示意图宏单元
1~ 16控制块
I / O
可编程连线区宏单元
33~ 48控制块
I / O
宏单元
17~ 32 控制块
I / O
宏单元
49~ 64 控制块
I / O
I / O
引脚
I / O
引脚
I / O
引脚
I / O
引脚
G C L K 1
G C L R n
O E 1
O E 2
FPGA的基本结构
FPGA内部的逻辑块查找表查找表
2D
2D
S
S
Q
Q
R
R
G4
G3
G2
G1
F4
F3
F2
F1
F5
CIN
CL K
CK E
进位和控制逻辑
BY
SR
X
Q
Y
Q
XB
X
YB
Y
CO UT
1 C2
1 C2
1 E N
1 E N
进位和控制逻辑查找表是一个存储器,
直接将用户需要的输入输出关系存储在内
FPGA的内部结构示意图
RA M
RA MRA M
RA M
I/O 控制块
CL Bs CL Bs
CL Bs CL Bs
I/O 引脚逻辑块可编程连线区可编程逻辑器件的设计过程逻辑设计综合与仿真下载,调试达到预想目标N
Y
6.2 数字系统设计初步
数字系统的一般结构控制子系统数据子系统外部输入状态信号控制信号数据输入数据输出
数字系统设计的一般过程
自顶向下( Top-down)的设计方法
系统功能级设计
行为级设计
寄存器传输级设计
硬件设计语言
VHDL
Verilog HDL
用 VHDL
设计的例 1
library IEEE;
use IEEE.std_logic_1164.all;
entity shiftreg is
port ( CLK,in STD_LOGIC;
D,in STD_LOGIC_VECTOR (7 downto 0);
Q,buffer STD_LOGIC_VECTOR (7 downto 0)
);
end shiftreg;
architecture shiftreg_arch of shiftreg is
begin
process (CLK)
begin
if CLK 'event and CLK = '1‘ then
Q(0) <= D(0);
Q(7 downto 1) <= Q(6 downto 0);
end if;
end process;
end shiftreg_arch;
8位移位寄存器,
左移用 VHDL
设计的例 2
library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.std_logic_unsigned.all;
entity counter is
port ( CLK,in STD_LOGIC;
Q,out STD_LOGIC_VECTOR (3 downto 0)
);
end counter;
architecture counter_arch of counter is
signal cnt,STD_LOGIC_VECTOR (3 downto 0);
begin
Q <= cnt;
process (CLK)
begin
if CLK 'event and CLK = '1' then
if cnt = "1001" then cnt <= "0000";
else cnt <= cnt+1;
end if;
end if;
end process;
end counter_arch;
10进制加法计数器