基本时序逻辑电路设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第五讲基本时序逻辑电路设计
2010 年12 月
基本时序逻辑电路设计
¾时序逻辑电路的基本知识
¾时序逻辑电路的VHDL描述
¾同步时序逻辑电路和异步时序逻辑电路
描述时序逻辑电路的基本方式:
表达式(输出逻辑表达式、存储单元驱动
表达式、触发器状态方程);
状态转换图/表;
时序图
设计时序逻辑电路的基本方法:
•寄存器传输级模型(RTL):
根据时序图把行为描述成寄存器值的转换•状态机:
根据状态转换图/表描述状态机的行为
状态转换图寄存器传输级结构
分析一个时序电路,就是要找出给定时序电路的逻辑功能。具体地说,就是要求找出电路的状态和输出状态在输入变量和时钟信号作用下的变化规律。
T型触发器
1
n
Q+Y
11110001
00100100X n Q 1n Q +Y
寄存器传输级时序模型
•D触发器
•触发器应用电路
•计数器设计(同步、异步计数)•分频电路设计
•电平锁存器
同步D触发器RTL综合结果图
同步D触发器仿真结果图可设计
同步电路、
延迟电路
¾延迟电路
entity delay is
port( clk,din: in std_logic; d1,d2,dout:out std_logic);
end delay;
architecture rtl of delay is
signal t1,t2,tout:std_logic;
begin
process(clk)
begin
if rising_edge(clk) then
t1<=din; t2<=t1; tout<=t2;
end if;
end process;
dout<=tout; d2<=t2; d1<=t1;
end rtl;
¾微分器电路
entity diff is
port( clk,din: in std_logic; d1,d2,up_diff,dn_diff,up_dn_diff:out std_logic); end diff;
architecture rtl of diff is
signal t1,t2:std_logic;
begin
process(clk)
begin
if rising_edge(clk) then t1<=din; t2<=t1; end if;
end process;
d2<=t2; d1<=t1;
up_diff<=t1 and not t2;
dn_diff<=not t1 and t2;
up_dn_diff<=t1 xor t2;
end rtl;
1
n
Q+Y
entity testservhdl is
Port ( C : in std_logic;
X : in std_logic;
Y : out std_logic;
PRE : in std_logic);
end testservhdl;
architecture Behavioral of testservhdl is signal q,t:std_logic;
begin
t<=not X;
Y<=q and C and X;
process
begin
if PRE='1' then q<='1';
elsif rising_edge(C) then
if t='1' then q<=not q;
else q<=q;
end if;
end if;
end process;
end Behavioral;
1.同步时序电路设计
1)同步时序电路原理说明
从构成方式上讲,同步时序电路所有操作都是在同一时钟严格的控制下步调一致地完成的。从电路行为上讲,同步电路的时序电路共用同一个时钟,而所有的状态变化都是在时钟的上升沿(或下降沿)完成的。
在VHDL实现时并不要求同一时钟,而是同源时钟。所谓的同源时钟是指同一个时钟源衍生频率比值为2的幂次方,且初相位相同的时钟。
具有同步复位功能的同步与门的描述entity syngate is
port ( clk: in std_logic;
a : in std_logic;
b : in std_logic;
rst_n:in std_logic;
y : out std_logic);
end syngate;
architecture Behavioral of syngate is begin
process(clk)
begin
if rising_edge(clk) then
if rst_n='0' then y<='0'
else y<=a and b;
end if;
end if;
end process;
end Behavioral;
复位信号rst_n通过D 触发器的控制端来实现。