电路设计与仿真
电路设计与仿真
实验目的:
1、 2、
通过该实验对电路描述语言Verilog HDL有一个初步的学习和了解,初步掌握MAX-PLUS 的使用方法。
通过使用555定时器设计模拟电子电路和设计抢答器数字电路并用multisim 软件进行仿真分析,掌握电路设计与仿真的一般方法,并掌握multisim 软件的使用方法。
实验内容
此次试验一共分为两个大的部分,第一部分采用模块化电路语言Verilog HDL 设计一个交通灯控制电路。第二部分是使用multisim 电路设计软件设计并仿真一个由555构成的波形发生模拟电路和由锁存器组成的抢答器数字电路。一下是分别对各试验过程和结果进行的描述和仿真结果。
实验一、交通灯控制器设计
一、实验要求
下图(1)为交通灯控制器框图,图中RA 、GA 为十字路口东西方向 (方向A) 红绿灯, RB 、GB 为南北方向(方向B) 红绿灯。CLK 为内部时钟脉冲,它的频率为一分钟一次,在它的作用下,交通灯交替工作,使A 向、B 向轮流放行一分钟,C 、D 为设置在路边的按钮,当行人想过马路时,可按下C 或D 按钮,
图 (1)
控制器接收到此信号,就会在当前的一分钟周期结束后,全部红灯亮,也持续一分钟,让行人通过,以后再回到原工作循环。
二、设计步骤
交通正常运行时,A 、B 会交替亮起红灯,时间间隔为一分钟。当有行人要通过马路时,会先按下C 或D 按钮,此时A 和B 的红灯会在下一个周期亮起让行人通过,在下一周期会跳回正常通行状态。
由上述可知此电路要分成三个部分:
1、 由于现实中时钟信号多为高频,所以要加入分频电路使得产生合适
于此电路的时钟信号。
2、 由RS 触发器和锁存器构成的信号保持电路,实现对行人信号C 和D
的状态保持。
3、 由状态转换程序实现的交通灯状态转换电路。 本电路可由四个状态实现全部功能:
s0状态: A 向(东西)通行;00 s1状态: B 向(南北)通行;01
s2状态: A 向通行后转行人通过;以后转B 向通行;10 s3状态: B 向通行后转行人通过;以后转A 向通行;11 交通灯亮起的状态有四种情况:
红灯A 绿灯A 红灯B 绿灯B
Lamp0 lamp1 lamp2 lamp3 A 东西 S0 1 0 0 1 B 南北 S1 0 1 1 0 行C S2 1 0 1 0 行D S3 1 0 1 0 交通灯状态转换图如下图(2)中所示:
图 (2)
采用Verilog 语言设计,源程序代码如下所示: module traffic(lamp,xinput,clk,clk_in,reset,c,d); input clk; input reset; input c; input d;
output xinput; reg xinput; reg[15:0] a;
output[3:0] lamp; reg[3:0] lamp; reg[1:0] mm; output clk_in; reg clk_in;
parameter b=1000; always @(posedge clk) begin if(reset) begin if(a==b) begin clk_in
clk_in
end
parameter s0=2'b00,s1=2'b01,s2=2'b10,s3=2'b11; parameter lg0=4'b1001,lg1=4'b0110,lg2=4'b0101; always @(posedge clk_in or negedge reset) begin
if(reset==0) begin
xinput
if((c!=1)||(d!=1)) begin
xinput
begin
xinput
case(mm)s0: begin if(xinput) begin mm
s2: begin lamp
endmodule
通过编译生成的电路图如下图(3)所示:
图(3)
四、仿真结果
仿真的结果如下图(4)中所示,由图中逻辑关系可以分析出本次的设计满足了试验的要求。
图(4)
四、实验总结
此次实验设计时第一次使用Verilog 语言进行电路的设计与仿真,所以在试验中由于不熟悉MAX-PLUS 软件,遇到了很多的问题,比如语言的语法结构和编译调试的方法都出现了不少问题。经过同学之间的相互讨论和老师的指导,我逐渐学会了Verilog 语言的编程方法,完成了电路的设计和仿真。实验中所设计的交通灯控制电路,虽然不是很完美,但也实现了基本的功能,达到了实验课程的要求。通过这次的实验,我掌握了通过Verilog 语言设计和仿真电路的一般步骤和方法,为以后工作和学习中进行电路设计和仿真打下了基础。
实验二 基于multisim 的电路设计与仿真
一、 实验内容
1、熟悉和掌握multisim 电路仿真软件的使用方法。
2、熟悉和掌握模拟电子电路的一般设计步骤和方法,了解555芯片的引脚功能和使用555设计波形发生电路的方法。
3、熟悉和掌握数字电路的一般设计步骤和方法,了解锁存芯片的功能。
二、 基于555的群波发生器设计与仿真
1、实验步骤
在multisim 7电路窗口中创建如图(5)中所示的电路,将两个555
电路分别构成两个频率不同的多谢振荡器(频率差异较为显著),左侧的振荡频率要远小于右侧振荡器,将左侧振荡器的输出信号连接至右侧的复位端,将振荡器器输出连接至示波器观察产生的波形。
图 (5)
仿真电路设计线路连接图如上图(5)中所示,其中个元器件的选择均可达到要求的指标。 2、实验结果
图(6)
开始仿真程序以后,打开示波器,调节双通道示波器的各个参数,使得实验波形能准确清晰的显示。如上图中所示,左侧振荡器的波形为周期较长的波形,其上升沿触发高频振荡器工作,虽然高频波形的形状不是很完美,但整体来说此结果还是达到了预期的实验结果,较好的展示了555产生脉冲波形的功能。
三、 基于锁存器的抢答器电路设计与仿真
1、实验步骤
抢答器电路要能识别出4位数据中第一位到来的数据,并且对以后到来的数据不再作出响应。具体是哪一位数据首相到来,通过简单的LED 显示即可看出,其仿真电路如图(7)中所示。
电路工作时,锁存器的极性端E0处于高电平,E1端由输出信号和复位以及开始开关控制。当开始开关S 断开时,锁存器处于未工作的状态,其输出均为低电平。当S 开关和E 开关闭合时,此时E1位于低电平,若A\B\C\D中有一个开关动作,就会使E1位于高电平,从而屏蔽其他开关的状态,保持了D0~D3的前一个状态,这时对应于相应开关的LED 就会亮起。此时如果断开E 开关,则锁存器会处于工作状态接收信号,从而可以完成对锁存器复位的功能。如果E 开关处于断开的状态,则锁存器一直刷新存储状态,A\B\C\D的状态均可反映到LED 显示。 2、实验结果
通过仿真演示可以看出,当电路开始工作时,B 开关闭合,此时对应的LED2会亮起,并且此时电路会屏蔽其他三个开关的输入,通过E 开关可以复位至电
路的初始状态,S 开关控制整个电路的起始,其仿真的结果如图(8)所示。可以看出,实验的设计基本满足了任务中的要求。
图(7)
图(8)
四、 实验总结
通过multisim 软件完成两个电路的设计和仿真,基本上熟悉和掌握了multisim 软件平台的使用方法。也掌握了数字电路和模拟电路设计和仿真的一般步骤和方法,虽然在实验中遇到了不少的困难,但通过同学间的相互讨论和老师的指导,我顺利完成了实验的要求任务。所设计的实验都通过multisim 进行了仿真,并且得到的实验结果均满足了设计和预想的要求。此次实验既是对以前所学数字电路和模拟电路等课程的复习和应用,同时也培养了自己独立设计和思考的能力,为以后的学习和研究打下了基础。