配色: 字号:
数字逻辑设计课题
2012-05-14 | 阅:  转:  |  分享 
  
2.1原理图方式设计3-8译码器

一、设计目的

1、通过设计一个3-8译码器,掌握组合逻辑电路设计的方法。

2、初步了解QuartusII采用原理图方式进行设计的流程。

3、初步掌握FPGA开发的流程以及基本的设计方法、基本的仿真分析方法。

二、设计原理

三、设计内容

四、设计步骤



1、建立工程文件

1)双击桌面上的QuartusII的图标运行此软件。



开始界面

2)选择File下拉菜单中的NewProjectWizard,新建一个工程。如图所示。



新建工程向导

3)点击图中的next进入工作目录。



新建工程对话框

4)下图第一个输入框为工程目录输入框,用来指定工程存放路径,建议可根据自己需要更改路径,若直接使用默认路径,可能造成默认目录下存放多个工程文件影响自己的设计,本步骤结束后系统会有提示(当然你可不必理会,不会出现错误的)。第二个输入框为工程名称输入框。第三个输入框为顶层实体名称输入框,一般情况下保证工程名称与顶层实体名称相同。设定完成后点击next。



指定工程路径、名称

5)设计中需要包含的其它设计文件,在此对话框中可不做任何修改,直接点击next。



工程所需其它文件对话框

6)在弹出的对话框中进行器件的选择。在DeviceFamily框中选用CycloneII,然后在Availabledevice框中选择EP2C35F484C8(根据实际情况选择),点击next进入下一步。



器件选择界面

7)下面的对话框提示可以勾选其它的第三方EDA设计、仿真的工具,暂时不作任何选择,在对话框中按默认选项,点击next。



第三方EDA工具选择

8)出现新建工程以前所有的设定信息后,点击finish完成新建工程的建立。



工程信息

2、建立图形设计文件

1)在创建好设计工程后,选择File下拉菜单中New菜单。



工程下新建设计文件

2)在New对话框中选择DeviceDesignFiles页下的BlockDiagram/SchematicFile,点击OK,出现原理图编辑窗口。



建立BlockDiagram/SchematicFile



原理图编辑界面





图形编辑器

3)在图形编辑器窗口的工作区双击鼠标左键,或点击图中的符号工具按钮,用鼠标点击单元库前面的“+”号,展开元件库,选择所需要的元器件,点击OK按钮,所选的符号将显现在图形编辑器的工作区域。



元件库对话框



选择所需的元件





用库元件按原理图完成设计



设计好的原理图顶层文件



4)完成图形编辑的输入后,需要保存设计文件,该原理图文件作为本设计的顶层文件,注意顶层文件的名称要与工程名一致。



保存顶层文件

对设计文件进行编译

点击菜单栏中的Startcompiler按钮进行设计文件的全编译。如果文件有错,在软件的下方会提示错误的原因和位置。整个编译完成,软件会提示编译成功。



编译

对设计文件进行仿真

1)创建一个波形文件,在File下拉菜单中选择New,选取对话框的OtherFile标签下的VectorWaveformFile,点击OK,打开一个空的波形编辑器窗口。



建立一个仿真波形文件



波形文件设置界面

2)加入输入、输出端口,在波形编辑器窗口的左边端口名列表区双击,在弹出的菜单中选择NodeFinder按钮。



InsertNodeorBus对话框

3)出现NodeFinder界面后,在Filer列表中选择Pins:all,点击List,在NodeFinder窗口出现所有的信号名称,点击中间的“》”按钮则SelectedNodes窗口下方出现被选择的端口名称,点击OK。



NodeFinder对话框





NodeorBus其他设置(暂不设置时点击OK)



波形编辑器中已加入的端口

5)制定输入端口的逻辑电平变化,最后保存该仿真波形文件,文件名与工程名相同。



波形编辑器工具栏



编辑输入端口波形





保存波形文件

6)进行仿真设置。在软件中选择Assignments下拉菜单下的setting命令,打开仿真器设置窗口。



设置菜单

选择SimulatorSettings页面下的simulatormode下的Funtional,即做功能仿真,(也可选择simulatormode下的Timing,即做时序仿真,则下面的产生功能仿真网表文件可以跳过,直接Startsimulation)然后点击OK即可。



仿真设置



功能仿真(or时序仿真)设置

然后产生功能仿真网表文件,选择Processing下拉菜单下GenerateFunctionSimulation,产生功能仿真网表;



产生功能仿真网表(功能仿真必做,时序仿真不需要该步)

点击开始仿真的START按钮开始进行仿真:



运行仿真后的仿真结果



5引脚分配



6完整工程的编译

7下载到目标器件

1)下载设置

2)下载

五、实验现象



3基于FPGA的数字逻辑设计课题

3.1课题一移位寄存器结合3-8译码器点亮LED

一、内容:移位寄存器设计;用基本门电路实现3-8译码器;设计简单的FPGA外围电路

二、原理

1、移位寄存器:在同一时钟脉冲作用下,可将寄存器的二进制代码或数据依次移位,用来实现数据的串行/并行或并行/串行的转换、数值运算以及其他数据处理功能。把若干个触发器串接起来,就可以构成一个移位寄存器。由4个边沿D触发器构成的4位移位寄存器逻辑电路如图8.8.1所示。数据从串行输入端D1输入。左边触发器的输出作为右邻触发器的数据输入。假设移位寄存器的初始状态为0000,现将数码D3D2D1D0(1101)从高位(D3)至低位依次送到D1端,经过第一个时钟脉冲后,Q0=D3。由于跟随数码D3后面的数码是D2,则经过第二个时钟脉冲后,触发器FF0的状态移入触发器FF1,而FF0变为新的状态,即Q1=D3,Q0=D2。依此类推,可得4位右向移位寄存器的状态,如表8.8.1所示。



由表可知,输入数码依次地由低位触发器移到高位触发器,作右向移动。经过4个时钟脉冲后,4个触发器的输出状态Q3Q2Q1Q0与输入数码D3D2D1D0相对应。为了加深理解,在图8.8.2中画出了数码1101(相当于D3=1,D2=1,D1=0,D0=1)在寄存器中移位的波形,经过了4个时钟脉冲后,1101出现在寄存器的输出端Q3Q2Q1Q0。这样,就可将串行输入(从D1端输入)的数码转换为并行输出(从Q3、Q2、Q1、Q0端输出)的数码。这种转换方式特别适用于将接收到的串行输入信号转换为并行输出信号,以便于打印或由计算机处理。



在图8.8.3中还画出了第5到第8个时钟脉冲作用下,输入数码在寄存器中移位的波形(如图8.8.2所示)。由图可见,在第8个时钟脉冲作用后,数码从Q3端已全部移出寄存器。这说明存入该寄存器中的数码也可以从Q端串行输出。根据需要,可用更多的触发器组成多位移位寄存器。

除了用边沿D触发器外,还可用其他类型的触发器来组成移位寄存器,例如,用主从JK触发器来组成移位寄存器,其级间连接方式如图8.8.3所示。根据JK触发器的特征方程,由图8.8.3可得:



FF2和FF3的接法与FF1完全相似,所以各JK触发器均以D触发器的功能工作,图8.8.3和图8.8.1所示电路具有相同的功能。





2、3-8译码器:3-8译码器的输入是3个脚,输出是8个脚。用高低电平来表示输入和输出。输入是二进制。3只脚也就是3位二进制数。输入可以3位二进制数。3位二进制最大是111也就是8。输出是8个脚,表示10进制。是根据输入的二进制数来输出。如果输入是101那么就是第5只脚高电平,表示二进制数是5。其实3-8译码器的功能就是把输入的3位2进制数翻译成10进制的输出。

?



从上图可看出,74138有三个输入端:A0、A1、A2和八个输出端Q0~Q7。当输入端A0、A1、A2的编码为000时,译码器输出为Q0=0,而Q1~Q7=1。即Q0对应于A0、A1、A2为000状态,低电平有效。图中S1、S2、S3为使能控制端,起到控制译码器是否能进行译码的作用。只有S1为高电平,S2、S3均为低电平时,才能进行译码,否则不论输入羰输入为何值,每个输出端均为1。

下图是输入端A0、A1、A2为000,控制端S1=1、S1=0、S2=0的电平示意图(红色数字为端口电平),可按下图进行分析,也可以分析输出端另外七种组合时的输出情况。





三、设计指南

1,原理图



图用D触发器构建移位寄存器

r[2..0]的内容向右移位,din值移入最高位





图3—8译码器



译码器对应的真值表

输入 输出 R[0] r[1] r[2] D7 D6 D5 D4 D3 D2 D1 D0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0

2,仿真结果

以下为仿真结果:



图仿真结果

移位寄存器初值为000,输入din(11100….)在时钟上升沿有效时移入寄存器高位,结果依次为000,100,110,111.011,001,000,000……..该结果送至3-8译码器,D0,D4,D6,D7,D3,D1,D0依次得到高电平输出。

将D0~D7映射到FPGA的IO,如分别对应于连接于FPGA如下引脚的8个LED灯,就可以控制这几个灯的亮(高电平时)与灭。



图外围LED电路



四、外围电路

五、实物制作

六,附QuartusII9.1下本课题设计详细过程























3.2课题二循环计数器与7段数码管译码电路

一、内容:用D触发器设计3位循环计数器、数码管译码电路设计

二、原理



三、设计指南

1,顶层原理图



图用D触发器构建3位增1计数器

x0x1x2值为000-001-010-011-100-101-110-111-000循环累加1,送到下面的译码电路:



图用与非门实现7段译码

7段译码电路的最高位在这里置零,即只对000~111译码;如果需要对0000~1111译码,把接地去掉正常接入输入数据的最高位即可。



仿真结果



图综合仿真结果

可以看出abcdefg变化过程:111110;0110000;1101101;1111001;0110011;1011011;1011111;1110000;1111110……即对应共阴数码管的显示结果为:0;1;2;3;4;5;6;7;0………

abcdefg与下图的共阴数码管的7SEG_A,7SEG_B等分别一一映射,





四、设计结果

五、实物制作

六,附QuartusII9.1下本课题设计详细过程









































3.3课题三JK触发器实现数字抢答器

一、内容:JK触发器实现数字抢答器、数码管译码电路设计

二、设计任务:

三、原理

如图所示是一种典型结构的JK触发器——主从型JK触发器。它由两个可控RS触发器串联组成,分别称为主触发器和从触发器。J和K是信号输入端。时钟CP控制主触发器和从触发器的翻转。

?





???????????????????????????????????????(a)逻辑图

当CP=0时,主触发器状态不变,从触发器输出状态与主触发器的输出状态相同。???S当CP=1时,输入J、K影响主触发器,而从触发器状态不变。当CP从1变成0时,主触发器的状态传送到从触发器,即主从触发器是在CP下降沿到来时才使触发器翻转的。???下面分四种情况来分析主从型JK触发器的逻辑功能。???(1)J=l,K=l???设时钟脉冲到来之前(CP=0)触发器的初始状态为0。这时主触发器的R=K=0,S=J=1,时钟脉冲到来后(CP=l),主触发器翻转成1态。当CP从1下跳为0时,主触发器状态不变,从触发器的R=0,S=1,它也翻转成1态。反之,设触发器的初始状态为1。可以同样分析,主、从触发器都翻转成0态。???可见,JK触发器在J=1,K=1的情况下,来一个时钟脉冲就翻转一次,即=,具有计数功能。???(2)J=0,K=0???设触发器的初始状态为0,当CP=1时,由于主触发器的R=0,S=0,它的状态保持不变。当CP下跳时,由于从触发器的R=1,S=0,它的输出为0态,即触发器保持0态不变。如果初始状态为1,触发器亦保持1态不变。???(3)J=1,K=0???设触发器的初始状态为0。当CP=l时,由于主触发器的R=0,S=1,它翻转成1态。当CP下跳时,由于从触发器的R=0,S=1。也翻转成1态。如果触发器的初始状态为1,当CP=1时,由于主触发器的R=0,S=0,它保持原态不变;在CP从1下跳为0时,由于从触发器的R=0,S=1,也保持1态。???(4)J=0,K=1???设触发器的初始状态为1态。当CP=1时,由于主触发器的R=1,S=0,它翻转成0态。当CP下跳时,从触发器也翻转成0态。如果触发器的初始状态为0态,当CP=1时,由于主触发器的R=0,S=0,它保持原态不变;在CP从1下跳为0时,由于从触发器的R=1,S=0,也保持0态。

主从JK触发器的逻辑功能表















































献花(0)
+1
(本文系依米荷阳首藏)