第8讲 时序逻辑电路设计

合集下载

时序逻辑电路的设计方法

时序逻辑电路的设计方法

时序逻辑电路的设计方法时序逻辑电路是一类通过内部的记忆元件来实现存储功能的数字电路,它能够根据输入信号的时序变化来决定输出信号的状态。

常见的时序逻辑电路包括时钟发生器、时钟分配器、触发器、计数器等。

在设计时序逻辑电路时,需要考虑到电路的功能要求、时序要求、稳定性和可靠性。

本文将介绍时序逻辑电路的设计方法。

1.确定功能要求:首先需要明确时序逻辑电路的功能要求,即输入信号和输出信号之间的逻辑关系。

可以通过真值表、状态转换图、状态方程等方式进行描述。

根据功能要求,可以确定电路中需要使用到的逻辑门、触发器等元件。

2.确定时序要求:在时序逻辑电路中,输入信号的变化必须满足一定的时序要求,通常需要使用时钟信号来进行同步控制。

时钟信号是一个周期性的信号,控制电路在时钟的上升沿或下降沿进行状态的改变。

时序要求还包括时序逻辑电路在不同输入组合下的稳态和状态转换时的时间要求。

3.设计电路结构:根据功能要求和时序要求,可以确定时序逻辑电路的整体结构。

电路结构的设计包括将逻辑元件(例如逻辑门、触发器)按照特定的方式连接起来,以实现所需的功能。

常见的电路结构包括级联结构、并行结构、环形结构等。

4.选择逻辑元件:根据电路的功能和时序要求,选择合适的逻辑元件来实现电路的功能。

常见的逻辑元件包括与门、或门、非门、异或门等。

触发器是时序逻辑电路的核心元件,常用的触发器包括D触发器、JK触发器、T触发器等。

5.进行逻辑功能实现:将所选择的逻辑元件按照电路结构进行连接,并完成时序逻辑电路的逻辑功能实现。

这一步可以使用绘图工具进行电路图的绘制,也可以通过硬件描述语言(HDL)进行电路的逻辑设计。

6.时序优化:对设计的时序逻辑电路进行时序优化。

时序优化可以通过调整逻辑元件的连接方式、引入时序优化电路等方式来提高电路的性能和可靠性。

时序优化的目标是尽可能满足时序要求,减少信号传输延迟和功耗。

7.进行电路仿真和验证:对设计的时序逻辑电路进行仿真和验证。

时序逻辑电路的设计方法

时序逻辑电路的设计方法

时序逻辑电路的设计方法一、同步时序规律电路的设计方法同步时序规律电路的设计是分析的逆过程,其任务是依据实际规律问题的要求,设计出能实现给定规律功能的电路。

主要介绍用触发器和门电路设计同步时序规律电路的方法。

设计步骤:1、依据设计要求和给定条件,进行规律抽象,得出电路的原始状态转换图或转换表。

① 分析给定的规律问题,确定输入变量、输出变量及该电路应包含的状态,并用字母a、b、c…或S0、S1、S2 …等表示;② 分别以上述状态为现态,考察在每一个可能的输入组合作用下,应转入哪个状态及相应的输出;2、状态化简---如有等价状态则合并之等价状态—在原始状态图中,如有两个或两个以上的状态,在相同的条件下,不仅有相同的输出,而且向同一个状态转换,则这些状态是等价的,可以合并。

3、状态安排(状态编码)依据电路包含的M个状态,确定触发器的类型和数目N。

∵N个触发器共有2n种状态组合,∵取2n-1<M<2n其次,要给每个电路状态规定对应的触发器状态组合,每组触发器的状态组合都是一组二值代码,所以,该过程又称状态编码。

4、求出电路的状态方程、激励方程和输出方程。

5、依据得到的方程式画出规律图。

6、检查设计的电路能否自启动。

例. 设计一个带有进位输出端的十三进制计数器.①建立原始状态图、②状态化简、③状态安排:n=4、④选触发器,求时钟、输出、状态、驱动方程:Q3*=Q3Q2'+Q2Q1Q0,Q2*=Q3'Q2Q1'+Q3'Q2Q0'+Q2'Q1Q0,Q1*=Q1'Q0+ Q1Q0',Q0*=Q3'Q0'+Q2'Q0',C=Q3Q2、⑤画电路图、⑥检查电路能否自启动若选用4个JK触发器,需将状态方程变换成JK触发器特性方程的标准形式,即Q*=JQ′+K′Q,找出驱动方程。

比较得到触发器的驱动方程:J3=Q2Q1Q0,K3=Q2;J2=Q1Q0,K2=(Q3'(Q1Q0)')';J1=Q0,K1=Q0;J0=(Q3Q2)',K0=1。

时序逻辑电路设计

时序逻辑电路设计

时序逻辑电路设计
时序电路设计又称时序电路综合,它是时序电路分析的逆过程,即依据给定的规律功能要求,选择适当的规律器件,设计出符合要求的时序规律电路,对时序电路的设计除了设计方法的问题还应留意时序协作的问题。

时序规律电路可用触发器及门电路设计,也可用时序的中规模的集成器件构成,以下我们分别介绍它们的设计步骤。

1.用SSI器件设计时序规律电路
用触发器及门电路设计时序规律电路的一般步骤如图所示。

(1)由给定的规律功能求出原始状态图:首先分析给定的规律功能,从而求出对应的状态转换图。

这种直接由要求实现的规律功能求得的状态转换图叫做原始状态图。

(2)状态化简:依据给定要求得到的原始状态图很可能包含有多余的状态,需要进行状态化简或状态合并。

状态化简是建立在状态等价这个概念的基础上的。

(3)状态编码、并画出编码形式的状态图及状态表:在得到简化的状态图后,要对每一个状态指定1个二进制代码,这就是状态编码(或称状态安排)。

(4)选择触发器的类型及个数:
(5)求电路的输出方程及各触发器的驱动方程:依据编码后的状态表及触发器的驱动表可求得电路的输出方程和各触发器的驱动方程。

(6)画规律电路,并检查自启动力量。

2.用MSI中规模时序规律器件构成时序规律电路
用中规模时序规律器件构成的时序功能电路主要是指用集成计数器构成任意进制计数器。

构成任意进制计数器的方法有两种:一种是置数法,另一种是归零法。

时序逻辑电路设计原则

时序逻辑电路设计原则

时序逻辑电路设计原则时序逻辑电路是数字电路的一种重要类型,广泛应用于计算机、通信、自动化等领域。

时序逻辑电路的设计质量直接影响着电路的可靠性和性能。

为了确保时序逻辑电路的正确性和高效性,设计时需要遵循一些基本原则。

一、时序逻辑电路概述时序逻辑电路是基于时钟信号进行运算和控制的电路,其输出信号的状态取决于输入信号和时钟脉冲的到达时间。

时序逻辑电路包括寄存器、触发器、计数器、时钟分频器等。

二、正确设计时序逻辑电路的原则1. 合理设置时钟信号:时序逻辑电路的运行是基于时钟信号的控制,时钟信号的频率和占空比需要合理设置。

频率过高会导致电路响应不及时,频率过低会导致电路性能下降。

2. 考虑时钟延迟:时钟信号在电路中传输需要一定的时间,这个过程称为时钟延迟。

在设计时需要考虑时钟延迟对电路性能的影响,合理控制时钟延迟的范围。

3. 确定最长延迟路径:在时序逻辑电路中,存在一条延迟最长的信号传输路径,称为最长延迟路径。

在设计时需要重点考虑最长延迟路径,以确保电路的时序正确。

4. 避免冒险现象:冒险是指在时序逻辑电路中出现不确定的状态转换现象,会导致电路输出结果不可靠。

在设计时需要采取合适的技术措施来避免冒险现象的发生。

5. 使用同步触发器:同步触发器能够根据时钟信号同步进行状态转换,减少电路中的不确定性。

在设计时应优先选择使用同步触发器。

6. 划分模块边界:为了提高电路的可维护性和可扩展性,设计时应合理划分模块边界。

每个模块负责特定的功能,使用接口进行通信,降低模块之间的耦合度。

7. 采用流水线技术:流水线是一种将复杂任务划分为多个子任务并行执行的技术。

在设计时可以采用流水线技术提高时序逻辑电路的运行速度。

8. 进行时序分析:在设计结束后,需要进行时序分析来验证设计的正确性。

通过时序分析可以检查电路运行时的时间序列,确定电路的性能和正确性。

三、时序逻辑电路设计实例以设计一个基本的时序逻辑电路为例,假设要设计一个计数器,能够实现从0到9的循环计数功能。

时序逻辑电路的设计与实现

时序逻辑电路的设计与实现

时序逻辑电路的设计与实现时序逻辑电路是数字电路中的一种重要类型,它可以根据输入信号的变化和先后顺序,产生相应的输出信号。

本文将介绍时序逻辑电路的设计与实现,并探讨其中的关键步骤和技术。

一、概述时序逻辑电路是根据时钟信号的变化产生输出信号的电路,它可以存储信息并根据特定的时序条件进行信号转换。

常见的时序逻辑电路包括触发器、计数器、移位寄存器等。

二、时序逻辑电路的设计步骤1. 确定需求:首先需要明确所要设计的时序逻辑电路的功能和性能需求,例如输入信号的种类和范围、输出信号的逻辑关系等。

2. 逻辑设计:根据需求,进行逻辑设计,确定逻辑门电路的组合方式、逻辑关系等。

可以使用真值表、状态转换图、状态表等方法进行设计。

3. 时序设计:根据逻辑设计的结果,设计时序电路,确定触发器的类型和触发方式,确定时钟信号的频率和相位,以及信号的启动和停止条件等。

4. 电路设计:将逻辑电路和时序电路整合,并进行布线设计。

通过选择合适的器件和元器件,设计稳定可靠的电路。

5. 功能验证:对设计的时序逻辑电路进行仿真验证,确保电路的功能和性能符合设计要求。

三、时序逻辑电路的实现技术1. 触发器:触发器是时序逻辑电路的基本组成部分,常见的触发器有RS触发器、D触发器、T触发器等。

通过组合和串联不同类型的触发器,可以实现不同的功能。

2. 计数器:计数器是一种特殊的时序逻辑电路,用于计数和记录输入脉冲信号的次数。

常见的计数器有二进制计数器、十进制计数器等。

3. 移位寄存器:移位寄存器是一种能够将数据向左或向右移位的时序逻辑电路。

它可以在输入端输入一个位串,随着时钟信号的变化,将位串逐位地向左或向右移位,并将移出的位存储起来。

四、时序逻辑电路的应用领域时序逻辑电路广泛应用于数字系统中,例如计算机中的控制单元、存储器等。

它们在数据处理、信息传输、控制信号处理等方面发挥着重要作用。

总结:时序逻辑电路的设计与实现是一项复杂而重要的任务。

在设计过程中,需明确需求、进行逻辑设计和时序设计,并通过合适的触发器、计数器和移位寄存器等元件来实现功能。

时序逻辑电路的基本设计步骤

时序逻辑电路的基本设计步骤

时序逻辑电路的基本设计步骤时序逻辑电路是数字电路的重要组成部分,它根据时钟信号的变化控制不同的输出状态。

时序逻辑电路的设计需要遵循一定的步骤,下面将介绍时序逻辑电路的基本设计步骤。

一、确定电路功能首先需要明确电路的功能,即输入和输出之间的关系。

这一步需要明确输入信号的种类和电路对输入信号的处理方式,以及输出信号的种类和电路对输出信号的生成方式。

二、建立状态转移图状态转移图是描述电路状态变化的图形化表示,它包括状态和状态之间的转移关系。

在建立状态转移图时,需要明确每个状态的含义和状态之间的转移关系,以便后续的电路设计。

三、建立状态表状态表是状态转移图的一种表格形式,它列出了所有可能的输入和输出组合以及对应的状态转移关系。

在建立状态表时,需要根据输入信号和状态转移图确定每个状态的输入、输出和转移条件。

四、设计电路逻辑方程在确定了状态表后,需要根据状态表设计电路的逻辑方程。

逻辑方程是根据输入信号、状态和输出信号之间的关系描述电路行为的数学表达式。

可以使用布尔代数等数学工具来设计电路的逻辑方程。

五、选择适当的电路元件根据电路的逻辑方程和输入输出的特性,需要选择适当的电路元件来实现电路功能。

常用的电路元件包括门电路、触发器、计数器等。

六、进行电路实现在选择了适当的电路元件后,需要进行电路实现。

电路实现可以使用数字集成电路或可编程逻辑器件等。

需要根据电路的逻辑方程和输入输出特性来进行电路的布线和连接。

七、进行电路测试在完成电路实现后,需要进行电路测试。

电路测试可以通过模拟测试或实际测试来进行。

在测试过程中需要检查输入输出是否符合电路设计要求,并对可能存在的故障进行排除。

八、进行电路优化在进行电路测试后,需要对电路进行优化。

电路优化可以通过简化逻辑方程、减少电路元件数量等方式来实现。

优化后的电路可以提高电路的性能和可靠性。

以上是时序逻辑电路的基本设计步骤。

在进行时序逻辑电路的设计时,需要按照以上步骤进行,以确保电路的正确性和可靠性。

时序逻辑电路的设计步骤

时序逻辑电路的设计步骤

时序逻辑电路的设计步骤介绍时序逻辑电路是计算机和电子设备中非常重要的一部分。

它能够根据不同输入信号的时序变化来控制设备的输出。

本文将详细介绍时序逻辑电路的设计步骤,帮助读者了解如何设计和实现一个有效的时序逻辑电路。

设计步骤1. 确定设计需求在开始设计时序逻辑电路之前,我们需要明确设计的需求和目标。

这包括了所需的输入信号类型、输出信号的功能和时序要求等。

明确了设计需求后,我们才能有针对性地进行后续的设计和实现。

2. 分析输入信号和逻辑功能接下来,我们需要对输入信号进行分析,并确定所需的逻辑功能。

这包括了对输入信号的电平变化的分析,以及逻辑门的使用和组合。

通常情况下,我们会使用与门、或门、非门等基本逻辑门,并通过它们的组合来实现所需的逻辑功能。

3. 确定时钟信号时序逻辑电路中最重要的部分就是时钟信号。

时钟信号用于同步电路的操作,保证各个部件按照正确的时序进行工作。

在设计过程中,我们需要确定时钟信号的频率、占空比等参数,并确保时钟信号与设计需求相匹配。

4. 设计状态机时序逻辑电路中常常使用状态机来实现复杂的逻辑功能。

在设计状态机时,我们需要确定状态数和状态转换的条件,并通过状态转换表或状态转换图来描述状态机的工作方式。

同时,我们还需要确定状态机的时序要求,确保状态机能够按照正确的时序进行状态转换。

5. 选择适当的触发器触发器是实现状态机的关键组件。

在选择触发器时,我们需要考虑触发器的类型、时序特性等。

常见的触发器包括RS触发器、D触发器、JK触发器等。

根据设计需求和时序要求,选择适当的触发器来实现所需的功能。

6. 进行综合和优化在完成逻辑设计之后,我们需要进行综合和优化,以便得到更好的电路性能。

综合是指将逻辑设计转化为实际的电路结构,优化则是通过改变电路结构或使用更高效的逻辑门来提高电路性能。

综合和优化的过程可以使用专业的电路设计软件或工具进行。

7. 进行布局和布线完成综合和优化后,我们还需要进行布局和布线。

第八章 时序逻辑电路设计

第八章 时序逻辑电路设计

D锁存器程序实例 2 锁存器程序实例
WAIT UNTIL 表达式; 表达式; 当表达式的值为“真” 时,进程被启动,否则进 程被挂起。 该语句在表达式中将 建立一个隐式的敏感信号 隐式的敏感信号 量表,当表中的任何一个 量表 信号量发生变化时,就立 即对表达式进行一次评估。 如果评估结果使表达式返 回一个“真”值,则进程 脱离等待状态,继续执行 下一个语句。
在编写上述两个程序时应注意: •无论IF语句还是WAIT ON语句,在对时钟边沿说明 时,一定要注明是上升沿还是下降沿,光说明是边沿 是不行的。 •当时钟信号作为进程的敏感信号时,在敏感信号的 表中不能出现一个以上的时钟信号,除时钟信号以外, 像复位信号等是可以和时钟信号一起出现在敏感表中 的。 •WAIT ON 语句只能放在进程的最前面或者是最后 面。
8.3 寄存器
数字电路中,用来存放二进制数据或代码的电路称为寄存器 寄存器。 寄存器 寄存器是由具有存储功能的触发器组合起来构成的。一个触发 器可以存储1位二进制代码,存放n位二进制代码的寄存器,需 用n个触发器来构成。 按照功能的不同,可将寄存器分为基本寄存器 移位寄存器 基本寄存器和移位寄存器 基本寄存器 移位寄存器两 大类。基本寄存器 基本寄存器只能并行送入数据,需要时也只能并行输出。 基本寄存器 移位寄存器中的数据可以在移位脉冲作用下依次逐位右移或左 移位寄存器 移,数据既可以并行输入、并行输出,也可以串行输入、串行 输出,还可以并行输入、串行输出,串行输入、并行输出,十 分灵活,用途也很广。
2) 用进程中的 用进程中的WAIT ON语句等待时钟 语句等待时钟
在这种情况下,描述时序电路的进程将没有敏感信号,而是用 WAIT ON 语句来控制进程的执行。也就是说,进程通常停留 在WAIT ON语句上,只有在时钟信号到来,且满足边沿条件 时,其余的语句才能执行,如下例如示: PROCESS BEGIN WAIT ON (clock_signal ) UNTIL (clock_edge_conditon); signal_out<=signal_in; --其它时序语句; --END PROCESS 在使用WAIT ON语句的 进程中,敏感信号量应写 在进程中的WAIT ON语 句后面。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY RPLCOUNT IS PORT(CLK,CLR:IN STD_LOGIC; COUNT:OUT STD_LOGIC_VECTOR(0 TO 7)); END ENTITY RPLCOUNT; ARCHITECTURE ART2 OF RPLCOUNT IS SIGNAL COUNT_IN:STD_LOGIC_VECTOR(0 TO 8); COMPONENT DIFFR IS PORT(CLK,CLR,D:IN STD_LOGIC; Q,QB:OUT STD_LOGIC); END COMPONENT; BEGIN COUNT_IN(0)<=CLK; GEN1:FOR I IN 0 TO 7 GENERATE U:DIFFR PORT MAP(CLK=>COUNT_IN(I), CLR=>CLR,D=>COUNT_IN(I+1), Q=>COUNT(I),QB=>COUNT_IN(I+1)); END GENERATE; END ARCHITECTURE ART2;
EDA技术
讲授:伍宗富
二、计数器设计
1.10进制
LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY CNT10 IS PORT (CLK: IN STD_LOGIC; CLR: IN STD_LOGIC; ENA: IN STD_LOGIC; CQ: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); CARRY_OUT: OUT STD_LOGIC); END CNT10; ARCHITECTURE ART OF CNT10 IS SIGNAL CQI: STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN PROCESS(CLK, CLR, ENA) BEGIN IF CLR='1' THEN CQI<="0000"; ELSIF CLK'EVENT AND CLK='1' THEN IF ENA='1' THEN IF CQI="1001" THEN CQI<="0000";CARRY_OUT<='1'; ELSE CQI<=CQI+'1';CARRY_OUT<='0'; END IF; END IF; END IF; END PROCESS; CQ<=CQI; END ART;
EDA技术
讲授:伍宗富
一、寄存器和移位寄存器设计
2.移位寄存器
LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY SHIFTREG8 IS PORT(DATA:IN STD_LOGIC_VECTOR(7 DOWNTO 0); CLK,RESET,SHIFT_LEFT,SHIFT_RIGHT:IN STD_LOGIC; MODE:IN STD_LOGIC_VECTOR(1 DOWNTO 0); QOUT:BUFFER STD_LOGIC_VECTOR(7 DOWNTO 0)); END ENTITY SHIFTREG8; ARCHITECTURE ART OF SHIFTREG8 IS BEGIN PROCESS BEGIN WAIT UNTIL(RISING_EDGE(CLK)); IF(RESET='1')THEN QOUT<="00000000"; ELSE --同步复位功能的实现 CASE MODE IS WHEN "01"=>QOUT<=SHIFT_RIGHT&QOUT(7 DOWNTO 1); --右移一位 WHEN "10"=>QOUT<=QOUT(6 DOWNTO 0)&SHIFT_LEFT; --左移一位 WHEN "11"=>QOUT<=DATA; WHEN OTHERS=>NULL; END CASE; END IF; END PROCESS; END ARCHITECTURE ART;
EDA技术
讲授:伍宗富
三、序列信号发生器设计
2. “01111110”序列信号检测器
LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY DETECT IS PORT(DATAIN,CLK:IN STD_LOGIC; Q:OUT STD_LOGIC); END ENTITY DETECT; ARCHITECTURE ART OF DETECT IS TYPE STATETYPE IS(S0,S1,S2,S3,S4,S5,S6,S7,S8); BEGIN PROCESS(CLK) VARIABLE PRESENT_STATE:STATETYPE; BEGIN Q<='0'; CASE PRESENT_STATE IS WHEN S0=> IF DATAIN='0' THEN PRESENT_STATE:=S1; ELSE PRESENT_STATE:=S0;END IF; WHEN S1=> IF DATAIN='1' THEN PRESENT_STATE:=S2; ELSE PRESENT_STATE:=S1;END IF; WHEN S2=> IF DATAIN='1' THEN PRESENT_STATE:=S3; ELSE PRESENT_STATE:=S1;END IF; WHEN S3=> IF DATAIN='1' THEN PRESENT_STATE:=S4; ELSE PRESENT_STATE:=S1;END IF; WHEN S4=> IF DATAIN='1' THEN PRESENT_STATE:=S5; ELSE PRESENT_STATE:=S1;END IF; WHEN S5=> IF DATAIN='1' THEN PRESENT_STATE:=S6; ELSE PRESENT_STATE:=S1;END IF; WHEN S6=> IF DATAIN='1' THEN PRESENT_STATE:=S7; ELSE PRESENT_STATE:=S1;END IF; WHEN S7=> IF DATAIN='0' THEN PRESENT_STATE:=S8;Q<='1'; ELSE PRESENT_STATE:=S0;END IF; WHEN S8=> IF DATAIN='0' THEN PRESENT_STATE:=S1; ELSE PRESENT_STATE:=S2;END IF; END CASE; WAIT UNTIL CLK='1'; END PROCESS; END ARCHITECTURE ART;
EDA技术
讲授:伍宗富
二、计数器设计
2.60进制同步计数器
LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY CNTM60 IS PORT(CI,NRESET,CLK,LOAD:IN STD_LOGIC; D:IN STD_LOGIC_VECTOR(7 DOWNTO 0); CO:OUT STD_LOGIC; QH:BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0); QL:BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0)); END ENTITY CNTM60; ARCHITECTURE ART OF CNTM60 IS BEGIN CO<='1' WHEN(QH="0101"AND QL="1001"AND CI='1')ELSE'0'; --进位输出的产生 PROCESS(CLK,NRESET) BEGIN IF(NRESET='0')THEN --异步复位 QH<="0000"; QL<="0000"; ELSIF(CLK'EVENT AND CLK='1')THEN --同步置数 IF(LOAD='1')THEN QH<=D(7 DOWNTO 4); QL<=D(3 DOWNTO 0); ELSIF(CI='1')THEN --模60的实现 IF(QL=9)THEN QL<="0000"; IF(QH=5)THEN QH<="0000"; ELSE --计数功能的实现 QH<=QH+1; END IF; ELSE QL<=QL+1; END IF; END IF; END IF; --END IF LOAD END PROCESS; END ARCHITECTURE ART;
EDA技术
讲授:伍宗富
三、序列信号发生器设计
1. “01111110”序列发生器
LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY SENQGEN IS PORT(CLK,CLR,CLOCK:IN STD_LOGIC; ZO:OUT STD_LOGIC); END ENTITY SENQGEN; ARCHITECTURE ART OF SENQGEN IS SIGNAL COUNT:STD_LOGIC_VECTOR(2 DOWNTO 0); SIGNAL Z:STD_LOGIC:='0'; BEGIN PROCESS(CLK,CLR) BEGIN IF(CLR='1')THEN COUNT<="000"; ELSE IF(CLK='1' AND CLK'EVENT)THEN IF(COUNT="111")THEN COUNT<="000"; ELSE COUNT<=COUNT +'1'; END IF; END IF; END IF; END PROCESS; PROCESS(COUNT) BEGIN CASE COUNT IS WHEN "000"=>Z<='0'; WHEN "001"=>Z<='1'; WHEN "010"=>Z<='1'; WHEN "011"=>Z<='1'; WHEN "100"=>Z<='1'; WHEN "101"=>Z<='1'; WHEN "110"=>Z<='1'; WHEN OTHERS=>Z<='0'; END CASE; END PROCESS; PROCESS(CLOCK,Z) BEGIN --消除毛刺的锁存器 IF(CLOCK'EVENT AND CLOCK='1')THEN ZO<=Z; END IF; END PROCESS; END ARCHITECTURE ART;
相关文档
最新文档