1、(4) 掌握用图形编辑法实现组合逻辑电路设计思想。二、实验内容: 用图形法设计模为12的同步计数器三、实验设计: 1.实验原理 采用图形法来设计模为12的同步计数器,3个输入“INPUT”(分别为CLK,Clear,En),1个“74161计数器”芯片,1个“与非门”及1个“非门”,5个输出OUTPUT(分别为Cout,Q0,Q1,Q2,Q3),电路连接如图1所示2.实验电路 图1.模为12的同步计数器 3.实验步骤 (1)在File 菜单里面选择 New 打开新建文件类型对话框。选择 Waveform Editor File 项单击OK。 (2)在波形编辑器窗口的Name下单击鼠标右键,出现
2、浮动的菜单,选择Enter Nodes from SNF.可以打开“从SNF文件输入观测点”的对话框。 (3)在Type区选择Input和Output,在默认的情况下是打开的,单击List按钮,可在Available Nodes & Groups区看到设计文件中使用的输入/输出信号,单击=按钮可以将这些信号选择到 Selected Nodes & Groups区。单击OK按钮,关闭对话框即可看到波形编辑窗口,将此波形文件保存为默认名。波形编辑器窗口Name的浮动菜单列出输入/输出信号波形文件中的输入输出信号网格大小设置对话框绘图网格设置菜单条 在此,默认的情况下,模拟的时间长短为1us。此时在
3、“File”菜单中选择“End Time”来设置结束时间。在模为12的计数器中,我们将信号“en”从头到尾,即从0ns到1000ns赋值为1。选中信号“en”,单击“Name”区中的“en”信号,可看见“en”信号变为黑色,表示被选中;单击即可将“en”信号赋为1采用同样的方式可将信号“clear”从0ns到1000ns赋值为“1”,为观察其清零的作用,将在240ns到300ns之间将其赋值为“0”(因为该信号低电平有效将鼠标移到“clear”信号的240ns处按住鼠标左键并向右拖动鼠标300ns处,松开鼠标左键可以看到这段区域为黑色,被选中,单击工具条中的即可。为了将时钟信号“clk”赋周期
4、为40ns的时钟信号。选中信号“clk”;设置信号周期。单击工具条中的就可以打开下面的对话框,单击“OK”关闭就对话框即可生成所需的时钟。时钟周期设置对话框选择“File”中的“Save”存盘。在此已完成波形输入:建立好的输入波形图 运行仿真器,进行时序仿真 从“MAX+PlusII”菜单中选择“Simulator”,打开仿真器,单击按钮“Start”开始仿真。仿真完毕之后,单击“Open SCF”按钮打开刚才编辑的波形文件,就可以对仿真结果进行检查。仿真器 为了观测方便,可将计数器输出Q3、Q2、Q1、Q0作为一个组来观测:将鼠标移到“Name”区的Q3上,按住鼠标的左键并按住向下拖动鼠标之
5、Q0处,松开左键,可选中信号Q3、Q2、Q1、Q0。在选中区(黑色)上单击鼠标右键,打开一个浮动菜单,选择“Enter Group”。单击“Ok”关闭此对话框,可以得到下面的波形图文件。现在观测就容易了。以上步骤是实验指导书上给出的。实验电路图形实验过程截图实验结果截图BIN(二进制)DEC(十二进制)OCT(八进制)HEX(十六进制)实验结果分析 本次实验通过一个“74161同步计数器”来实现模可变的功能,通过在MAX+plusII软件中进行编译仿真,观察仿真结果,在初次接触此软件的同时,熟悉其功能操作,对实验结果及其相关步骤进行分析。实验当中,首先在图形元器件的选择上,按照实验指导来进行,
6、及修改相关参数和名称,连接图形,掌握方法,成功连接完成,进行保存并仿真。 实验结果中,分别显示了二进制,十二进制,八进制,十六进制的结果波形图,通过波形图,我们不难看出,在不同进制下,计数的结果是相同的,但显示的形式不同。 实验中,也遇到了一些问题。比如说:在图形保存中,选择“.gdf”格式,如果选择错误就会导致实验仿真错误。在仿真前,要先建立工程,再进行编译,再导入图形中的输入项,最后进行仿真,观察其结果。实验心得 通过这次实验,学会了MAX+plusII软件的使用,并且在实验当中,能够巩固课本上关于模计数器的相关知识点,通过图形法来实现其设计的目的,熟悉仿真方法,理解时序仿真,掌握用图形编
7、辑法实现组合逻辑电路设计思想。实验三 六位环行计数器设计 (1) 熟悉图形输入编辑实现时序逻辑电路设计的过程。 (2) 掌握环行计数器的设计思路。 通过分析六位环行计数器设计原理图,试写出该计数器的时钟方程、驱动方程和输出方程,并画出其状态转换图。通过时序仿真结果验证分析的正确性和原理图设计的合理性。实验设计 1.实验要求 (1)掌握图形逻辑输入法及编译的方法。 (2)理解仿真实现过程并分析仿真结果。 (3)掌握环行计数器的设计方思路。 2.实验原理 环行计数器是由移位寄存器加上一定的反馈电路构成的 。图形中,采用输入输出模块,JK触发器和两个D触发器,连接组成的六位环行计数器。 3.实验电路
8、 4.仿真结果图五、实验结果分析 本实验利用原理图编辑输入完成六位环行计数器的设计,在连接相关模块后,进行编译,建立工程,导入输入项(CLK时钟信号),再进行仿真,其结果如图所示。从仿真图,我们可以看出,初始值设定在“000”,然后是“001”,“011”,“111”,“110”,“100”,最后又回到初始值。继续循环下去。 此次实验,通过对计数器的设计,学会使用触发器来实现功能的输出,掌握时序逻辑电路的设计方法,并能运用相关的元器件来进行图形的连接,掌握仿真的方法,掌握编译的方法,能对仿真结果进行分析。并且在实验中,也能巩固书本上的相关知识点,加强学习的积极性,能够在不懂得实验相关点,及时的
9、反映给老师,并且得到解决的方法,自主学习的能力能够得到提升。实验六 基于VHDL语言的分频器设计与实现一、实验目的 1、进一步掌握VHDL语言的基本结构及设计的输入方法。 2、掌握VHDL基本逻辑电路的综合设计应用。二、实验内容 1、设计并实现一个6分频的分频电路,要求其输出信号的占空比为50。请分析分频电路设计原理并编写VHDL语言程序,利用Max+PlusII开发软件对其进行编译和仿真。6分频电路实现程序代码如下: 2、在实际数字电路设计过程中,往往需要得到占空比不是1:1的分频时钟,方法是:首先描述一个计数器电路,然后根据计数器电路的并行输出信号来决定输出时钟的高低电平。请设计、编写VH
10、DL语言程序实现分频后时钟信号的占空比为1:15的16分频电路,并利用Max+PlusII开发软件对其进行编译和仿真。三、实验设计 在数字电路系统中,分频电路应用得十分广泛。例如,工程人员常常使用分频电路来得到数字通信中的帧头信号、选通信号以及中断信号等。因此,分频电路在数字电路系统的设计中也应该作为重要的基本电路来掌握,从而给今后的一些设计带来方便。 实验程序图 在Max+PlusII中的截图 3.仿真结果:四、实验结果分析 本实验利用VHDL语言设计分频电路,目的在于进一步掌握VHDL语言的基本结构及设计的输入方法,掌握VHDL基本逻辑电路的综合设计应用。从结果分析来看,通过输入的时钟信号
11、来控制输出的信号,通过相关元器件的连接,及程序的编译结果,来实现分频的目的。五、实验心得 本次实验比较难以入手,很多程序段的编写必须要参考实验指导和专业教材来进行,而且在编写完成,在编译时,也会出现很多的错误,对于VHDL语言的基本结果,在课堂上没有完全掌握,所知道的也是很少的一部分知识,所以实验当中遇到了很多的困难。所以最终的仿真结果也来不及更多的去检查正确性。此次实验,我明白了,课本的知识对于实际操作来时有很大的帮助作用,还需更加巩固课本所学,来进一步达到实验的目的。实验九 汽车尾灯控制器设计与实现 2、掌握自顶向下设计方法。 3、掌握层次化设计混合编程方法。二、实验原理 汽车尾灯控制器就
12、是一个状态机的实例。当汽车正常行驶时所有指示灯都不亮;当汽车向右转弯时,汽车右侧的指示灯RD1亮;当汽车向左侧转弯时,汽车左侧的指示灯LD1亮;当汽车刹车时,汽车右侧的指示灯RD2和汽车左侧的指示灯LD2同时亮;当汽车在夜间行驶时,汽车右侧的指示灯RD3和汽车左侧的指示灯LD3同时一直亮。通过设置系统的输入信号:系统时钟信号CLK,汽车左转弯控制信号LEFT,汽车右转弯控制信号RIGHT,刹车信号BRAKE,夜间行驶信号NIGHT和系统的输出信号:汽车左侧3盏指示灯LD1、LD2、LD3和汽车右侧3盏指示灯RD1、RD2、RD3实现以上功能。 1.实验内容 假设汽车尾部左右两侧各有3盏指示灯,
13、其控制功能应包括: (1)汽车正常行驶时指示灯都不亮。 (2)汽车右转弯时,右侧的一盏指示灯亮。 (3)汽车左转弯时,左侧的一盏指示灯亮。 (4)汽车刹车时,左右两侧的一盏指示灯同时亮。 (5)汽车在夜间行驶时,左右两侧的一盏指示灯同时一直亮,供照明使用。 根据系统设计要求,系统设计采用自顶向下的设计方法,顶层设计采用原理图设计方式,它由时钟分频模块、汽车尾灯主控模块、左边灯控制模块和右边灯控制模块四部分组成。2.系统设计原理图如下图所示。 系统的输入信号包括:系统时钟信号CLK,汽车左转弯控制信号LEFT,汽车右转弯控制信号RIGHT,刹车信号BRAKE,夜间行驶信号NIGHT。系统的输出信
14、号包括:汽车左侧3盏指示灯LD1、LD2、LD3和汽车右侧3盏指示灯RD1、RD2、RD3。 系统工作原理为:当汽车向左转弯时,汽车左侧的指示灯LD1亮; 请分析汽车尾灯控制器实现过程,编写程序代码,结合已设计底层文件实现顶层元器件(采用混合编程)设计,使之组成完整系统。 3.程序代码 Library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; use ieee.std_logic_arith.all; ENTITY qiche IS PORT( light_cs : OUT STD_LOGIC_VECTOR(3 DOWNTO 0); -大到小light 69 68 67 66 fs: in std_logic_vector(4 downto 0); light
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1