《电工电子实验与EDA实践入门》课件第5章_第1页
《电工电子实验与EDA实践入门》课件第5章_第2页
《电工电子实验与EDA实践入门》课件第5章_第3页
《电工电子实验与EDA实践入门》课件第5章_第4页
《电工电子实验与EDA实践入门》课件第5章_第5页
已阅读5页,还剩253页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第5章EDA实践入门5.1可编程逻辑器件与QuartusII软件简介5.2

QuartusII软件的基本操作5.3基于FPGA的组合逻辑电路实验5.4基于FPGA的时序逻辑电路实验5.5基于FPGA的数字电子钟设计5.1可编程逻辑器件与QuartusⅡ软件简介

大规模PLD器件大致包含两种类型的器件:

(1)内部结构以基本门单元为基础,构成门单元

阵列,可编程的连线分布在门单元与门单元之间的布线区。这种结构一般称为FPGA(FieldProgrammableGateArray,现场可编程门阵列)。(2)内部结构以可编程的宏逻辑单元为基础,可编程的连线集中在一个全局布线区。这种结构一般称为CPLD

(ComplexProgrammableLogicDevice,复杂的可编程逻辑器件)。

制作ASIC的方法可粗略分为两类:

(1)一类是掩膜方法,即由集成电路厂商制造,这种方法要求设计非常成熟,且研究开发初期费用大,设计周期也较长,适用于需求量很大的场合。(2)另一类则是现场可编程方法,也就是由数字系统的设计者借助于集成电路设计工具软件和PLD空白芯片在实验室中自行制作ASIC。显然,这种方法设计时间短,费用低,一个不太大的系统可能只需数天即可完成。因而适用于产量不大,升级换代迅速的产品。

QuartusⅡ包括以下功能:系统级设计,嵌入式软件开发,可编程逻辑器件(PLD)设计、综合、布局和布线、验证和仿真,支持Altera公司主流CPLD/FPGA全部系列硬件。使用QuartusⅡ软件进行基于CPLD/FPGA的数字系统开发的过程中,在支持的器件种类、编译选项、优化选项、IP(数字系统设计方面的知识产权)模块、适配速度及准确性等方面得到了极大的提高。它提供原理图输入和硬件描述语言输入等多种描述方式。

QuartusⅡ提供了可编程片上系统(SOPC)设计的一个综合开发环境,是进行SOPC设计的基础。QuartusⅡ与多种第三方EDA工具软件的文件格式兼容,从而形成了一个完整的可编程、可重构的SOPC设计平台。

5.2

QuartusⅡ软件的基本操作

对于一般的数字电路部件或数字系统设计,

QuartusⅡ的基本流程如图5-1所示。如果FPGA安装在实验装置上,在项目编译前必须规划引脚分配,否则可由QuartusⅡ任意分配输入、输出端口引脚。图5-1

QuartusⅡ应用基本流程5.2.1创建一个新的设计项目

1.启动QuartusⅡ

启动QuartusⅡ9.0,出现如图5-2所示界面。图5-2

QuartusⅡ9.0软件界面

QuartusⅡ9.0软件界面的右上方为常用工具条,其中的图标如图5-3所示。当鼠标定位在快捷图标上时,图标下显示功能名称。如果界面中没有显示工具条,可以执行菜单命令Tools→Customize...,切换到Toolbars标签页,在常用工具条StandardQuartusⅡ选项前打勾。图5-3常用工具条部分图标说明

2.新建项目

(1)点击File→NewProjectWizard...(新建项目向导),或者File→New→NewQuartusⅡProject,点击Next,弹出如图5-4所示对话框。图5-4指定项目路径、项目名(2)在图5-4界面的第一栏内键入盘符、子目录和项目目录,如d:\12345\fa。一般子目录存放在某数据盘的根目录下(C盘受保护),子目录名应具有个人的特征。建议为每个项目单独建一个项目目录,名字最好有实际含义。也可点击该栏右的浏览按钮选择已经存在的目录路径。(3)在图5-4界面的第二栏内键入项目名称,则第三栏内会自动出现与项目名同名的顶层源文件名。如建立全加器fa项目,顶层源文件名也为fa。项目名和顶层源文件名不能与软件自带的器件同名,最好采用英文字母和数字、符号的组合,不要使用中文字符,不要有空格。(4)点击Next,如果项目目录原来不存在,则弹出提示框,提醒是否要创建这个目录。点击Yes,QuartusⅡ会自动创建新目录,并弹出图5-5所示的添加文件选项框。如果需要导入其它路径下已存在的源文件或用户库,可点击Filename栏旁的浏览按钮进行查找选择。本项目的所有设计文件和用户库在后面一一建立,所以现在无需添加。图5-5添加设计文件、用户库(5)点击Next,弹出图5-6所示的界面,选择器件系列FLEX10K和具体的芯片型号EPF10K10TC144-4,右边的三个约束选项框Package(封装形式)、Pincount(引脚数

目)和Speedgrade(速度)若均选Any,则没有约束,显示所有的型号;如Pincount选择144,则只显示有144个引脚的型号。需要注意的是,若项目设置的器件系列和型号与用户系统中的可编程器件系列和型号不同,则设计编程文件不能下载到器件中。本项目所使用的硬件平台(LP-2900实验仪)上,FPGA芯片已经选定了EPF10K10TC144-4,所以必须选定这一款芯片。在一般设计场合可以仅选定器件系列,而具体的型号可以让软件自动选择最适合该项目的器件,也可以自己选定一个具体型号。图5-6选择器件系列和器件型号(6)点击Next,出现添加第三方EDA工具的选项框,一般不需选择直接进入下一步。

(7)点击Next,显示所建项目的所有信息。

(8)点击Finish,则新建项目完成。

(9)新项目创建也可以在如图5-4所示的项目目录和顶层文件名后就点击Finish完成。其它项目设置可随时在如图5-7所示的Settings选项框进行。图5-7工程设置对话框图5-7左边种类(Category)框中的部分功能如表5-1

所示。5.2.2源文件输入

一个设计项目由一个或多个源文件组成,这些源文件有多种不同的输入方式,对应不同的文件格式,如表5-2所示。本例采用图形输入方式中的原理图输入。

1.新建一个原理图文件

选择File→New...菜单,或者点击工具栏中图标,弹出如图5-8所示的新建设计文件选择窗口。创建图形设计文件时,应选择DesignFiles下的BlockDiagram/SchematicFile,点击OK按钮,打开图形编辑器,如图5-9所示,图中标明了每个按钮的功能。图5-8新建设计文件选择窗口图5-9图形编辑器窗口(1)图形编辑器的环境参数设置。选择Tools→Options进入Options窗口,选中Block/SymbolEditor选项进行背景和符号颜色(Colors)、文字字体和大小(Fonts)的修改,也可切换编辑区栅格显示/隐藏(Show

guidelines)、设置栅格间距(GuidelineSpacing)、引脚分配显示/隐藏(Showlocationassignments)等。

2.符号输入

(1)在图5-9所示的图形编辑器窗口的工作区中双

击鼠标左键,或点击“符号工具”按钮,或选择菜单Edit→InsertSymbol...,则弹出如图5-10所示的Symbol对

话框。图5-10

Symbol对话框(2)在Name栏直接输入元件名称,或用鼠标点击单元库前面的加号(+),直到使所有库中的元件以列表的方式显示出来;选择所需要的元件符号,该符号就显示在Symbol对话框的右边;回车或点击OK按钮或双击鼠标左键,所选符号将显示在图5-9的图形文件编辑区并粘在光标上,在合适的位置点击鼠标左键即可放置该符号。(3)重复放置或复制相同的元件符号。当Symbol框左下方重复输入(Repeatinsertmode)项有效时,元件符号放置后,鼠标上会自动出现新的符号,可以反复放置直到按下Esc键或点击快捷图标或点击鼠标右键,执行Cancel命令取消重复放置符号操作。(4)在图形编辑区分别放置符号名称为xor、and2、2个input和2个output的符号。

QuartusⅡ的常用元件命名如表5-3所示。逻辑门名称后的数字表示门的输入端数。触发器以ff命名,前冠触发器激励属性,如sr、d、jk、t等。元件命名具有以下特点:当逻辑门或功能元件名称前加“n”,表示逻辑门反相输出或功能元件低电平输出有效。

当逻辑门或触发器名称前加“b”,表示逻辑门或触发器的输入反相。

当逻辑门或触发器名称前加“d”,表示逻辑门或触发器有两个互补的输出。当逻辑门或触发器名称前加“t”,表示逻辑门或触发器为三态输出。

当功能模块名称后加“b”,表示输入、输出信号以总线形式表示。

当74系列信号后加“m”或“o”,表示符号为芯片上的一个元件。比如,74153m是双四选一数据选择器74LS153中的一个选择器,74112o是双JK触发器74LS112中的一个JK触发器。

(1)基本元件库(primitives)。基本元件库划分为缓冲器(buffer)、逻辑门(logic)、其它符号(other)、端口(pin)、触发器(storage)五个子库。其中端口(pin)子库中有三种类型的端口:数据可以输入输出的双向端口(bidir)、数据只能输入的端口(input)和数据只能输出的端口(output)。另外四个库的常用元件及名称见表5-4所示。

(2)其它元件库(others)。others库中主要包含了与Altera的可编程器件初级开发平台maxplus2兼容的所有逻辑器件,包括逻辑门、触发器和一些中规模功能元件,还包括了几乎所有74系列的数字逻辑器件,设计者可以根据需要输入型号调出元件。比如,输入“74138”调出3线-8线译码器。表5-5列出了部分元件的名称。

(3)宏功能元件库(megafunctions)。宏功能元件库中包含了很多可修改参数的宏功能模块。模块由Altera的技术人员开发,用户可以使用MegaWizardPlugInManager功能自定义变量将它们实例化,创建符合设计需要的自定义模块符号。宏功能元件库分为算术组件子库(arithmetic)、逻辑门子库(Gates)、端口子库(IO)和存储器子库(Storage)四个子库。库中的元件属性名前一般冠有库参数模块(LibraryofParameterizedModules)特征字“lpm”。算术组件子库arithmetic中主要有数据位宽可以设定的加法器(add)、加-减运算器(addsub)、乘法器(mult)、除法器(divide)、取绝对值(abs)、数据比较器(compare)、累加器(accum)、乘-加运算(multadd)及其它一些综合算术功能。另外还有计数位数、模

值、计数方向(加、减、可逆)、使能控制(无、时钟使能、计数使能)、预置清零方式(无、同步、异步)都可根据需要选择设置的计数器(counter)。逻辑门子库(gates)中主要有信号位宽可以设定的总线选择器(busmux)、三态总线(bustri)、译码器(decode)、逻辑常量(constant)、数据选择器(mux)和逻辑门(除反相器为inv外,其它逻辑门的属性名与表5-3相同)。还有位宽(wide)、移位方向(左移、右移、双

向移位)、移位范围(distance)可以根据需要选择的移位寄存器。其中移位方式可选择循环移位、逻辑移位(logic)或算术移位(arithmetic)。端口子库(IO)中主要有位宽可以设定的输入、输出端口和双向端口。

存储器子库(Storage)中主要有各类字数、位数、控制方式可设定的存储器,如随机存储器(ram)、闪存(flash)、只读存储器(rom)、先入、先出存储器(fifo)。还有位数和控制方式可选择的移位寄存器(shift)、锁存器(latch)、触发器(ff)等。

3.电路连线

(1)点击图标或或,将鼠标放在需要连线的逻辑符号端口处,当光标呈“十”字形时,按住鼠标左键拖动到连线终点释放鼠标键即可。

(2)当橡皮筋功能有效时,把两个需要相连的元件

符号端口碰在一起后再拉开,两个端口之间就自动连上了导线。

(3)同大多数EDA工具相同,QuartusⅡ也支持引线或端口命名设置网标(Netlable)的功能,即命名相同的引线和端口在电路中相连。

引线命名的方法是:在需要命名的引线上点击一下鼠标左键,引线变成蓝色,两端出现小方块,此时引线处于被“选中”状态,然后输入网标名称。名称可以是字母、字母组合或字母与数字组合的形式,如A1、E、BW等。若两个需要相连端口为位宽不同的总线,可采用方括号以升序或降序的形式说明各端口或总线的位宽。比如位宽为n,网标名为A,则命名可以是

A[n-1..0]或A[0..n-1]。端口是每个设计文件的对外信号,端口符号是基本元件库(primitives)的pin子库中的bidir、input和output。端口命名的方法是:选中端口符号,双击其默认名称pin_

name,键入该端口名称。也可双击输入、输出端口符号,弹出端口属性(PinProperties)对话框,在Pinname[s]中输入端口名称。端口也分为单信号或多位宽总线端口,命名规则与引线相同。半加器电路中我们定义输入信号为A、B,输出信号为S、C。

连线完成的半加器电路原理图文件如图5-11所示。

原理图中常用的接地和接电源符号,直接在符号名称中输入GND、VCC。图5-11半加器原理图

4.保存源文件

选择File→Save或直接点击工具条上左起第三个快捷按钮,弹出保存文件对话框,如图5-12所示,选择好目录,在文件名栏内输入设计文件名ha,选中Addfiletocurrentproject复选框(一般默认已选好),单击保存按钮即可保存文件。图5-12保存文件对话框我们在创建项目时定义顶层源文件名同项目名fa,现在半加器电路的文件名为ha,所以需要将半加器源文件暂时设置成项目的顶层文件,在左上方的项目导航窗口中,切换到File(文件)界面,选中ha.bdf,点击鼠标右键,选择SetasTop-LevelEntity命令即可,见图5-13所示。图5-13设置顶层文件项目导航窗口下方有三个可以互相切换的标签,分别表示层次(Hierarchy)、文件(Files)和设计单元(DesignUnits)。

点击Hierarchy图标,出现实体窗口Entity,显示当前项目设计实体所选的目标器件型号和顶层文件名。点击顶层文件名,可以拉出其下的各层文件。项目中的文件排列呈树形结构,反映了项目中的文件层次关系。每个设计文件中使用的逻辑单元(LogicCells)和存储元数(LCRegisters)也在窗口中列出。

Files窗口中显示当前项目下的所有设计源文件。DesignUnits窗口中显示当前项目下的所有设计单元。5.2.3分析与综合和仿真

1.分析与综合

(1)启动分析与综合处理。QuartusⅡ的分析与综合(Analysis&Synthesis)处理功能仅针对项目进行,即处理从项目中的顶层设计文件开始。启动QuartusⅡ进行分析与综合处理的方法有以下几种:

①直接点击主工具条上的快捷按钮。

②执行主菜单命令Processing→Start→StartAnalysis&Synthesis。

(2)处理过程显示。在处理过程中若发现文件有编辑错误,则弹出如图5-14所示的窗口,提示Analysis&

Synthesiswasnotsuccessful(αerrors,βwarnings),α和β分别为错误和警告的个数。若信息窗口(Messages)开启,则在下方显示处理信息,其中绿色文字为处理功能、顶层文件等说明,蓝色文字为警告提示,红色文字为错误报告。若信息窗口没有开启,可执行View→UtilityWindows→

Messages命令打开。图5-14分析与综合中的错误信息

(3)编辑错误查找。当分析与综合未通过时,在信息窗口(Messages)中会显示相关的错误信息,用左键双击红色的错误信息;或选中错误信息,单击右键,从弹出的右键菜单中执行Locate→LocateinDesignFile操作,鼠标将定位于设计文件中的错误所在处。若对错误原因不了解,可将鼠标定位于错误信息处后点击右键,在弹出的选项框中选择Help查看错误信息说明,以便修改错误。处理结果若没有错误(α=0),分析与综合通过,

弹出如图5-15的窗口,提示“Analysis&Synthesiswassuccessful”,并产生报告文件Report。仅有警告提示(Warning)并不会影响分析与综合的通过。图5-15(4)处理报告。分析与综合处理完毕后自动弹出编译总结数据,显示处理时间、QuartusⅡ版本、项目名、顶层文件名、目标器件系列和型号、电路或系统消耗的逻辑单元数、端口数和存储单元数。

2.设计项目的仿真验证

源文件设计完成并通过分析与综合以后,可以通过仿真来验证设计是否符合预定要求。仿真开始前,需要做一个仿真文件,其中定义一连串的输入信号,作为设计系统的输入激励,仿真器会给出系统的响应,根据系统的响应可以判断问题所在。仿真在整个项目设计中起到相当大的作用,可帮助我们及早发现设计中的错误。QuartusⅡ的仿真平台支持对设计项目的功能仿真和时序仿真。功能仿真仅测试设计项目的逻辑功能,而时序仿真还测试设计项目在目标器件中的最大信号延时。功能仿真前需通过分析与综合处理,产生电路的网表关系。(1)创建新的矢量波形文件。其步骤如下:

①选择File→New...菜单,或者点击工具栏中图标,在新建文件对话框中Verification/DebuggingFiles下选择VectorWaveformFile,点击OK按钮,则打开一个空的波形编辑器窗口,左方为节点列表区,右方为波形显示区,如图5-16所示。②波形编辑器默认的仿真结果时间为1μs,根据仿真需要,可以自由设置仿真文件的结束时间。选择Edit→EndTime,弹出结束时间对话框,在Time框内输入仿真结束时间,时间单位可选为s、ms、μs、ns和ps。点击OK按钮完成设置。③选择File→SaveAs...命令,在文件名框中输入文件名ha,保存类型为*.vwf,选中Addfiletocurrentproject复选框,然后点击Save按钮存盘。图5-16

QuartusⅡ波形编辑器

(2)在矢量波形文件中加入输入、输出节点。其步骤

如下:

①显示节点查找框。通过节点查找对话框可以搜索设计文件中所有的输入和输出端口、寄存器、设计实体信号。

弹出节点查找窗口(NodeFinder)的方法有几种:

方法一:在波形编辑器左边Name栏下的空白处双击鼠标左键,即弹出如图5-17所示的InsertNodeorBus对话框,点击NodeFinder...按钮,则弹出NodeFinder界面。图5-17

InsertNodeorBus对话框方法二:选择Edit→Insert→InsertNodeorBus...命令,弹出InsertNodeorBus对话框,点击NodeFinder...按钮,弹出NodeFinder界面。

方法三:选择View→UtilityWindows→NodeFinder命令,弹出NodeFinder界面,查找要加入波形文件中的节

点名。②选择节点。选择节点的方法有以下两种:

方法一:在NodeFinder界面的Filter列表中选择Pins:all,点击List按钮,则NodesFound栏内出现源设计文件里所有的输入输出节点名。方法二:点击按钮,则所有节点均显示在SelectedNodes栏内。若仅需要仿真部分节点,则用鼠标选中这些节点,点击按钮,将这些节点显示在SelectedNodes栏内即可,如图5-18所示。图5-18查找节点

(3)编辑输入信号。在波形编辑器中编辑输入信号的波形,即指定输入节点的逻辑电平变化。使用工具条进行节

点波形的输入十分方便,如果工具条不显示,可以执行菜单命令Tools→Customize

WaveformEditor...,切换到Toolbars标签页,在波形编辑器WaveformEditor选项前打勾。各工具的编辑功能如图5-19所示。图5-19波形编辑器工具条①为节点输入时钟波形。在Name栏内点击一个节点B,则此节点连同波形显示区一起被选中,呈淡蓝色;然后点击工具条上(时钟)快捷按钮,则弹出时钟信号设置对话框,如图5-20所示;直接输入时钟周期、初始相位和占空比;点击OK,则设置的时钟波形显示在波形显示区,如图5-21中的输入节点B。图5-20时钟信号设置图5-21编辑输入节点波形②为节点输入任意波形。用拖动鼠标左键的方法在波形显示区选中需要编辑的区域,则该区域变为淡蓝色,然后点击工具条上相应的快捷按钮。本例是选中输入节点A的一段区域,点击工具条上快捷按钮,则此区域被设置为高电平,如图5-21所示。③保存文件(*.vwf),File/Save。

(4)启动仿真器。

选择Processing→SimulatorTool命令,打开仿真器工具窗口,如图5-22所示。

①在Simulationmode(仿真模式)栏选择Functional(功能仿真)。

②选择或核对Simulationinput栏中列出的仿真波形文件名(*.vwf)。③点击GenerateFunctionalSimulationNetlist按钮,根据项目顶层设计文件产生功能仿真的电路网表以及编译报告文件CompilationRoport,完成后弹出仿真成功提示框,

点击确定按钮退回仿真工具窗。

④若希望根据仿真结果重写仿真输入矢量波形文件,选择Overwritesimulationinputfilewithsimulationresults项。⑤点击Start,仿真开始,进度条显示仿真进度及消耗时间。

⑥仿真完成后,点击Report按钮,打开只读的仿真波形报告窗口。如果要编辑波形,从Open按钮打开编辑波形窗口。图5-22仿真器工具窗口

(5)仿真结果分析。

①分析验证仿真波形的逻辑功能:在给定的输入节

点信号下,分析仿真的输出节点波形是否符合设计的逻辑功能。

②调整仿真波形。选择Edit→GridSize命令,改变波形显示区的网格尺寸。在节点上点击鼠标右键,选择Properties,可以选择节点显示基数(Radix),如二进制、十六进制、八进制、有符号十进制以及无符号十进制。

如果对仿真结果不满意,需要重新编辑输入信号,可以返回仿真输入矢量波形文件窗口。若在只读的波形报告窗口中进行信号编辑操作,将弹出如图5-23所示的编辑输入矢量文件选项框:若选择第一项,仿真结果将被传输到仿真输入矢量波形原文件中以供保存,仿真结束后可通过Open按钮打开原文件观察仿真结果;若选择第二项,仿真输入矢量波形文件不会被修改,必须通过Report按钮打开仿真报告文件观察仿真结果。图5-23编辑输入矢量文件对话框图5-24为半加器的仿真波形。图5-24半加器的仿真波形

3.创建元件符号

在层次化工程设计中,经常需要将通过分析与综合、验证仿真结果正确的设计源文件创建成一个模块符号文件(BlockSymbolFiles,扩展名为.bsf)作为功能模块符号。

该符号就像QuartusⅡ软件自带的基本单元符号和宏功能模块一样,在高一层的图形设计文件中可直接调用。

(1)将设计文件创建成模块符号。其过程如下:

①将源文件ha打开,选择File→Create/Update→CreateSymbolFilesforCurrentFile,弹出提示信息:符号创建完成,如图5-25(a)所示,点击确定按钮,即可创建一个代表当前文件功能的符号文件(扩展名为.bsf)。②如果该文件对应的符号文件已经建立过,则执行该操作时会弹出一个提示信息,询问是否要覆盖现存的符号文件,如果选择“是(Y)”,则现存符号文件的内容就会被新的符号文件覆盖。

③双击图形编辑器窗口,打开Symbol对话框,点击左上角工程目录库(Project)前的“+”,即可找到与该设计文件同名的模块符号,如图5-25(b)。图5-25

(2)顶层源文件输入。

①顶层源文件与下层设计文件在同一项目下。在原来的项目下新建顶层源文件fa:选择File→New...菜单,选择DesignFiles下的BlockDiagram/SchematicFile,点击OK按钮,打开图形编辑器,双击工作区,打开Symbol对话框,在工程目录库中(Project下)直接调用半加器模块符号,输入全加器原理图,保存文件为fa.bdf,如图5-26所示。图5-26顶层原理图文件fa.bdf②顶层源文件与下层设计文件在不同项目、不同目录下。用新建项目向导(File→NewProjectWizard...)新建顶层设计项目,工程目录为D:/12345/aaa/,工程名和顶层文件名均为fa。在出现如图5-5所示的添加文件选项框时,将需要添加的ha源文件加入到当前项目中来。添加其它项目下的文件到当前项目里的步骤如下:

①点击图5-5中FileName窗口右边的文件浏览按钮,弹出SelectFile对话框,切换目录找到源文件ha.bdf。

②选中ha.bdf,点击打开,再点Add按钮,则此文件出现在文件列表中。

③点击Next。在当前项目下调用其它项目下创建的模块符号步骤如下:①新建一个图源文件。

②在图形编辑器窗口的工作区中双击鼠标左键,弹出图5-10的Symbol对话框。

③点击Name栏右边的浏览按钮,弹出打开文件对话框,目录切换到D:/12345/fa。④选中符号文件ha.bsf,点击打开,符号ha显示在Symbol对话框的右边,点击OK。

将全加器原理图文件进行分析与综合,波形仿真,正确的仿真波形如图5-27所示。图5-27全加器的仿真波形5.2.4锁定引脚和编译

1.引脚分配(锁定)

由于实验装置上FPGA的各I/O端口已被连接到特定的器件(如按键、发光二极管、显示器等),所以必须根据设计需要指定电路的输入、输出端口引脚。为设计中的输入、输出端口指定器件(EPF10K10TC144-4)的引脚号码,称为引脚分配或引脚锁定。

LP-2900实验装置上LED发光二极管L1~L12的共阴极端受FPGA的I/O端口ACOM控制,如图5-28所示。所以设计时要使ACOM端口内置高电平Vcc(经反相后为低电平)。增加一个输出端口符号output控制发光二极管的阴极公共端ACOM。导入电源符号“Vcc”连接COM输出端口使之为高电平(经外部反相器使发光二极管阴极为低电平),如图5-29所示。再次分析与综合。图5-28

LP-2900实验装置的L1~L12与FPGA的电路连接图5-29添加公共端口后的全加器电路图(1)点击主快捷工具栏中图标或执行主菜单Assignments→AssignmentEditor命令进入如图5-30所示的AssignmentEditor(分配编辑器)窗口,在窗口上方的Category(类别)列表中选择Pin。如果Category列表不显示,点击View→CategoryBar。图5-30分配编辑器的引脚配置对话框(2)双击窗口下方的To栏下的New格,出现包含全部端口的下拉滚动框,其中呈斜体的端口名已被分配,可逐个选择呈正体的端口名,直到全部列出。(3)双击To栏中未分配端口名旁Location栏下的空格,出现包含全部引脚编号的下拉滚动框,其中呈斜体的引脚已被分配,可根据用户系统接口关系选择特定编号的引脚。全部引脚分配完毕后执行文件保存操作,然后关闭AssignmentEditor窗口。全加器电路中,假设输入信号为A、B、Ci,分别选择LP-2900实验装置上数字开关(J区)的按键SW1、SW2、SW3。根据附录C表C-1查阅得SW1与EPF10K10TC144的引脚Pin47连接,SW2与引脚Pin48连接,SW3与引脚Pin49连接,假设输出信号Co、S分别选择LP-2900实验装置上LED发光二极管(A区)的L1、L2,根据附录C表C-5查阅得L1与引脚Pin7连接,L2与引脚Pin8连接,A区发光二极管共阴极端ACOM与引脚Pin141连接。端口分配后在图形设计源文件中可以显示各端口编号,示例项目全加器的图形设计文件如图5-31所示。图5-31引脚分配后的fa图形设计源文件

2.编译

QuartusⅡ编译器的主要功能是配置可编程器件的逻辑资源,实现项目设计文件分析与综合后产生的逻辑关系。点击工具条上的按钮可直接启动编译过程,或者执行主菜单命令Processing→StartCompilation,在编译过程中如果出现配置错误,也可参考查找分析与综合错误的方法寻找错误源,修改后重新编译,直到编译成功为止。仅有警告提示(Warning)不会影响编译通过。说明:如图5-32所示,在状态(Module)窗口中显示全编译过程中各个编译模块和整个编译进程的进度和所用时间;在信息窗口中显示编译过程中的信息;最后的编译结果在报告窗口中显示出来。图5-32编译结果查看编译报告:编译过程中,编译报告窗口自动显示出来,给出了当前编译过程中各个功能模块的详细信息。在编译报告左边窗口点击要查看部分前的加号“+”。

选择要查看的部分,报告内容显示在右边窗口。5.2.5器件编程(下载)

1.打开编程窗口

直接点击主工具条上的快捷按钮或执行主菜单Tools→Programmer命令,弹出如图5-33所示的编程器窗口,自动打开一个名为〈项目名〉.cdf的链式描述文件,包括当前项目的编程文件以及所选目标器件等信息。图5-33编程器窗口

2.编程器设置

编程器的下载模式根据不同的下载电缆选择。如果是在安装QuartusⅡ后首次进行下载或下载模式改变,需要对编程器进行设置,一般情况下不是每次下载前都需进行设置。以LP-2900为例,编程器设置方法如下:(1)下拉编程器窗口上方中间的Mode列表,选择JTAG模式。

(2)点击编程硬件设置(HardwareSetup)按钮,弹出如图5-34所示的硬件设置对话框HardwareSetup。

(3)点击硬件设置对话框中的AddHardware按钮,弹出图5-34下方所示的AddHardware对话框。(4)在AddHardware对话框的Hardwaretype列表中选择ByteBlasterMVorByteBlasterⅡ,点击OK确认,HardwareSetup对话框下方的Availablehardwareitems(有

效硬件项)栏中出现所选的硬件名称和PC通信端口等信息,如图5-35所示。点击Close按钮关闭窗口,回到编程器页面。图5-34添加硬件设置图5-35下载电缆模式选择

3.添加编程文件

编程文件(*.sof)一般会自动显示,如果用户系统中有多个形成下载链的可编程器件,QuartusⅡ会自动识别它们的连接顺序,点击AddFile...按钮可以添加各器件的编程

文件,点击AddDevice...按钮可以添加目标器件。

4.器件编程

(1)将下载电缆连接PC通信端口(并行口)和FPGA实验装置的下载端口,实验装置接通电源。

(2)在如图5-33所示的编程窗口中选择需要下载的编程文件〈项目名〉.sof。点击下载文件名旁对应Program/

Configure(编程/配置)选项下的小方框,使之选中出现勾号。然后点击Start按钮,开始下载器件编程文件。(3)编程过程中目标器件的所有I/O端口均为高阻状态直到编程结束。FPGA实验装置LP-2900在下载编程文件过程中,其主芯片板上四周的I/O口红色LED指示灯全亮,编程结束后实验装置芯片板上的OK绿色LED点亮,编程器件即具有设计要求的逻辑功能。5.3基于FPGA的组合逻辑电路实验

5.3.1全加器的N种实现方法

1.用基本门电路实现全加器电路

1)参考实验步骤

(1)首先分析图5-36的电路,从理论上证明它是一个全加器。图5-36用与非门实现的全加器电路

(2)新建项目工程,新建图形文件,输入用“二输入与非门NAND2”设计的全加器电路fa1,如图5-36所示。

(3)分析与综合通过后,新建一个矢量波形仿真文件,仿真全加器电路。

(4)功能仿真验证仿真结果正确后,创建全加器逻辑符号fa1。

(5)增加输出端口ACOM连接高电平Vcc,分析与综合通过后,分配引脚,全编译通过后下载检查结果。

2)注意事项

(1)本实验的输入信号A、B、Ci可在数字开关(J区)SW1~SW8中任选三个按键,SW1~SW8是带LED显示的带锁按键。按下为1,灯亮;按出为0,灯灭。

输出信号Co、S可在LED发光二极管A区的L1~L12中任选两个LED发光二极管,L1~L12为一组红、黄、绿三色的LED,高电平有效;ACOM为共阴极端,高电平有效。

(2)由于LP-2900实验装置上FPGA器件EPF10K10TC144-4的141脚经非门接在发光二极管L1~L12的共阴极点上,故要点亮发光二极管L1~L12,需将141脚置为高电平。

2.用译码器和与非门实现全加器电路

1)参考实验步骤

(1)首先分析图5-37的电路,从理论上证明它是一个全加器。

(2)新建一个图形文件,输入用译码器74138、四输入与非门NAND4设计的全加器电路fa2,如图5-37所示。

(3)设置fa2为项目的顶层文件,分析与综合通过后,仿真全加器电路。

(4)功能仿真验证正确后,创建全加器逻辑符号fa2。

(5)增加输出端口ACOM,分析与综合,分配引脚,编译通过后下载检查设计结果。图5-37用译码器、与非门实现的全加器电路

3.用数据选择器实现全加器电路

1)参考实验步骤

(1)首先分析图5-38的电路,从理论上证明它是一个全加器。

(2)新建一个图形文件,输入用数据选择器74153、非门NOT设计的全加器电路fa3,如图5-38所示。图5-38用数据选择器、非门实现的全加器电路

(3)设置fa3为项目的顶层文件,分析与综合通过后,仿真全加器电路。

(4)功能仿真验证正确后,创建全加器逻辑符号fa3。

(5)增加输出端口ACOM,分析与综合,分配引脚,编译通过后下载检查设计结果。

4.用ROM实现全加器电路

(1)新建一个图形文件,用ROM设计全加器电路fa4。其实质就是将一位全加器的真值表放入ROM。

(2)设置fa4为项目的顶层文件,分析与综合通过后,仿真全加器电路。

(3)功能仿真验证正确后,创建全加器逻辑符号fa4。(4)增加输出端口ACOM,分析与综合,分配引脚,编译通过后下载检查设计结果。

1.建立ROM的存储数据文件

(1)选择File→New...命令,选择MemoryFiles下Hexadecimal(Intel-Format)File或MemoryInitializationFile。(2)点击OK确认,弹出如图5-39所示的字数(Numberofwords)、字长(Wordsize)对话框。其中字数表示存储信息个数或数据个数,字长表示二进制存储信息或数据的位数。根据本例要求确定字数为8,字长为2。图5-39设定存储数据文件的参数(3)填入字数和字长后按OK确认,弹出数据文件编辑页面,如图5-40所示,默认数据内容为全0。页面的左上角显示文件名。Hexadecimal(IntelFormat)File格式的文件扩展名为.hex,MemoryInitializationFile格式的文件扩展名为.mif。图5-40数据文件页面(4)数据文件的显示格式可以通过菜单View选择,各有关选项说明如图5-41所示。图5-40的文件显示形式为每行8个单元,地址为十进制码,数据格式为二进制。图5-41数据文件的显示方式选择(5)数据信息输入完成后保存文件。选择主菜单File→Save或SaveAs...命令,一般默认文件保存在当前项目目录下,默认文件名与项目名相同,将默认文件添加到当

前项目中(Addfiletocurrentproject)。文件保存后,项目导航器中出现所建文件名。全加器数据文件如图5-42所示。该文件的内容就是一位全加器的真值表。三位地址线代表输入变量A、B和Ci,二位数据线代表输出变量S和Co。图5-42全加器数据文件

2.创建ROM元件

(1)新建原理图(Schematic)文件。在图形编辑器中双击鼠标左键弹出Symbol对话框,从宏功能函数库Megafunctions的存储器件子库Storage中选择Ipm_rom,

并选中LaunchMegaWizardPlug_In框,如图5-43所示。图5-43选择宏功能函数符号Ipm_rom(2)选择ROM的语言描述输出文件的类型和名称,菜单如图5-44所示。文件的语言类型可以任选,但注意输出文件一定要存放在本项目所在的路径中,可以通过Browse浏览查询路径。图5-44

ROM输出文件类型和名称选择(3)点击Next>,弹出如图5-45所示的模块定义向导第3页进行参数设置。窗口右上方的使用器件系列默认与项目设置的器件系列相同,选中Matchproject/default,一般不需修改。

ROM输出数据总线的宽度(数据位数)为2,ROM的存储字单元数为8。图5-45设置ROM的字长、字数(4)ROM的输入、输出都可以由时钟脉冲控制,选择菜单如图5-46所示。而本实验中ROM的地址和数据端口都不需要寄存,所以取消原选中框内的勾,使建立的ROM器件没有输入、输出时钟。图5-46

ROM的控制脉冲选择(5)图5-47所示菜单选择是否需要为存储器设定数据。由于本实验采用的是只读存储器ROM,所以必须建立存储数据文件,文件的类型为HEXFiles(扩展名.hex)。可以通过浏览查询到文件名(也可以选MIF文件)。图5-47选择存储器链接的数据文件(6)检查确认ROM的存储数据文件路径后点击Next>,弹出产生仿真模式文件的页面,再点击Next>,出现模块创建总结Summary,列出了由模块参数设置生成的所有文件。(7)点击“Finish”按钮完成宏模块设计,出现询问你是否将模块添加到项目中,点击“Yes”按钮,模块粘在光标上,点击鼠标左键可放置在图形编辑区域。

此时,当前项目的元件库library中出现了一个项目子库Project,创建的模块lpm_rom0存放在该子库中。模块lpm_rom0可作为库元件被反复置入图形编辑区。若在设计过程中发现宏模块参数需要修改,可在图形编辑区的宏模块上双击鼠标左键,将直接弹出宏功能插入管理器的参数设置首页。

图5-48为用ROM器件实现的全加器电路。图5-48用ROM实现的全加器电路5.3.2三位二进制加法器

1.要求

利用全加器的逻辑符号设计一个三位串行进位加法器电路,进行功能仿真验证结果。图5-49为三位加法器参考设计框图。图5-49三位加法器参考设计框图

2.参考设计步骤

(1)建立项目工程并添加全加器设计源文件。

建立新的项目工程,当第3步出现如图5-5的对话框时,点击Filename栏旁的浏览按钮,打开全加器项目目录,查找选择5.3.1节中任一全加器设计源文件,添加入本项目。(2)设计三位加法器电路。

①新建图形文件(如add3.bdf),调用添加的全加器设计源文件对应的全加器逻辑符号。

②导入6个输入端口符号和4个输出端口符号作为加法器输入、输出。连接加法器电路并定义端口名为A2、A1、A0、B2、B1、B0、Co、S2、S1、S0。③对电路进行分析与综合(Analysis&Synthesis)。(3)仿真三位加法器电路。

①新建一个矢量波形仿真文件。设置仿真观察点。分别把输入信号A2、A1、A0和B2、B1、B0以及输出信号Co、S2、S1、S0进行信号编组A、B、S,显示方式为UnsignedDesimal(无符号十进制)。②以计数方式对输入信号组A、B进行波形编辑,使每组分别有“0”、“1”、“2”、“3”、“4”、“5”、“6”、“7”八种数值,并组合成六十四种状态。保存波形图文件。

③对项目进行功能仿真。仿真结束后返回波形文件,对照预习所列的三位加法器真值表验证仿真结果。图5-50为三位加法器仿真波形图。图5-50三位加法器仿真波形图

(4)仿真验证正确后,创建三位加法器的逻辑符号。在设计文件打开的情况下,执行File→Create/Updata→

CreateSymbolFilesforCurrentFile命令,将当前文件创建

成元件逻辑符号。(1)信号编组时,若被选信号有位序关系,码组中各信号按波形窗口高位到低位从上往下的顺序排列。可以用鼠标左键点击窗口中节点列表Name下要移动的信号名,被选择信号呈淡蓝色,然后按住鼠标左键拖动该信号名,使信号以蓝线形式在节点列表区移动,移到目标位置后释放鼠标左键,信号位置即被改变。本例中加数A信号按照高位到低位A2、A1、A0顺序排列。(2)可按住Ctrl键或Shift键并点击鼠标左键逐个选择需编组的信号,被选择信号呈淡蓝色。执行主菜单Edit→Grouping→Group命令;或在信号列表中点击鼠标右键,在弹出的菜单中选择编组命令Grouping→Group,弹出如图5-51所示的信号组属性选项框。在Groupname栏填入任取的组名(比如A),在Radix栏选择码值显示类型,可选择Binary(二进制)、Octal(八进制)、Hexadecimal(十六进制)、SignedDesimal(有符号十进制)或UnsignedDesimal(无符号十进制)。图5-51信号编组设置(3)点击OK,波形窗口的被选信号归成一个组信号,如图5-50所示。用鼠标左键点击组信号名前的“+”框,框中的符号变为“-”号,组中的各位信号波形同时分别

显示。(4)如果要更改信号组的名称或数值显示类型,可在信号名列表区选中信号组,点击鼠标右键,在弹出的选项框中选择最下一行属性Properties,打开NodeProperties(节点属性)窗口,可改变信号组名称(Name)、端口特性(Type)、数值显示类型(Radix)、位宽(Buswidth)等。(5)若要取消信号编组,可选中信号组并点击鼠标右键,选择Grouping→Ungroup,组信号即被转换成独立信号。5.3.3用AHDL语言描述的七段显示译码器

1.要求

采用AHDL硬件描述语言设计七段显示译码逻辑并创建元件符号。元件的输入为4位二进制码,输出可控制共阴七段显示器显示十进制数符0~9及A、B、C、D、E、F6个字母。

2.参考设计步骤

(1)新建一个AHDL文本文件。

在5.3.2节的项目下,选择File→New...菜单,选择DesignFiles下的AHDLFile,出现AHDL文件编辑区以及文本编辑TextEditor的工具条,如图5-52所示。(2)AHDL文件编辑。

AHDL文件必须以英文输入方式编辑,基本描述分为三个部分:实体名、实体对外端口、实体内部的逻辑描述。语句注释可以以两段以上的中划线导出,程序中注释内容应为绿色文字。如图5-52所示。图5-52七段显示译码逻辑的AHDL真值表描述①AHDL文件以关键字“SUBDESIGN”导出设计实体名,本例以7seg命名要设计的七段显示译码器。②AHDL文件以括号“(”、“)”限定设计实体的输入、输出端口。端口名后用冒号“:”导出端口属性关键字:INPUT定义输入属性,OUTPUT定义输出属性。相同属性的不同端口用逗号分隔。多个端口可以以总线形式用同一名称命名,并在端口名称后的方括号内以升序或降序说明端口位宽。每条端口定义语句用分号“;”结束。③实体内部逻辑描述必须以关键字BEGIN、END限定。描述语句有多种形式,利用快捷方式可以导出不同的模板。本例的七段显示译码逻辑可以很方便地利用真值表模板形式设计。

在文件编辑区输入逻辑段限定语句BEGIN和END。将鼠标定位在两语句之间,点击快捷工具,弹出插入模板对话框(InsertTemplate)。点击AHDL前的“+”号,再点击Architecture前的“+”号,选择真值表描述(TruthTableStatement),右方预览框preview中出现真值表的模板形式。点击Insert确认,模板被插入逻辑段限定语句中。④真值表以关键字TABLE、和ENDTABLE限定,输入、输出信号用“”区别,左侧为输入,右侧为输出。每行逻辑语句也以“;”结束。⑤表中数据格式有两种:若变量以总线形式命名如data_in[3..0],则表中数据应以双引号形式出现b"0000";若为单个变量的集合形式,a,b,c,...,则表中数据也应以“,”隔开,每行数据结束时,也应以“;”结尾。表格中第12行起的空白部分,是留给读者做练习的,请读者根据显示逻辑补全,完成这个文件。⑥在当前项目目录下保存文件,并把文件加入当前项目工程中。注意文件名要与AHDL文件中的实体名相同,扩展名为.tdf。然后先把7seg.tdf设置为项目的顶层文件,对设计文件进行分析与综合,然后仿真查看逻辑功能是否正确。⑦在设计文件打开的情况下,执行File→Create/Updata

→CreateSymbolFilesforCurrentFile命令,将当前文件创建成元件图形符号。调用方法与原理图创建的模块符号一样。图5-53为七段显示译码元件符号。图5-53七段显示译码元件符号5.3.4两个三位二进制数相加并显示结果

1.要求

利用5.3.2节和5.3.3节,三位加法器相加结果用七段数码管以十六进制形式显示。两个三位的二进制加数由6个按键输入。相加后的和最大是二进制数1110,可以用十六进制数“E”表示。采用LP-2900实验装置实现设计,其LED数码管为共阴显示器。六个显示器的七个段控制a~g及小数点dp分别对应相连,各显示器的共阴极分别由一个3线-8线译码器74LS138的输出Y0~Y5控制。译码器的3位输入码分别由FPGA的I/O端口DE3、DE2、DE1控制,如图5-54所示。图5-54LP-2900开发装置FPGA与LED数码显示器的电路连接

3线-8线译码器的3位输入码DE3、DE2、DE1为000~101时,输出Y0~Y5中有一个为0,FPGA的a~g端口将控制共阴极为0的数码管显示。比如,当DE3、DE2、DE1为011时,Y3=0,数码管C4显示。由于本设计只需一位显示,所以可任意选择DE3、DE2、DE1为000~101中的一

组码。

2.参考设计步骤

(1)在5.3.2节建立的项目下,新建一个图形文件,调用三位加法器、译码器逻辑符号,建立三位加法器译码显示电路。图5-55为三位加法器译码显示参考设计框图。图5-55三位加法器译码显示参考设计框图(2)设置当前图形文件为顶层文件,对电路进行分析与综合(Analysis&Synthesis)。

(3)增加3个输出端口控制3线-8线译码器的输入DE3~DE1。根据所选显示器连接3个输出端口的逻辑电平。导入符号VCC连接输出1的DEi端口,导入符号GND连接输出0的DEi端口。例如:选左起第3个数码管点亮,DE3和DE1接地,DE2接Vcc。

5.4基于FPGA的时序逻辑电路实验5.4.1脉冲分频电路

1.要求

设计一个8级倍率为10的分频电路,将FPGA实验装置上的基准时钟OSC(10MHz)分成输出频率分别为1Hz、10Hz、100Hz、1kHz、10kHz、100kHz、1MHz、10MHz八组占空比为50%的脉冲信号。

2.参考步骤

(1)新建项目,用74LS90构成5421BCD码十进制计数器,实现十分频电路。

(2)分析与综合通过后,仿真十分频电路,验证输出信号与计数脉冲是否满足十分频关系、分频信号占空是否为50%。(3)功能仿真验证正确后,用74LS90级联实现八级十分频电路,分析与综合通过后,创建逻辑符号div8在以后需要不同频率信号的设计项目中使用。图5-56为脉冲分频div8逻辑符号。

3.用74LS90构成占空为50%的十进制计数器

74LS90是二—五—十进制加计数器,片上有一个二进制计数器和一个异步五进制计数器,其器件符号如图5-57所示。图5-57

7490器件符号

74LS90是二—五—十进制加计数器,片上有一个二进制计数器和一个异步五进制计数器,其器件符号如图5-57所示。CLKA和CLKB分别是两个计数器的脉冲输入端,下降沿触发有效;CLRA和CLRB是两个计数器的复位清零端,同为高电平时有效;SET9A和SET9B分别是两个计数器的置9控制端,当同为高电平时,QD、QC、QB、QA被预置为1001。74LS90的逻辑功能如表5-6所示。

74LS90片上的两个计数器级联后可实现十进制计数器。当计数脉冲CP控制二进制计数器的时钟CLKA,并以二进制计数器输出QA控制五进制计数器的时钟CLKB,即构成8421BCD码十进制计数器,输出码从高位至低位顺序为QD、QC、QB、QA。在每个计数脉冲的下降沿QA翻转;而在QA的下降沿,五进制计数器加一。每10个计数脉冲QD~QA状态循环变化一周,计数时序波形如图5-58(a)所示。如果计数脉冲CP控制五进制计数器的时钟CLKB,并以五进制计数器的最高位输出QD控制二进制计数器的时钟CLKA,即构成5421BCD码十进制计数器,输出码从高位至低位顺序为QA、QD、QC、QB。在每个计数脉冲的下降沿五进制计数器加一;而每个QD的下降沿QA翻转。每

10个计数脉冲周期计数器输出状态循环一周,计数时序波形如图5-58(b)所示。图5-58

74LS90分频信号波形显然,两种连接方式的计数器最高位输出信号频率都为计数脉冲频率的1/10,但前者分频信号QD的占空比为20%(8个CP周期为低电平、2个为高电平),后者分频信号QA的占空比为50%(5个CP周期为低电平、5个为高电平)。5.4.2用D触发器设计彩灯控制电路

1.参考设计步骤

(1)新建项目工程,当出现如图5-5所示的对话框时,点击Filename栏旁的浏览按钮,打开脉冲分频项目目录,查找选择5.4.1节中脉冲分频电路设计源文件,添加入本项目。用“D触发器DFF”组成的移位寄存器设计彩灯控制电路light1,如图5-59所示。图5-59彩灯控制电路light1

2.注意事项

图5-59中PS输入信号可选用LP-2900实验装置上的负脉冲键PS1或PS2,CP输入信号可选用5.4.1节创建的div8模块符号中的1Hz信号。例2要求四个彩灯按亮灯规律:1000→1100→1110→1111→0111→0011→0001→0000→1000…依次循环。

1.参考设计步骤

(1)新建图形文件,用“D触发器DFF”、“反相器NOT”设计彩灯控制电路light2,如图5-60所示。图5-60彩灯控制电路light2(2)调用div8模块符号,CP接1Hz,设置light2为项目的顶层文件,分析与综合通过后,仿真彩灯控制电路。(3)功能仿真验证正确后,增加输出端口ACOM,分析与综合,分配引脚,编译通过后下载检查设计结果。5.4.3用74LS194设计彩灯控制电路

1.集成移位寄存器

移位寄存器在时钟控制脉冲有效时,寄存器中存储的数码同时顺序向高位(左移)或向低位(右移)移动一位。所以,移位寄存器的各触发器状态同时变化,为同步时序电路。移位寄存器数据可以按序逐位从最低位或最高位串行输入寄存器,也可以通过置数端并行输入寄存器。所以移位寄存器的数据输入、输出方式有:并行输入/并行输出、并行输入/串行输出、串行输入/并行输出、串行输入/串行输出。移位寄存器可以构成环形计数器或扭环计数器。

n位移位寄存器构成的环形计数器有n个有效状态,2n-n个无效状态。将移位寄存器的第n位输出反相后连到串行输入端,可以构成2n进制的扭环计数器;而将移位寄存器的第n位输出和第n-1位输出通过与非门综合后连到串行输入端,可以构成2n-1进制的扭环计数器。图5-61集成计数器74LS194引脚排列图

2.四位移位寄存器74LS194

四位移位寄存器74LS194的引脚排列如图5-61所示,逻辑功能如表5-7所示。在方式信号S1、S0控制下,74LS194可以实现右移(串行数据从DSR输入)、左移(串行数据从DSL输入)、置数(并行数据从D0、D1、D2、D3输入)及保持(输出不变)功能。图5-61(a)为常规74LS194的引脚图,图5-61(b)为在QuartusⅡ软件的器件库中的74LS194引脚图,二者在引脚命名上稍有区别,如A、B、C、D对应D0、D1、D2、D3。5.4.4二十四进制计数器

2.参考设计步骤

(1)新建项目工程,用计数器74LS160或74LS161设计二十四进制计数器电路。

(2)分析与综合通过后,仿真二十四进制计数器电路。(3)功能仿真验证正确后,创建二十四进制计数器逻辑符号。

3.四位十进制同步计数器74LS160

四位十进制同步计数器74LS160模为10,输出状态为0000~1001,管脚如图5-62所示图5-62

74LS160逻辑符号

LDN:同步预置数控制端,低电平有效,优先级别仅次于清零端。

CLRN:异步清零端,低电平有效,优先级别最高。ENT,ENP:计数使能端,高电平有效,两者

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论