文档库 最新最全的文档下载
当前位置:文档库 › FPGACPLD数字逻辑电路设计经验

FPGACPLD数字逻辑电路设计经验

FPGACPLD数字逻辑电路设计经验
FPGACPLD数字逻辑电路设计经验

FPGA/CPLD数字电路设计经验分享

摘要:在数字电路的设计中,时序设计是一个系统性能的主要标志,在高层次设计方法中,对时序控制的抽象度也相应提高,因此在设计中较难把握,但在理解RTL电路时序模型的基础上,采用合理的设计方法在设计复杂数字系统是行之有效的,通过许多设计实例证明采用这种方式可以使电路的后仿真通过率大大提高,并且系统的工作频率可以达到一个较高水平。

关键词:FPGA 数字电路时序时延路径建立时间保持时间

1 数字电路设计中的几个基本概念:

1.1 建立时间和保持时间:

建立时间(setup time)是指在触发器的时钟信号上升沿到来以前,数据稳定不变的时间,如果建立时间不够,数据将不能在这个时钟上升沿被打入触发器;保持时间(hold time)是指在触发器的时钟信号上升沿到来以后,数据稳定不变的时间,如果保持时间不够,数据同样不能被打入触发器。如图1 。数据稳定传输必须满足建立和保持时间的要求,当然在一些情况下,建立时间和保持时间的值可以为零。 PLD/FPGA开发软件可以自动计算两个相关输入的建立和保持时间(如图2)

图1 建立时间和保持时间关系图

注:

在考虑建立保持时间时,应该考虑时钟树向后偏斜的情况,在考虑建立时间时应该考虑时钟树向前偏斜的情况。在进行后仿真时,最大延迟用来检查建立时间,最小

延时用来检查保持时间。

建立时间的约束和时钟周期有关,当系统在高频时钟下无法工作时,降低时钟频率就可以使系统完成工作。保持时间是一个和时钟周期无关的参数,如果设计不合理,使得布局布线工具无法布出高质量的时钟树,那么无论如何调整时钟频率也无法达

到要求,只有对所设计系统作较大改动才有可能正常工作,导致设计效率大大降低。

因此合理的设计系统的时序是提高设计质量的关键。在可编程器件中,时钟树的偏

斜几乎可以不考虑,因此保持时间通常都是满足的。

1.2 FPGA中的竞争和冒险现象

信号在FPGA器件内部通过连线和逻辑单元时,都有一定的延时。延时的大小与连线的长短和逻辑单元的数目有关,同时还受器件的制造工艺、工作电压、温度等条件的影响。信号的高低电平转换也需要一定的过渡时间。由于存在这两方面因素,多路信号的电平值

发生变化时,在信号变化的瞬间,组合逻辑的输出有先后顺序,并不是同时变化,往往会出现一些不正确的尖峰信号,这些尖峰信号称为"毛刺"。如果一个组合逻辑电路中有"毛刺"出现,就说明该电路存在"冒险"。(与分立元件不同,由于PLD内部不存在寄生电容电感,这些毛刺将被完整的保留并向下一级传递,因此毛刺现象在PLD、FPGA设计中尤为突出)图2是一个逻辑冒险的例子,从图3的仿真波形可以看出,"A、B、C、D"四个输入信号经过布线延时以后,高低电平变换不是同时发生的,这导致输出信号"OUT"出现了毛刺。(我们无法保证所有连线的长度一致,所以即使四个输入信号在输入端同时变化,但经过PLD

内部的走线,到达或门的时间也是不一样的,毛刺必然产生)。可以概括的讲,只要输入信号同时变化,(经过内部走线)组合逻辑必将产生毛刺。 将它们的输出直接连接到时钟输入端、清零或置位端口的设计方法是错误的,这可能会导致严重的后果。 所以我们必须检查设计中所有时钟、清零和置位等对毛刺敏感的输入端口,确保输入不会含有任何毛刺

图2 存在逻辑冒险的电路示例

图3 图2所示电路的仿真波形

冒险往往会影响到逻辑电路的稳定性。时钟端口、清零和置位端口对毛刺信号十分敏感,任何一点毛刺都可能会使系统出错,因此判断逻辑电路中是否存在冒险以及如何避免冒险是设计人员必须要考虑的问题。

如何处理毛刺

我们可以通过改变设计,破坏毛刺产生的条件,来减少毛刺的发生。例如,在数字电路设计中,常常采用格雷码计数器取代普通的二进制计数器,这是因为格雷码计数器的输出每次只有一位跳变,消除了竞争冒险的发生条件,避免了毛刺的产生。

毛刺并不是对所有的输入都有危害,例如D触发器的D输入端,只要毛刺不出现在时钟的上升沿并且满足数据的建立和保持时间,就不会对系统造成危害,我们可以说D触发器的D输入端对毛刺不敏感。 根据这个特性,我们应当在系统中尽可能采用同步电路,这

是因为同步电路信号的变化都发生在时钟沿,只要毛刺不出现在时钟的沿口并且不满足数据的建立和保持时间,就不会对系统造成危害。 (由于毛刺很短,多为几纳秒,基本上都不可能满足数据的建立和保持时间)

去除毛刺的一种常见的方法是利用D触发器的D输入端对毛刺信号不敏感的特点,在输出信号的保持时间内,用触发器读取组合逻辑的输出信号,这种方法类似于将异步电路转化为同步电路。 图4给出了这种方法的示范电路,图5是仿真波形。

图4 消除毛刺信号方法之二

图5 图4所示电路的仿真波形

如前所述,优秀的设计方案,如采用格雷码计数器,同步电路等,可以大大减少毛刺,但它并不能完全消除毛刺。毛刺并不是对所有输入都有危害,例如D触发器的D输入端,只要毛刺不出现在时钟的上升沿并且满足数据的建立和保持时间,就不会对系统造成危害。因此我们可以说D触发器的D输入端对毛刺不敏感。但对于D触发器的时钟端,置位端,清零端,则都是对毛刺敏感的输入端,任何一点毛刺就会使系统出错,但只要认真处理,我们可以把危害降到最低直至消除。下面我们就对几种具体的信号进行探讨。

1.3 清除和置位信号

在FPGA的设计中,全局的清零和置位信号必须经过全局的清零和置位管脚输入,因为他们也属于全局的资源,其扇出能力大,而且在FPGA内部是直接连接到所有的触发器的置位和清零端的,这样的做法会使芯片的工作可靠、性能稳定,而使用普通的IO脚则不能保证该性能。

在FPGA的设计中,除了从外部管脚引入的全局清除和置位信号外在FPGA内部逻辑的处理中也经常需要产生一些内部的清除或置位信号。清除和置位信号要求象对待时钟那样小心地考虑它们,因为这些信号对毛刺也是非常敏感的。

在同步电路设计中,有时候可以用同步置位的办法来替代异步清0。在用硬件描述语言的设计中可以用如下的方式来描述:

异步清0的描述方法:

process(rst,clk)

begin

if rst=’1’ then

count<=(others=>’0’);

elsif clk’event and clk=’1’ then

count<=count+1;

end if;

end process;

同步清0的描述方法:

process

begin

wait until clk’event and clk=’1’;

if rst=’1’ then

count<=(others=>’0’);

else

count<=count+1;

end if;

end process;

图6 异步清0、置位逻辑图

图7 同步清0、置位关系图

1.4 触发器和所存器:

我们知道,触发器是在时钟的沿进行数据的锁存的,而所存器是用电平使能来锁存数据的。所以触发器的Q输出端在每一个时钟沿都会被更新,而所存器只能在使能电平有效器件才会被更新。在FPGA设计中建议如果不是必须那么应该尽量使用触发器而不是所存器。

那么在使用硬件描述语言进行电路设计的时候如何区分触发器和所存器的描述方法哪?其实有不少人在使用的过程中可能并没有特意区分过,所以也忽略了二者在描述方法上的区别。下面是用VHDL语言描述的触发器和所存器以及综合器产生的电路逻辑图。

触发器的语言描述:

process

begin

wait until clk’event and clk=’1’;

q<=d;

end process;

图 触发器

所存器的语言描述:

process(en,d)

begin

if en=’1’ then

q<=d;

end if;

end process;

图 所存器

由上述对Latch的描述可见,其很容易于选择器的描述相混淆,用VHDL语言对选择器的描述方法如下:

process(en,a,b)

begin

if en=’1’ then

q<=a;

else

q<=b;

end if;

end process;

2 FPGA/CPLD中的一些设计方法

2.1 FPGA设计中的同步设计

异步设计不是总能满足(它们所馈送的触发器的)建立和保持时间的要求。因此,异步输入常常会把错误的数据锁存到触发器,或者使触发器进入亚稳定的状态,在该状态下,触发器的输出不能识别为l或0。如果没有正确地处理,亚稳性会导致严重的系统可靠性问题。

另外,在FPGA的内部资源里最重要的一部分就是其时钟资源(全局时钟网络),它一般是经过FPGA的特定全局时钟管脚进入FPGA内部,后经过全局时钟BUF适配到全局时钟网络的,这样的时钟网络可以保证相同的时钟沿到达芯片内部每一个触发器的延迟时间差异是可以忽略不计的。

在FPGA中上述的全局时钟网络被称为时钟树,无论是专业的第三方工具还是器件厂商提供的布局布线器在延时参数提取、分析的时候都是依据全局时钟网络作为计算的基准的。如果一个设计没有使用时钟树提供的时钟,那么这些设计工具有的会拒绝做延时分析有的延时数据将是不可靠的。

在我们日常的设计中很多情形下会用到需要分频的情形,好多人的做法是先用高频时钟计数,然后使用计数器的某一位输出作为工作时钟进行其他的逻辑设计。其实这样的方法是不规范的。比如下面的描述方法:

process

begin

wait until clk’event and clk=’1’;

if fck=’1’ then

count<=(others=>’0’);

else

count<=count+1;

end if;

end process;

process

begin

wait until count(2)’event and count(2)=’1’ ;

shift_reg<=data;

end process;

在上述的第一个process电路描述中,首先计数器的输出结果(count(2))相对于全局时钟clk已经产生了一定的延时(延时的大小取决于计数器的位数和所选择使用的器件工艺);而在第二个process中使用计数器的bit2作为时钟,那么shift_reg相对于全局clk的延时将变得不好控制。布局布线器最终给出的时间分析也是不可靠的。这样产生的结果波形仿真如下图所示:

正确的做法可以将第二个process这样来写。

process

begin

wait until clk’event and clk=’1’ ;

if count(2 downto 0)=”000” then

shift_reg<=data;

end if;

end process;

或者分成两步来写:

process(count)

begin

if count(2 downto 0)=”000” then

en<=’1’;

else

en<=’0’;

end if;

end process;

process

begin

wait until clk’event and clk=’1’ ;

if en=’1’ then

shift_reg<=data;

end if;

end process;

这样做是相当于产生了一个8分频的使能信号,在使能信号有效的时候将data数据采样到shift_reg寄存器中。但此种情形下shift_reg的延时是相对于全局时钟clk的。下面的图形更能看得清楚。

图 上图中波形的局部放大

2.2 FPGA设计中的延时电路的产生:

在日常的电路设计中,有时候我们需要对信号进行延时处理来适应对外接口的时序关系,最经常也是最典型的情况是做处理机的接口;因为与处理的接口时序关系是异步的,而一个规范的FPGA设计应该是尽可能采用同步设计。那么遇到这种情况该如何处理呢?

首先在FPGA中要产生延时,信号必须经过一定的物理资源。在硬件描述语言中有关键词Wait for xx ns,需要说明的是该语法是仅仅用于仿真而不能用于综合的,可综合的延时方法有:

使信号经过逻辑门得到延时(如非门);

使用器件提供的延时单元(如Altera公司的LCELL,Xilinx公司的);

注意:当使用多级非门的时候综合器往往会将其优化掉,因为综合器会认为一个信号非两次还是它自己。

需要说明的是在FPGA/CPLD内部结构是一种标准的宏单元,下图是Xilinx公司的Spartans II系列器件的一个标准宏单元。虽然不同的厂家的芯片宏单元的结构不同,但概括而言都是由一些组合逻辑外加一或二个触发器而构成。在实际应用中,当一个模块内的组合逻辑被使用了那么与其对应的触发器也就不能用了;同样如果触发器单元被用了那么组合逻辑单元也就废了。这就是有时候(特别是使用CPLD)虽然设计使用的资源并不多但布局布线器却报告资源不够使用的原因。

现面的一个例子是前一段时间我在公司遇到的一个设计。设计使用Altera公司的EPM7256型号的CPLD。该设计实际使用的寄存器资源只有109个,占整个器件资源的42%。可是该设计使用了如下图所示的延时方法来做处理器接口的时序:

在该电路的设计中使用了大量的LCELL来产生100多纳秒的延时,这样做的后果是虽然整个电路的触发器资源只使用了42%,可是用MaxplusII进行布局布线已经不能够通过了。而且我怀疑经过这么多逻辑的延时后所产生的信号还能保持原来的性能不。

当需要对某一信号作一段延时时,初学者往往在此信号后串接一些非门或其它门电路,此方法在分离电路中是可行的。但在FPGA中,开发软件在综合设计时会将这些门当作冗余逻辑去掉,达不到延时的效果。用ALTERA公司的MaxplusII开发FPGA时,可以通过插入一些LCELL原语来产生一定的延时,但这样形成的延时在FPGA芯片中并不稳定,会随温度等外部环境的改变而改变,因此并不提倡这样做。在此,可以用高频时钟来驱动一移位寄存器,待延时信号作数据输入,按所需延时正确设置移位寄存器的级数,移位寄存器的输出即为延时后的信号。此方法产生的延时信号与原信号比有误差,误差大小由高频时钟的周期来决定。对于数据信号的延时,在输出端用数据时钟对延时后信号重新采样,就可以消除误差。

对于这样大的延时我建议的实现方法是采用时钟锁存来产生延时的方法,我们知道当一个信号用时钟锁存一次,将会占用一个触发器资源,信号会向后推移一个时钟周期;该同事的设计里CPLD芯片正好连接有32MHz的时钟,那么每用时钟锁存一次ssp信号就会推移31ns,这样只需多使用3个触发器资源就可以达到目的了。电路图和仿真波形如下图所示:当然这样做对原来信号高低电平的宽度会稍有改变,但只要是在与其接口的芯片的容许范围之内就不会影响到功能的实现。

图 用于延时的电路图

上图仿真波形

2.3 如何提高系统的运行速度

同步电路的速度是指同步时钟的速度。同步时钟愈快,电路处理数据的时间间隔越短,电路在单位时间处理的数据量就愈大.

我们先来看一看同步电路中数据传递的一个基本模型,如下图:

(Tco是触发器时钟到数据输出的延时;Tdelay是组合逻辑的延时;Tsetup 是触发器的建立时间)

假设数据已经被时钟的上升沿打入D触发器,那么数据到达第一个触发器的Q端需要Tco,再经过组合逻辑的延时Tdelay到达的第二个触发器的D端,要想时钟能在第二个触发器再次被稳定的锁入触发器,则时钟的延迟不能晚于Tco+Tdelay+Tsetup,(我们可以回顾一下前面讲过的建立和保持时间的概念,就可以理解为什么公式最后要加上一个Tdelay) 由以上分析可知:最小时钟周期:T=Tco+Tdelay+Tsetup 最快时钟频率 F= 1/T PLD开发软件也正是通过这个公式来计算系统运行速度Fmax

注:在这个逻辑图中有个参数:Tpd ,即时钟的延时参数,我们在刚才做时间分析的时候,没有提这个参数,(如果使用PLD的全局时钟型号,Tpd可以为0,如果是普通时钟,则不为0)。所以如果考虑到时钟的延时,精确的公式应该是T=Tco+Tdelay+Tsetup-Tpd。当然以上全部分析的都是器件内部的运行速度,如果考虑芯片I/O管脚延时对系统速度的影响,那么还需要加一些修正。

由于Tco、Tsetup是由具体的器件和工艺决定的,我们设计电路时只可以改变Tdelay。所以缩短触发器间组合逻辑的延时是提高同步电路速度的关键。由于一般同步电路都不止一级锁存(如图3),而要使电路稳定工作,时钟周期必须满足最大延时要求,缩短最长延时路径,才可提高电路的工作频率。

如图2所示:我们可以将较大的组合逻辑分解为较小的几块,中间插入触发器,这样可以提高电路的工作频率。这也是所谓“流水线”(pipelining)技术的基本原理。

对于图3的上半部分,它时钟频率受制于第二个较大的组合逻辑的延时,通过适当的方法平均分配组合逻辑,可以避免在两个触发器之间出现过大的延时,消除速度瓶颈。

FPGA/CPLD开发软件中也有一些参数设置,通过修改这些设置,可以提高编译/布局布线后系统速度,但是根据经验这种速度的提高是很有限的,假如按照要求我们需要设计一个可以工作到50MHz的系统,实际布局布线器报告出来的Fmax只有40MHz,此时如果我们使用布局布线器的设置选项最多可以提高到45MHz,这还是运气比较好的情况。而且你必须了解这些选项的含义、使用背景等。

其实在一个设计里影响速度的瓶颈经常只会有几条,我们将延时最大的路径称作关键路径。当设计的运行速度不符合系统设计要求的时候我们可以首先找到不能满足要求的关键路径,按照上述的方法将关键路径上的组合逻辑拆分成多个中间用触发器隔开,这样很容易就可以从根本上提升系统的运行速度了。

有的设计在设计开始就知道那部分电路会产生比较大的组合逻辑,导致速度瓶颈的产生,那么就应该在开始就想好解决办法。比如现在设计需要产生一个32位的加法器,并且要求能够工作在50MHz。根据经验直接用32位加法器肯定是达不到50MHz的要求的,这时我们可以将其分成3个12位计数器来操作,后面的计数器只要将前面计数器结果的高位(进位位)相加就可以了。

下面是原来在宽带接入服务器设计中的流量统计单元中的32位加法器的描述:

----------------------------------------------------------

---- flow count element

----------------------------------------------------------

-----temporary computing 12 bits adder

process(Count_0_en,count_buffer,Len,Carry_0_0,Carry_0_1)

begin

case Count_0_en is

---1st Step addition (10 downto 0) + (10 downto 0)

when "001" => add_12_a_0 <= ('0' & count_buffer(0)(10 downto 0));

add_12_b_0 <= ('0' & Len(10 downto 0));

---2nd Step addition (21 downto 11) + Carry_0_0

when "010" => add_12_a_0 <= ('0' & count_buffer(0)(21 downto 11));

add_12_b_0 <= ("00000000000" & Carry_0_0);

---3rd Step addition (31 downto 22) + Carry_0_1

when "100" => add_12_a_0 <= ("00" & count_buffer(0)(31 downto 22));

add_12_b_0 <= ("00000000000" & Carry_0_1);

when others => add_12_a_0 <=(others=>’X’);

add_12_b_0 <=(others=>’X’);

end case;

end process;

------12 bits adder

add_12_result_0 <= add_12_a_0 + add_12_b_0;

------Bytes Count

process(RST,CLK_25MHz,IO,OE_bar,data_sel,Count_0_en)

begin

if(RST = '1')then -----system Reset

count_buffer(0) <= (others => '0');

Carry_0_0 <= '0';

Carry_0_1 <= '0';

Carry_0_2 <= '0';

elsif(CLK_25MHz'event and CLK_25MHz = '0')then

if(OE_bar = '0' and data_sel = '0')then

count_buffer(0) <= IO;

Carry_0_2 <= '0';

else

case Count_0_en is

---1st Step addition (10 downto 0) + (10 downto 0)

when "001" => count_buffer(0)(10 downto 0) <= add_12_result_0(10 downto 0);

Carry_0_0 <= add_12_result_0(11);--first step carry

---2nd Step addition (21 downto 11) + Carry_0_0

when "010" => count_buffer(0)(21 downto 11) <= add_12_result_0(10 downto 0);

Carry_0_1 <= add_12_result_0(11);--Second step carry

---3rd Step addition (31 downto 22) + Carry_0_1

when "100" => count_buffer(0)(31 downto 22) <= add_12_result_0(9 downto 0);

Carry_0_2 <= add_12_result_0(10);--Third step carry when others => Carry_0_2 <= '0';

end case;

end if;

end if;

end process;

2.4 信号输出

当你需要将FPGA/CPLD内部的信号通过管脚输出给外部相关器件的时候,如果不影响功能最好是将这些信号通过用时钟锁存后输出。因为通常情况下一个板子是工作于一种或

两种时钟模式下,与FPGA/CPLD 相连接的芯片的工作时钟大多数情形下与FPGA 的时钟同源,如果输出的信号经过时钟锁存可以起到如下的作用:

容易满足芯片间信号连接的时序要求;

容易满足信号的建立保持时间;

CLK

SIG SIG2

SIG1

如上图所示,比如FPGA/CPLD 在CLK 的时钟沿1锁存一个信号得到SIG 所示的波形,SIG 信号需要给另外的一个与其接口的芯片,那么该芯片将一定会在CLK 的时钟沿2正确采样到SIG 信号。但是如果该信号在FPGA/CPLD 中输出的时候不是用时钟沿锁存的,那将有可能出现SIG1/SIG2所示的时序关系,则与其接口的芯片在时钟沿2处采样该信号的时候有可能出现建立保持时间不满足要求而出现采样不可靠、沿打沿等情况。另外通过组合逻辑输出还有可能出现毛刺的情况。所有这些不规范的设计都会引起系统工作时的不可靠、不稳定的情形。

2.5 寄存异步输入信号

我们在日常的设计工作中,FPGA/CPLD 总是要与别的芯片相连接的,FPGA/CPLD 会给别的芯片输出信号,同时也要处理别的芯片送来的信号,这些信号往往对FPGA/CPLD 内部的时钟系统而言是异步的,为了可靠的采样到这些输入信号,建议将这些输入信号使用相应的时钟锁存后在处理,这样做:

将原来的异步信号转化成同步来处理;

去除输入信号中的毛刺(特别是对于数据总线);

图 FPGA/CPLD 中信号的输入、输出锁存

2.6 FPGA/CPLD 中的时钟设计

无沦是用离散逻辑、可编程逻辑,还是用全定制硅器件实现的任何数字设计,为了成功地操作,可靠的时钟是非常关键的。设计不良的时钟在极限的温度、电压或制造工艺的偏差情况下将导致错误的行为,并且调试困难、花销很大。在设计FPGA/CPLD 时通常采用几种时钟类型。时钟可分为如下四种类型:全局时钟、门控时钟、多级逻辑时钟和波动式时钟。多时钟系统能够包括上述四种时钟类型的任意组合。

无论采用何种方式,电路中真实的时钟树也无法达到假定的理想时钟,因此我们必须依据理想时钟,建立一个实际工作时钟模型来分析电路,这样才可以使得电路的实际工作效果和预期的一样。在实际的时钟模型中,我们要考虑时钟树传播中的偏斜、跳变和绝对垂直的偏差以及其它一些不确定因素。

对于寄存器而言,当时钟工作沿到来时它的数据端应该已经稳定,这样才能保证时钟工作沿采样到数据的正确性,这段数据的预备时间我们称之为建立时间(setup time )。数据同

样应该在时钟工作沿过去后保持一段时间,这段时间称为保持时间(hold time )。因此具体的时钟如图5所示。其中网络延迟是指时钟的传播延时以及因为跳变不垂直等效的偏差,在此基础上考虑一些不确定因素实际的工作时钟沿如图中所示。保持时间(hold )和建立时间(setup )都是相对于实际时钟跳变而言的。因此在确定电路时序时,必须要考虑到这些因素,使得建立时间和保持时间符合要求。

网络

为了使电路正常工作,建立时间和保持时间应该分别满足:

min

_log min __ic Q clock skew hold t t t t +<+skew

setup ic Q clock clock t t t t t +++>max _log max __其中t clock _Q _max 是时钟沿变化到数据输出端变化的最慢变化情况,t logic _max 是寄存器间组合逻辑的最大可能延迟,t clock _Q _min 和t logic _min 表示最快情况。在考虑建立保持时间时,应该考虑时钟树向后偏斜的情况,在考虑建立时间时应该考虑时钟树向前偏斜的情况。在进行后仿真时,最大延迟用来检查建立时间,最小延时用来检查保持时间。

2.6.1 全局时钟

对于一个设计项目来说,全局时钟(或同步时钟)是最简单和最可预测的时钟。在PLD/FPGA设计中最好的时钟方案是:由专用的全局时钟输入引脚驱动的单个主时钟去钟控设计项目中的每一个触发器。只要可能就应尽量在设计项目中采用全局时钟。PLD/FPGA都具有专门的全局时钟引脚,它直接连到器件中的每一个寄存器。这种全局时钟提供器件中最短的时钟到输出的延时。

图1 示出全局时钟的实例。图1 定时波形示出触发器的数据输入D[1..3]应遵守建立时间和保持时间的约束条件。建立和保持时间的数值在PLD数据手册中给出,也可用软件的定时分析器计算出来。如果在应用中不能满足建立和保持时间的要求,则必须用时钟同步输入信号(参看下一章“异步输入”)。

图1 全局时钟

(最好的方法是用全局时钟引脚去钟控PLD内的每一个寄存器,于是数据只要遵守相对时钟的建立时间tsu和保持时间th)

2.6.2 门控时钟

在许多应用中,整个设计项目都采用外部的全局时钟是不可能或不实际的。PLD具有乘积项逻辑阵列时钟(即时钟是由逻辑产生的),允许任意函数单独地钟控各个触发器。然而,当你用阵列时钟时,应仔细地分析时钟函数,以避免毛刺。

通常用阵列时钟构成门控时钟。门控时钟常常同微处理器接口有关,用地址线去控制写脉冲。然而,每当用组合函数钟控触发器时,通常都存在着门控时钟。如果符合下述条件,门控时钟可以象全局时钟一样可靠地工作:

驱动时钟的逻辑必须只包含一个“与”门或一个“或”门。如果采用任何附加逻在某些工作状态下,会出现竞争产生的毛刺。

逻辑门的一个输入作为实际的时钟,而该逻辑门的所有其它输入必须当成地址或控制线,它们遵守相对于时钟的建立和保持时间的约束。

图2和图3 是可靠的门控时钟的实例。在 图2 中,用一个“与”门产生门控时钟,在 图3 中,用一个“或”门产生门控时钟。在这两个实例中,引脚nWR和nWE考虑为时钟引脚,引脚ADD[o..3]是地址引脚,两个触发器的数据是信号D[1..n]经随机逻辑产生的。

图2 “与”门门控时钟

图3 “或”门门控时钟

图2和图3 的波形图显示出有关的建立时间和保持时间的要求。这两个设计项目的地址线必须在时钟保持有效的整个期间内保持稳定(nWR和nWE是低电平有效)。如果地址线在规定的时间内未保持稳定,则在时钟上会出现毛刺,造成触发器发生错误的状态变化。另一方面,数据引脚D[1..n]只要求在nWR和nWE的有效边沿处满足标准的建立和保持时间的规定。

我们往往可以将门控时钟转换成全局时钟以改善设计项目的可靠性。图4 示出如何用全局时钟重新设计 图2 的电路。地址线在控制D触发器的使能输入,许多PLD设计软件,如MAX+PLUSII软件都提供这种带使能端的D触发器。当ENA为高电平时,D输入端的值被钟控到触发器中:当ENA为低电平时,维持现在的状态。

图4 “与”门门控时钟转化成全局时钟

图4 中重新设计的电路的定时波形表明地址线不需要在nWR有效的整个期间内保持稳定;而只要求它们和数据引脚一样符合同样的建立和保持时间,这样对地址线的要求就少很多。

图5给出一个不可靠的门控时钟的例子。3位同步加法计数器的RCO输出用来钟控触发器。然而,计数器给出的多个输入起到时钟的作用,这违反了可靠门控时钟所需的条件之一。在产生RCO信号的触发器中,没有一个能考虑为实际的时钟线,这是因为所有触发器在几乎相同的时刻发生翻转。而我们并不能保证在PLD/FPGA内部QA,QB,QC到D触发器的布线长短一致,因此,如 图5 的时间波形所示,在器从3计到4时,RCO线上会出现毛刺(假设QC到D触发器的路径较短,即QC的输出先翻转)。

图5 不可靠的门控时钟

(定时波形示出在计数器从3到4改变时,RCO信号如何出现毛刺的)

图6 给出一种可靠的全局钟控的电路,它是图5不可靠计数器电路的改进,RCO控制D触发器的使能输入。这个改进不需要增加PLD的逻辑单元。

数电课程设计心得

数电课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.回顾起此次课程设计,至今我仍感慨颇多,的确,从选题到定稿,从理论到实践,在短短的两个星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次数电课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做数电课程设计,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。 这次数电课程设计终于顺利完成了,在设计中遇到了很多问题,最后在王老师的辛勤指导下,终于游逆而解。同时,在王老师的身上我学得到很多实用的知识。总体来说,这次实习我受益匪浅.在摸索该如何设计程序使之实现所需功能的过程中,特别有趣,培养了我的设计思维,增加了实际操作能力.在让我体会到了设计的艰辛的同时,更让我体会到成功的喜悦和快乐. 这次数电课程设计,虽然短暂但是让我得到多方面的提高:1、提高了我们的逻辑思维能力,使我们在逻辑电路的分析与设计上有了很大的进步。加深了我们对组合逻辑电路与时序逻辑电路的认识,进一步增进了对一些常见逻辑器件的了解。另外,我们还更加充分的认识到,数字电路这门课程在科学发展中的至关重要性2,查阅参考书的独立思考的能力以及培养非常重要,我们在设计电路时,遇到很多不理解的东西,有的我们通过查阅参考书弄明白,有的通过网络查到,但由于时间和资料有限我们更多的还是独立思考。3,相互讨论共同研究也是很重要的,经常出现一些问题,比如电路设计中的分频器的设计,开始并不理解分频器的原理,但是和其他的专业同学讨论后,理解了分频器的基本原理后,很快的设计了电路原理图。

数字逻辑课程设计数字时钟课程设计数电课程设计数字电子技术

数字逻辑课程设计 自从它被发明的那天起,就成为人们生活中必不可少的一种工具,尤其是在现在这个讲 究效率的年代,时钟更是在人类生产、生活、学习等多个领域得到广泛的应用。然而随着时 间的推移,人们不仅对于时钟精度的要求越来越高,而且对于时钟功能的要求也越来越多,时钟已不仅仅是一种用来显示时间的工具,在很多实际应用中它还需要能够实现更多其它的

功能。诸如闹钟功能、日历显示功能、温度测量功能、湿度测量功能、电压测量功能、频率测量功能、过欠压报警功能等。钟表的数字化给人们的生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。可以说,设计多功能数字时钟的意义已不只在于数字时钟本身,更大的意义在于多功能数字时钟在许多实时控制系统中的应用。在很多实际应 用中,只要对数字时钟的程序和硬件电路加以一定的修改,便可以得到实时控制的实用系统, 从而应用到实际工作与生产中去。因此,研究数字时钟及扩大其应用,有着非常现实的意义。 数字钟从原理上讲是一种典型的数字电路,其中包括了组合逻辑电路和时序电路?目前,数字钟的功能越来越强,并且有多种专门的大规模集成电路可供选择? 前言 (2) 目录 (2) 题目 (2) 摘要 (2) 关键字 (3) 设计要求 (3) 正文 (3) 1电路结构与原理图 (3) 2数码显示器 (3) 60进制计数和24进制计数 (4) 校时 (7) 振荡器 (8) 3.计算、仿真的过程和结果 (9) 鸣谢 (11) 元器件清单 (11) 参考文献 (11) 总结与体会 (11) 教师评语 (12) 数字时钟的课程设计 摘要: 数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高 的准确性和直观性,且无机械装置,具有更更长的使用寿命,因此得到了广泛的使用。 数字钟从原理上讲是一种典型的数字电路,其中包括了组合逻辑电路和时序电路。目前, 数字钟的功能越来越强,并且有多种专门的大规模集成电路可供选择。本设计采用74LS290. 74LS47.BCD七段数码管和适当的门电路构成,可实现对时、分、秒等时间信息的采集和较时 功能地实现?

【参考借鉴】数字逻辑电路习题集.doc

第一章数字逻辑电路基础 一、填空题 1、模拟信号的特点是在 和 上都是 变化的。(幅度、时间、连续) 2、数字信号的特点是在 和 上都是 变化的。(幅度、时间、不连续) 3、数字电路主要研究 与 信号之间的对应 关系。(输出、输入、逻辑) 4、用二进制数表示文字、符号等信息的过程称为_____________。(编码) 5、()11011(2= 10),()1110110(2= 8),()21(10= 2)。(27、16 6、10101) 6、()101010(2= 10),()74(8= 2),()7(16=D 2)。(42、111100、11010111) 7、最基本的三种逻辑运算是 、 、 。(与、或、非) 8、逻辑等式三个规则分别是 、 、 。(代入、对偶、反演) 9、逻辑函数化简的方法主要有 化简法和 化简法。(公式、卡诺图) 10、逻辑函数常用的表示方法有 、 和 。(真值表、表达式、卡诺图、逻辑图、波形图五种方法任选三种即可) 11、任何一个逻辑函数的 是唯一的,但是它的 可有不同的形式,逻辑函数的各种表示方法在本质上是 的,可以互换。(真值表、表达式、一致或相同) 12、写出下面逻辑图所表示的逻辑函数R= 。(C B A Y )(+=) 13、写出下面逻辑图所表示的逻辑函数R= 。())((C A B A Y ++=) 14、半导体二极管具有 性,可作为开关元件。(单向导电) 15、半导体二极管 时,相当于短路; 时,相当于开路。(导通、截止) 16、半导体三极管作为开关元件时工作在 状态和 状态。(饱和、截止) 二、判断题 1、十进制数74转换为8421BCD 码应当是BCD 8421)01110100(。(√)

数字逻辑电路设计及应用

数字逻辑电路设计及应用 C程序设计报告(1) [问题]: 设计一个C程序实现任意十进制数到二进制数的转换,二进制精度为11位。 [思路]: 1.十进制数转二进制数对整数和小数的处理时不一样的。所以设计程序时,也应该对读入 的整数和小数的数据分开处理。(分开的办法可以先直接对浮点数强制类型转换,即可得到整数部分,再用浮点数减整数部分,即可得到小数部分)。 2.对于整数部分,采用的是“除2法”(不知道是不是这个名字……)。即,每次将该数除 以2,得到的余数作为该位的二进制数,商作为下一次的除数,依此类推,直到商为1或0为止。 3.对于小数部分,采用的是“乘2法”(依然不知道是不是这个名字)。即,每次将小数部 分乘2,得到的整数部分即为该位的二进制数,小数部分为下一次的乘数。依此类推,这样做下去是一个无限不循环的小数,所以一般会要求二进制数中小数的精度,本题目要求的是11位。 4.在实际程序设计过程中,我发现了这样一个问题,当小数部分二进制码采用浮点型数据 时,单独输出准确无误,但与整形的整数部分二进制码结合在一起后,最后3位总是不准确的,怀疑是在相加的过程中产生了“大数吃小数”的问题。按照一般思维,此时应提高精度,采用long double型变量,但是我采用的编译器是采用Windows C的运行库(MS C编译器)的MinGW,其对printf函数不支持long double型。无奈之下,我只能把小数部分存为一个11位长的数组,再对其输出。 [流程]: [程序]:

/******************************************************************** /* this is a program to transform decimal nubers to binary nubers. /* Huang Bohao /* 将小数部分用数组形式存储,避免了整数部分与小数部分相加而出现的 /*大数吃小数的情况 ********************************************************************/ #include <> int Integer2Binary(int integer); ,Bina ryInt); for(i = 0; i < 11; i++) printf("%d",BinaryFraction[i]); printf("\n"); } /******************************************************************** /* function name: Integer2Binary /* input parameter: int integer (integer waiting to be transformed) /* output parameter: int output (transformed integer) ********************************************************************/ int Integer2Binary(int integer) { int B,Y,output,flag; //B被除数,Y为余数,output为输出数据,flag为位置标记位

数字逻辑课程设计课案教学总结

数字逻辑设计课程设计指导书 适用专业:计算机大类 湖北工业大学 计算机学院 2016年11月

目录 一、课程设计目的 (1) 二、课程设计要求 (1) 三、课程设计内容 (1) 四、设计报告的内容和要求 (3) 五、课程设计考核方法 (3) 附录一自选课题参考题目 (4) 一、数码管显示控制器 (4) 二、乒乓球游戏机 (4) 三、智力竞赛抢答器 (4) 四、数字钟 (4) 五、交通灯控制器 (5) 六、双钮电子锁 (5) 七、彩灯控制器 (5) 八、速度表 (5) 九、出租车计价器 (6) 十、自动奏乐器一 (6) 十一、自动奏乐器二 (6) 十二、自动打铃器 (6) 十三、算术运算单元ALU的设计 (7) 十四、游戏机 (7) 十五、16路数显报警器 (7) 十六、脉冲按键电话按键显示器 (7) 十七、病房呼叫系统 (8) 十八、自动电子钟 (8) 十九、具有数字显示的洗衣机时控电路 (8) 二十、篮球比赛数字计分牌 (8) 二十一、电子日历 (9) 二十二、设计模拟中央人民广播电台报时电路 (9) 二十三、数字跑表 (9) 二十四、汽车尾灯控制器 (9) 二十五、篮球竞赛30秒计时器 (9) 二十六、拔河游戏机控制器 (10) 附录二TTL集成电路型号命名规则 (11) 附录三部分TTL集成电路管脚排列图 (14)

一、课程设计目的 《数字逻辑课程设计》是计算机大类学生的必修课之一,是《数字逻辑》课程的一个重要的实践教学环节,它与理论教学和实验教学相结合,培养学生综合运用所学的基础理论和掌握的基本技能来解决实际问题的能力。 课程设计通过完成一个课题的理论设计和实际调试工作,即能加深对所学知识的理解,又能培养综合的实践技能,从而提高分析问题和解决问题的能力。训练学生综合运用学过的数字逻辑的基本知识,独立设计比较复杂的数字电路的能力。通过实践教学引导学生在理论指导下有所创新,为专业课的学习和日后工程实践奠定基础。 二、课程设计要求 (一)教学要求 1.巩固和加深对数字逻辑各类型电路的设计方法及电子器件所构成电路的理解,并适当拓宽学生在电子线路领域的知识面。 2.初步掌握数字电路的设计、计算方法。能根据系统的技术指标,论证、拟订设计方案;选用合适的电路形式并进行工程计算及选择电路的元器件。 3.培养独立组织实验方案、正确选择使用实验仪器的能力,提高对功能电路和系统的安装调整、测试技术,以及综合运用所学理论知识解决实际问题的能力。(二)能力培养要求 1.通过查阅手册和有关文献资料培养学生独立分析和解决实际问题的能力。 2.通过实际电路方案的比较分析、设计计算、元件选取、安装调试等环节,掌握简单实用电路的分析方法和工程设计方法。 3.掌握常用仪器设备的使用方法,学会简单的实验调试,提高动手能力。 4.综合应用课程中学到的理论知识去独立完成一个设计任务。 5.培养严肃认真的工作作风和严谨的科学态度。 三、课程设计内容 从参考题目中自选1题进行资料查找和设计,具体课题及要求见附件1。 1.数码管显示控制器

数字逻辑课程设计报告

数字逻辑课程设计报告

数字逻辑课程设计 多功能数字钟 班级: 学号: 课程设计人: 指导老师: 课题: 完成时间:

一、设计目的: 学会应用数字系统设计方法进行电路设计,熟练地运用汇编语言。 二、设计任务及要求: 1.记时、记分、记秒 2.校时、校分、秒清0 3.整点报时 4.时间正常显示 5.闹时功能 三、设计思路: 将整个闹钟分为以下几个模块,每个模块中都有详细的各部分的设计思路,源代码及仿真图像,生成的器件。 1.计时模块 计小时:24进制计数器 计分、计秒:60进制计数器 计时间过程: 计秒:1HZ计数脉冲,0~59循环计数,计数至59时产生进位信号。 计分:以秒计数器进位信号作为分计数脉冲,0~59循环计数,59时产生进位。 计时:以分计数器进位信号作为时计数脉冲,0~23循环计数,23时清0。 二十四进制计数器代码: library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity cnt24 is port (clk:in std_logic; qh,ql:out std_logic_vector(3 downto 0)); end cnt24; architecture behave of cnt24 is signal q1,q0:std_logic_vector(3 downto 0); begin process(clk) begin if(clk'event and clk='1')then if(q1="0010" and q0="0011")then q1<="0000";q0<="0000"; elsif(q0="1001")then q0<="0000";q1<=q1+'1'; else q0<=q0+'1'; end if; end if; qh<=q1; ql<=q0;

数字逻辑课程设计 数字电子钟

课程设计(综合实验)报告 题目:第四个实验数字电子钟院系:计算机科学系 班级:计算计科学与技术1班学号: 学生姓名: 队员姓名: 指导教师:

《数字逻辑》综合实验 任务书 一、目的与要求 1 目的 1.1综合实验是教学中必不可少的重要环节,通过综合实验巩固、深化和扩展学生的理论知识与初步的专业技能,提高综合运用知识的能力,逐步增强实际工程训练。 1.2注重培养学生正确的设计思想,掌握综合实验的主要内容、步骤和方法。 1.3培养学生获取信息和综合处理信息的能力、文字和语言表达能力以及协作工作能力。 1.4提高学生运用所学的理论知识和技能解决实际问题的能 及其基本工程素质。 2.要求 2.1 能够根据设计任务和指标要求,综合运用电子技术课程中所学到的理论知识与实践技能独立完成一个设计课题。 2.2根据课题需要选择参考书籍,查阅手册、图表等有关文献资料。要求通过独立思考、深入钻研综合实验中所遇到的问题,培养自己分析、解决问题的能力。 2.3进一步熟悉常用电子器件的类型和特性,掌握合理选用的原则。 2.4学会电子电路的安装与调试技能,掌握常用仪器设备的正确

使用方法。利用“观察、判断、实验、再判断”的基本方法,解决实验中出现的问题。 2.5学会撰写综合实验总结报告。 2.6通过综合实验,逐步形成严肃认真、一丝不苟、实事求是的工作作风和科学态度,培养学生树立一定的生产观点、经济观点和全局观点。要求学生在设计过程中,坚持勤俭节约的原则,从现有条件出发,力争少损坏元件。 2.7在综合实验过程中,要做到爱护公物、遵守纪律、团结协作、注意安全。 二、主要内容 数字电子钟 设计一台能显示时﹑分、秒的数字电子钟,要求如下: 1)秒﹑分为00—59六十进制计数器,时为00—23二十四进制计数器; 2)可手动校正:可分别对秒﹑分﹑时进行手动脉冲输入调整或连续脉冲输入校正,(校正时不能输出进位)。 元器件选择 74LS162:4块与非门74LS00:2块共阳数码管LED 74LS161:2块GAL16V8:2块晶体振荡器:1MHZ GAL20V8:1块TDS-4实验箱 导线若干 所需要器件的图片如下

数字逻辑课程设计-数字时钟

数字逻辑课程设计实验报告 题目数字钟 姓名桂大有 班级网络工程103班 学号109074360 指导教师陆勤 完成日期2012年5月21日

数字钟的设计 1.数字钟的功能描述 (1)计时和显示功能 采用24小时计时并以十进制数字显示时、分、秒(时从00-23,分、秒从00-59)。 (2)校对动能 当数字时钟走的有偏差时,应能够手动校时。 2.数字钟的设计思路 根据功能要求,整个数字时钟分为计时和校时两大部分。 计时部分秒计时电路接收1Hz时基信号,进行60进制计数,计满后秒值归0,并产生1/60Hz时钟信号;分钟计时电路接受1/60Hz时钟信号,进行60进制计数,计满后分钟值归0,并产生1/3600Hz时钟信号,小时计时电路接收1/3600Hz时钟信号,进行24小时计数,计满后小时、分、秒皆归0,如此循环往复。 校时部分,采用两个瞬态按键配合实现,1号键产生单脉冲,控制数字钟在计时/校时/校分/校秒四种状态间切换,2号键通过控制计数使能端让时/分/秒计数器发生状态翻转以达到指定的数值。 3.系统功能模块介绍 Ⅰ.模块一:数字钟总体原理电路。 其中包含:(1)分钟、秒计时电路(2)小时计时电路(3)计时/校时的切换

Ⅱ.采用原理图和HDL混合设计方式实现数字钟 ①分钟、秒计时电路 分钟、秒计时需要60进制计数,其电路图如下所示: 该电路图用两片74160采用同步连接构成60进制计数器,通过译码电路识别稳态“59”,输出低电平使计数器置数为0。整个技术循环为00—>01—>02—>…—>58—>59—>00—>…,共有60个稳定状态。计数值采用BCD码形式,Q7~Q4表示分钟或秒的十位,Q3~Q0表示分钟或秒的各位。EN输入端当正常计数状态时接收分钟计时电路的进位输出,,而在校时状态时接收校时脉冲用于控制小时值的翻转。计满进位输出端CO用于触发高一级计数器的技术动作。 ②小时计时电路(采用24时制,电路图如下所示)

(整理)《数字逻辑电路》试题2.

一、选择题(每小题1.5分) 第一章: 1. 带符号位二进制数10011010的反码是( )。 A. 11100101 B. 10011010 C. 10011011 D. 11100110 2. 十进制数5对应的余3码是( )。 A. 0101 B. 1000 C. 1010 D. 1100 3. 二进制代码1011对应的格雷码是( )。 A. 1011 B. 1010 C. 1110 D. 0001 第二章: 1. 下列公式中哪一个是错误的? ( ) A. A A 0=+ B. A A A =+ C. B A )B A ('+'='+ D. )C A )(B A (BC A ++=+ 2. 下列各式中哪个是三变量A 、B 、C 的最小项? ( ) A. B A '' B. C B A +'+' C.ABC D. C B '+' 3. 下列函数中不等于A 的是( )。 A. A +1 B. A +A C. A +AB D. A (A +B ) 4. 在逻辑代数的加法运算中,1+1=( )。 A. 2 B. 1 C. 10 D. 0 5. A ⊕1=( )。 A. A B. 1 C. A ' D. 0 6. 含有A 、B 、C 、D 四个逻辑变量的函数Y=A+B+D 中所含最小项的个数是( )。 A. 3 B. 8 C. 14 D. 16 7. 下列函数中等于AB 的是( )。 A. (A +1)B B. (A +B )B C. A +AB D. A (AB ) 8. 为了将600份文件顺序编码,如果采用二进制代码,最少需要用( )位。 A. 3 B. 10 C. 1024 D. 600 9. 为了将600个运动员顺序编码,如果采用八进制代码,最少需要用( )位。 A. 3 B. 4 C. 10 D. 75 第三章:

数字逻辑课程设计十路抢答器

数字逻辑系统 课程设计 项目:十路智力竞赛抢答器 班级: 09电子A班 姓名:刘金梁 学号: 0915211039 题目及要求: 题目4多路智力竞赛抢答器 一、任务 设计一个多路智力竞赛抢答器。 二、设计要求 1、基本要求 <1)设计一个4路<1~4)智力竞赛抢答器,主持人可控制系统的清零和抢答的开始,控制电路可实现最快抢答选手按键抢答的判别和锁定功能,并禁止后续其他选手抢答。<2)抢答选手确定后给出一声音响的提示和选手编号的显示,抢答选手的编号显示保持到系统被清零为止。 2、发挥部分 <1)扩展为10路<1~10)智力竞赛抢答器。 <2)设计抢答最长时间<30秒)限制和倒计时显示。 1)根据题目要求设计系统总框图及总原理图如下:

下面分模块对各个部分进行方案选取和论证: 1.抢答按钮 抢答顾名思义就是要求快速,方便,故选用微动开关,而不选用别扭的拨动开关。 2.译码电路及数码显示 译码电路主要有两种,一种是用芯片进行译码,比如74ls148(8-3译码器>,可用两片组合成16-4译码器,选取其中10路。下图为四路采用148进行译码的范例 另一种是利用加二极管防止反向然后直接连接到4511等七段显示译码器如下图

个人认为第二种方法更简单、便捷,故采取第二种。 3.锁存器 锁存器采用74ls74 D触发器,经过4个或门处理 当有按键按下去的时候置高,从而 D 触发器5 端输出为高电平反馈到 4511 的 5 端<使能端),从而实现锁定功能。 4.报警电路

因为要求抢答报警时只能响一声,故用555另配合电阻、电容可形成大约1秒 单稳触发器,因为 低脉冲的时候触发 而按键按下置高, 故需加一反向器, 用或非74ls02也可。 T=RC*ln3=1.1RC,故电阻取10u电阻取100k。 5.减数及译码电路 要产生1hz的秒脉冲,同样选用555定时器,接法如下电路, 故选用电容100u,则计算出=14.3k,选用 R1=4.3K,R2=5K。减计数芯片选用十进制74ls192,接法如下,把秒脉冲输入到底下那片的4脚,计数十次后在13脚会产生一个脉冲,输入到上面那片,而上面那片从3减到0后13脚也产生一个负脉冲输入74ls74的清零端,并使74的输出负端接到计数器的置数端使之一直置数,认为倒计时结束,显示部分仍用4511译码显示 6.主持人开关

数字逻辑电路课程设计题目及要求

数字逻辑电路课程设计题目及要求 项目一:高精密数控电源的设计和制作: 要求:电源输出电压为:0—9.9V,步进为0.1V,有两位数码管显示,每位有两个按键能加能减的作用。功率大小不做具体的要求,电路设计不能有专业的A/D芯片。项目二:自行车的里程表设计和制作: 要求:设计一个自行车里程表电路,有两位数码管显示,显示数字的单位为百米,自行车轮胎直径为0.99M。 项目三:自行车的速度测定仪表的设计和制作: 要求:设计一个自行车测速电路,有两位数码管显示,显示数字的单位为M/S,采样时间不能超过5S,自行车轮胎直径为0.99M。 项目四:多功能抢答器的设计和制作: 要求:多功能抢答器为八路的,具有数码和指示灯双重指示,电路的附加的电路一个有计时、报警等电路,所用芯片必须为我们所学的。 项目五:数字频率计的设计和制作: 要求:数字频率计的显示为两位数码管,单位为KHZ,具有溢出报警功能,附带震荡电路,频率可调几K到几百KHZ。 项目六:交通灯的设计和制作: 要求:具有真正模拟十字路口的交通灯的能力,红灯5秒,绿灯4秒,黄灯1秒等的时间也可以自己设定。 项目七:数字电子钟逻辑电路的设计和制作: 要求:数字电子钟逻辑电路要具有电子手表的功能,例如时间的设定,整点报时,可以设定闹钟等功能,只需四位数码。 项目八:定时控制器电路的设计和制作: 要求:定时控制器电路能够定时控制家用电器的开关,例如能按时开启、关断电饭煲煮饭等,电器用灯泡代替,时间可以缩短60倍。 项目九:LED广告牌电路设计和制作: 要求:LED广告牌电路能够模拟市面上的LED广告灯箱,能有四个字显示能力(共青学院),可以的话周围有霓虹灯闪烁。 项目十:易拉罐技术电路的设计与制作: 要求:易拉罐在传送带上过时,记录数值,以20灌为一个单位,满二十灌重新 计数并给出提示音,此过程模拟工厂易拉罐装箱过程. 项目十一:数显风扇调速器电路 要求:具有中低高三档,0为停止,1为低档。2为中档,3为高档。调节开关设 置成触摸,遥控等。可以的话加入温度自动控制电路。 项目十二:出租车计价器电路

数字逻辑心得体会(多篇范文)

数字逻辑心得体会 数字逻辑与系统课程在工科类学科属于普遍的基础性课程,计算机专业、电子信息类专业及其机电类专业都涉及该课程的学习。此次课程培训是以数字逻辑为基础,系统分析为桥梁,系统综合为目的,全面介绍数字电路的基本理论、分析方法、综合方法和实际应用,并着重从以下几个方面进行了介绍 1.介绍如何整理、设计电子教案; 2.如何讲好本门课程; 3.教学手段与教学方法在本课程的体现; 4.综合设计实验的设计与实施; 5.国家精品课程的申报与建设。 在解决如何讲好本门课程环节,侯教授提出了“厚理博术、知行相成”的理念,使我对该课程的教学有了更深的认识。在我院的实际教学过程中,由于课时少,实验的课时被大量压缩,侯教授关于课程实验的处理方式给了我们一种全新的方案。侯教授课件中很多flash 动画的灵活应用,也较好的解决了那些用语言无法表达清楚的问题的讲解。 研究性教学和双语教学对年轻教师提出了新的要求。作为一名年轻教师,刚走上讲台不久,在课程的讲授过程中,基本都是采用传统的教学方法,即以讲授为主,实验为辅,案例教学基本没有。平铺直叙和填鸭式教学早被学生所厌倦。刘颖教授的研究性教学极好的调动

了学生参与教学的积极性。通过刘颖教授的报告,我深深的感受到数字逻辑与系统课程不仅是一门基础课程,同时也是一门综合性较高的实用课程。研究性教学方式的提出也给我们这些年轻教师提出了新的努力方向。研究性教学虽然给年轻教师提出了更大的要求和较大的压力,但是也是一种努力工作的动力,促进年轻教师的不断成长。同时,娄淑琴教授关于双语教学的报告,也给我们提出了新的要求,自己深深感受到责任的重大,压力也越来越大。但是也激发自己努力的激情与信心。研究性教学和双语教学在一定程度上对年轻教师的科研、应用水平和外语能力等综合素质提出了更高的要求,同时,进一步促进教师阅读国外科技文献、追踪行业发展新动向,保持教师敏锐的学习能力,利于形成新的观点和见解。 通过此次培训,也感受到了师德在教学工作中的重要作用的体会。侯教授及其团队教师的人格魅力在实际教学中起到了很好的促进教学作用。在培训中,很多参加培训的老师被侯教授的敬业精神所感动,所鼓舞,这一点值得我们年轻教师学习并发(请你支持)扬光大。当崇高的师德与高超的教学技术融于一身时,这个才是大师。 在此次培训中,我积极与各院校教师交流,共同探讨该门课程的实际教学中遇到的问题,通过交流大家认为在数字电子技术基础教学工作中遇到的主要困难是:很多学生认为学习数字逻辑课程没用,学习不主动,没有创新意识。并从其它老师处学习到了解决诸如分析键盘译码电路、奇偶检验电路、计算机i/o接口地址译码电路,设计火灾

数字逻辑电路课程设计数字钟

数字逻辑课程设计 数字钟 姓名: 学号: 班级:物联网工程131班 学院:计算机学院 2015年10月10日

一、任务与要求 设计任务:设计一个具有整点报时功能的数字钟 要求: 1、显示时、分、秒的十进制数字显示,采用24小时制。 2、校时功能。 3、整点报时。 功能: 1、计时功能: 要求准确计时,以数字形式显示时、分、秒的时间。小时的计时要求为“12翻1”。 2、校时功能: 当数字钟接通电源或者计时出现误差时,需要校正时间(简称校时)。校时是数字钟应具备的基本功能,一般电子手表都具有时、分、秒等校时功能。为使电路简单,这里只进行分和小时的校时。对校时电路的要求是:在小时校正时不影响分和秒的正常计数;在分校正时不影响秒和小时的正常计数。校时方式有“快校时”和“慢校时”两种。“快校时”是通过开关控制,使计数器对1Hz的校时脉冲计数。“慢校时”是用手动产生单脉冲作校时脉冲。 3、整点报时: 每当数字钟计时快要到整点时发出声响;通常按照4低音1高音的顺序发出间断声响;以最后一声高音结束的时刻为整点时刻。 二、设计方案 电路组成框图: 主体电路 扩 展 电 路时显示器 时译码器 时计数器 分显示器 分译码器 分计数器 校时电路 秒显示器 秒译码器 秒计数器 定时控制 仿电台报时 报整点时数

数字钟电路是一个典型的数字电路系统,其由时、分、秒计数器以及校时和显示电路组成。其主要功能为计时、校时和报时。利用60进制和12进制递增计数器子电路构成数字钟系统,由2个60进制同步递增计数器完成秒、分计数,由12进制同步递增计数器完成小时计数。秒、分、时之间采用同步级联的方式。开关S1和S2分别是控制分和时的校时。报时功能在此简化为小灯的闪烁,分别在59分51秒、53秒、55秒、57秒及59秒时闪烁,持续的时间为1秒。 三、设计和实现过程 1.各元件功能 74LS160:可预置BCD异步清除器,具有清零与置数功能的十进制递增计数器。 74LS00:二输入端四与非门 74LS04:六反相器 74LS08:二输入端四与门 74LS20:四输入端双与非门 2.各部分电路的设计过程 (1)时分秒计数器的设计 时间计数电路由秒个位和秒十位计数器、分个位和分十位计数器及时个位和时十位计数器电路构成,其中秒个位和秒十位计数器、分个位和分十位计数器为60进制计数器,而根据设计要求,时个位和时十位计数器为12进制计数器。 秒/分钟显示电路:由于秒钟与分钟的都是为60进制的,所以它们的电路大体上是一样的,都是由一个10进制计数器和一个6进制计数器组成;有所不同的是分钟显示电路中的10进制计数器的ENP和ENT引脚是由秒钟显示电路的进位信号控制的。 分和秒计数器都是模M=60的计数器,其计数规律为00—01—…—58—59—00…。可选两片74LS160设计较为简单。 时计数器是一个“12翻1”的特殊进制计数器,即当数字钟运行到12时59分59秒时,秒的个位计数器再输入一个秒脉冲时,数字钟应自动显示为01时00分00秒,实现日常生活中习惯用的计时规律。可选两片74LS160设计。

数字逻辑课程设计 数字电子钟

课程设计(综合实验)报告题目:第四个实验数字电子钟院系:计算机科学系 班级:计算计科学与技术1班 学号: 学生姓名: 队员姓名: 指导教师:

《数字逻辑》综合实验 任务书 一、目的与要求 1 目的 综合实验是教学中必不可少的重要环节,通过综合实验巩固、深化和扩展学生的理论知识与初步的专业技能,提高综合运用知识的能力,逐步增强实际工程训练。 注重培养学生正确的设计思想,掌握综合实验的主要内容、步骤和方法。 培养学生获取信息和综合处理信息的能力、文字和语言表达能力以及协作工作能力。 提高学生运用所学的理论知识和技能解决实际问题的能 及其基本工程素质。 2.要求 能够根据设计任务和指标要求,综合运用电子技术课程中所学到的理论知识与实践技能独立完成一个设计课题。 根据课题需要选择参考书籍,查阅手册、图表等有关文献资料。要求通过独立思考、深入钻研综合实验中所遇到的问题,培养自己分析、解决问题的能力。 进一步熟悉常用电子器件的类型和特性,掌握合理选用的原则。 学会电子电路的安装与调试技能,掌握常用仪器设备的正确使用方法。利用“观察、判断、实验、再判断”的基本方法,解决实验中出现的问题。

学会撰写综合实验总结报告。 通过综合实验,逐步形成严肃认真、一丝不苟、实事求是的工作作风和科学态度,培养学生树立一定的生产观点、经济观点和全局观点。要求学生在设计过程中,坚持勤俭节约的原则,从现有条件出发,力争少损坏元件。 在综合实验过程中,要做到爱护公物、遵守纪律、团结协作、注意安全。 二、主要内容 数字电子钟 设计一台能显示时﹑分、秒的数字电子钟,要求如下: 1)秒﹑分为00—59六十进制计数器,时为00—23二十四进制计数器; 2)可手动校正:可分别对秒﹑分﹑时进行手动脉冲输入调整或连续脉冲输入校正,(校正时不能输出进位)。 元器件选择 74LS162:4块与非门74LS00:2块共阳数码管LED 74LS161:2块GAL16V8:2块晶体振荡器:1MHZ GAL20V8:1块TDS-4实验箱 导线若干 所需要器件的图片如下 1同步十进制计数器74LS162 3输入正与非门74LS00

数字逻辑电路课程设计电子密码锁

数字逻辑电路课程设计 课题:电子密码锁设计 姓名: 班级:13通信 学号: 成绩: 指导教师: 开课时间:

目录 摘要 (1) 一课程设计目的内容及安排 (2) 1.1设计目的 (2) 1.2设计内容 (2) 1.3设计安排 (2) 1.4设计内容 (2) 二电子密码锁设计要求及总框图 (3) 2.1设计要求 (3) 2.2总框图 (4) 三各模块电路设计 (5) 3.1密码输入存储比较模块 (5) 3.2五秒计时电路 (6) 3.3二十秒计时电路 (8) 3.4报警电路 (10) 3.5总电路 (11) 四设计心得 (12) 五参考文献 (13)

电子密码锁 摘要:设计一个密码锁的控制电路,当输入正确代码时,输出开锁信号以推动执行机构工作,用红灯亮、绿灯熄灭表示关锁,用绿灯亮、红灯熄灭表示开锁;在锁的控制电路中储存一个可以修改的4位代码,当开锁按钮开关(可设置成6位至8位,其中实际有效为4位,其余为虚设)的输入代码等于储存代码时,开锁;从第一个按钮触动后的5秒内若未将锁打开,则电路自动复位并进入自锁状态,使之无法再打开,并由扬声器发出持续20秒的报警信号。密码输入存储及比较部分使用芯片74LS194及74LS85。五秒及时部分采用芯片74LS161和数码显示管。二十秒报警电路由74LS160,555定时器组成的多谐振荡器,LED灯和蜂鸣器组成。利用multisim对电路进行仿真可以得到结果。 关键词:电子密码锁,计时电路,报警电路

一课程设计目的内容及安排 1.1设计目的 1 根据设计要求,完成对交通信号灯的设计。 2 加强对Multisim10仿真软件的应用。 3 掌握交通信号灯的主要功能与在仿真软件中的实现方法。 4 掌握74LS160,74LS192等功能。 1.2 设计内容 设计一个密码锁的控制电路,当输入正确代码时,输出开锁信号以推动执行机构工作,用红灯亮、绿灯熄灭表示关锁,用绿灯亮、红灯熄灭表示开锁; 在锁的控制电路中储存一个可以修改的4位代码,当开锁按钮开关(可设置成6位至8位,其中实际有效为4位,其余为虚设)的输入代码等于储存代码时,开锁; 从第一个按钮触动后的5秒内若未将锁打开,则电路自动复位并进入自锁状态,使之无法再打开,并由扬声器发出持续20秒的报警信号。 1.3设计安排

数字逻辑课程设计

数字逻辑课程设计 一、课程设计目的 《数字逻辑课程设计》是计算机大类学生的必修课之一,是《数字逻辑》课程的一个重要的实践教学环节,它与理论教学和实验教学相结合,培养学生综合运用所学的基础理论和掌握的基本技能来解决实际问题的能力。 课程设计通过完成一个课题的理论设计和实际调试工作,即能加深对所学知识的理解,又能培养综合的实践技能,从而提高分析问题和解决问题的能力。训练学生综合运用学过的数字逻辑的基本知识,独立设计比较复杂的数字电路的能力。通过实践教学引导学生在理论指导下有所创新,为专业课的学习和日后工程实践奠定基础。 二、课程设计要求 (一)教学要求 1.巩固和加深对数字逻辑各类型电路的设计方法及电子器件所构成电路的理解,并适当拓宽学生在电子线路领域的知识面。 2.初步掌握数字电路的设计、计算方法。能根据系统的技术指标,论证、拟订设计方案;选用合适的电路形式并进行工程计算及选择电路的元器件。 3.培养独立组织实验方案、正确选择使用实验仪器的能力,提高对功能电路和系统的安装调整、测试技术,以及综合运用所学理论知识解决实际问题的能力。(二)能力培养要求 1.通过查阅手册和有关文献资料培养学生独立分析和解决实际问题的能力。 2.通过实际电路方案的比较分析、设计计算、元件选取、安装调试等环节,掌握简单实用电路的分析方法和工程设计方法。 3.掌握常用仪器设备的使用方法,学会简单的实验调试,提高动手能力。 4.综合应用课程中学到的理论知识去独立完成一个设计任务。 5.培养严肃认真的工作作风和严谨的科学态度。

三、课程设计内容 从参考题目中自选1题进行资料查找和设计,具体课题及要求见附件1。 1.数码管显示控制器 2.乒乓球游戏机 3.智力竞赛抢答器 4.数字钟 5.交通灯控制器 四、设计报告的内容和要求 报告的内容包括以下几个方面: 1、课程设计题目:自选题目名称 2、设计任务及主要性能指标和要求 3、电路的设计 (1)根据功能要求构建总体设计方案,比较和选定设计的系统方案,确定整个电路的组成及各单元电路完成的功能,画出系统框图。 (2)单元电路的设计、参数计算、器件选择及介绍。 (3)画出完整的总体电路设计图(器件型号、元件参数应标出)和必要的波形图,并说明电路的工作原理。 4、整理测试数据,分析是否满足设计要求。 5、在安装调试中的方法技巧,遇到的问题、原因及解决方法。 6、元器件清单。 7、总结设计电路的特点和方案的优缺点。 8、设计收获体会 9、参考文献。 设计实验部分根据实际完成的实验内容,按照上面自选题目包括的各部分内容进行编写。 报告要求根据课程设计报告的内容要求认真书写,所有的内容一律用课程设计报告书手写,总页数不得少于15页。

数字逻辑电路期末考试试卷及答案

期末考试试题(答案) 一、选择题(每小题2分,共20分) 1.八进制(273)8中,它的第三位数2 的位权为___B___。 A.(128)10B.(64)10C.(256)10 D.(8)10 2. 已知逻辑表达式C B C A AB F+ + =,与它功能相等的函数表达式 _____B____。 A.AB F=B.C AB F+ = C.C A AB F+ =D.C B AB F+ = 3. 数字系统中,采用____C____可以将减法运算转化为加法运算。 A.原码B.ASCII码C.补码D.BCD码4.对于如图所示波形,其反映的逻辑关系是___B_____。 A.与关系B.异或关系C.同或关系D.无法判断 5.连续异或1985个1的结果是____B_____。 A.0B.1 C.不确定D.逻辑概念错误 6. 与逻辑函数D C B A F+ + + =功能相等的表达式为___C_____。 A.D C B A F+ + + =B.D C B A F+ + + = C.D C B A F=D.D C B A F+ + = 7.下列所给三态门中,能实现C=0时,F=AB;C=1时,F为高阻态的逻辑功能的是____A______。 B A F & ? F B A &

8. 如图所示电路,若输入CP脉冲的频率为100KHZ,则输出Q的频率为_____D_____。 A. 500KHz B.200KHz C. 100KHz D.50KHz 9.下列器件中,属于时序部件的是_____A_____。 A.计数器B.译码器C.加法器D.多路选择器 10.下图是共阴极七段LED数码管显示译码器框图,若要显示字符“5”,则译码器输出a~g应为____C______。 A. 0100100 B.1100011 C. 1011011 D.0011011 二、填空题(每小题2分,共20分) 11.TTL电路的电源是__5__V,高电平1对应的电压范围是__2.4-5____V。 12.N 个输入端的二进制译码器,共有___N2____个输出端。对于每一组输入代码,有____1____个输出端是有效电平。 13.给36个字符编码,至少需要____6______位二进制数。 14.存储12位二进制信息需要___12____个触发器。

数电课程设计心得(精选多篇)

数电课程设计心得(精选多篇) 第一篇:数电课程设计心得 1、通过这次课程设计,加强了我们动手、思考和解决问题的能力。在整个设计过程中,我们通过这个方案包括设计了一套电路原理和pcb 连接图,和芯片上的选择。这个方案总共使用了74ls248 ,cd4510 各两个,74ls04 ,74ls08 ,74ls20 ,74ls74 ,ne555 定时器各一个。 2、在设计过程中,经常会遇到这样那样的情况,就是心里想老着这样的接法可以行得通,但实际接上电路,总是实现不了,因此耗费在这上面的时间用去很多。 3、我沉得做课程设计同时也是对课本知识的巩固和加强,由于课本上的知识太多,平时课间的学习并不能很好的理解和运用各个元件的功能,而且考试内容有限,所以在这次课程设计过程中,我们了解了很多元件的功能,并且对于其在电路中的使用有了更多的认识。平时看课本时,有时问题老是弄不懂,做完课程设计,那些问题就迎刃而解了。而且还可以记住很多东西。比如一些芯片的功能,平时看课本,这次看了,下次就忘了,通过动手实践让我们对各个元件映象深刻。认识于实践,实践是认识的动力和最终目的,实践是检验真理的唯一标准。所以这个期末测试之后的课程设计对我们的作用是非常大的。 4、经过两个星期的实习,过程曲折可谓一语难尽。在此期间我们也失落过,也曾一度热情高涨。从开始时满富盛激情到最后汗水背后的复杂心情,点点滴滴无不令我回味无长。生活就是这样,汗水预示着结果也见证着收获。劳动是人类生存生活永恒不变的话题。 通过实习,我才真正领略到“艰苦奋斗”这一词的真正含义,我才意识到老一辈电子设计为我们的社会付出。我想说,设计确实有些辛苦,但苦中也有乐,在如今单一的理论学习中,很少有机会能有实践的机会,但我们可以,而且设计也是一个团队的任务,一起的工作可以让我们有说有笑,相互帮助,配合默契,多少人间欢乐在这里洒下,大学里一年的相处还赶不上这十来天的合作,我感觉我和同学们之间的距离更加近了;我想说,确实很累,但当我们看到自己所做的成果时,心中也不免产生兴奋;正所谓“三百六十行,行行出状元”。 我们同样可以为社会作出我们应该做的一切,这有什么不好?我们不断的反问自己。也许有人不喜欢这类的工作,也许有人认为设计的工作有些枯燥,但我们认为无论干什么,只要人生活的有意义就可。 社会需要我们,我们也可以为社会而工作。既然如此,那还有什么必要失落呢?于是我们决定沿着自己的路,执着的走下去。同时我认为我们的工作是一个团队的工作,团队需要个人,个人也离不开团队,必须发扬团结协作的精神。某个人的离群都可能导致导致整项工作的失败。实习中只有一个人知道原理是远远不够的,必须让每个人都知道,否则一个人的错误,就有可能导致整个工作失败。团结协作是我们实习成功的一项非常重要的保证。 而这次实习也正好锻炼我们这一点,这也是非常宝贵的。对我们而言,知识上的收获重要,精神上的丰收更加可喜。挫折是一份财富,经历是一份拥有。这次实习必将成为我人生

相关文档
相关文档 最新文档