EDA实验指导书B5版Ver2.0

更新时间:2024-04-06 17:23:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

电子设计自动化(EDA)

实 验 指 导 书

(第二版)

刘 伟 编

山东工商学院信息与电子工程学院

控制科学与工程系 2008年1月

电子设计自动化EDA 实验指导书

目 录

前 言 .............................................................................................................................................. 3 第一部分 实验开发系统 ................................................................................................................. 5

一、实验系统概述 ................................................................................................................... 5

二、配套软件 ........................................................................................................................... 5 三、系统硬件组成 ................................................................................................................... 5 第二部分 EDA基础实验 ............................................................................................................. 13

实验一 组合逻辑 3-8 译码器的设计 ................................................................................. 13 实验二 全加器 ....................................................................................................................... 43 实验三 8位加法器 ................................................................................................................ 45 实验四 数据比较器 ............................................................................................................... 46 实验五 二进制码转换成 BCD 码 ........................................................................................ 47 实验六 计数器 ....................................................................................................................... 48 实验七 单脉冲发生器 ........................................................................................................... 51 实验八 7段数码管控制接口 ................................................................................................ 52 第三部分 EDA课程设计项目 ..................................................................................................... 55

选题一 数字钟 ....................................................................................................................... 55 选题二 汽车尾灯控制电路 ................................................................................................... 57 选题三 篮球30秒定时控制电路 ......................................................................................... 58 选题四 交通灯控制电路 ....................................................................................................... 60 选题五 智力竞赛抢答器 ....................................................................................................... 62 选题六 出租车计费器 ........................................................................................................... 63 附 录 ............................................................................................................................................ 64

2

电子设计自动化EDA 实验指导书

前 言

随着电子设计自动化EDA技术的不断发展,其含义已经不局限在当初的电路版图的设计自动化概念上,而当今的EDA技术更多的是指芯片内的电路设计自动化。开发人员完全可以通过自己的电路设计来定制其芯片内部的电路功能,使之成为设计者自己的专用集成电路(ASIC)芯片,这就是当今的用户可编程逻辑器件PLD技术。

可编程器件已有很久的发展历史了,其功能之卓越和成熟已经令当今的电子工程师们赞叹不已,除了它体积小、容量大、I/O 口丰富、易编程和加密等优点外,更突出的特点是其 芯片的在系统可编程技术,也就是说它不但具有可编程和再编程的能力,而且只要把器件插在系统内或线路板上,就能对其进行编程或者再编程 ,这种技术被称为在系统可编程技术,简称ISP技术。 ISP技术打破了产品开发时必须先编程后装配的惯例,而可以先装配后编程, 成为产品后还可以在系统反复编程。ISP技术使得系统内硬件的功能象软件一样被编程配置,可以说可编程器件真正做到了硬件的“软件化”自动设计,这就是当今的EDA电子设计自动化技术。毫不夸张地说,由于可编程器件的出现,传统的(数字)电路设计方法和过程得到了一次革命和飞越。

可编程器件可分为数字可编程器件和模拟可编程器件两类。前者之技术发展已经相当成熟,在大量的电子产品中早已得到了实际应用;后者相对来说发展要晚一些,其现有的芯片功能也比较单一。数字可编程器件按其密度可分为低密度 PLD 和高密度 PLD 两种,低密度 PLD 器件如早期的 PAL、GAL 等,它们的编程都需要专用的编程器,属半定制ASIC高密度 PLD 又称复杂可编程逻辑器件,如市场上十分流行的 CPLD、FPGA 器件,器件;

它们属于全定制 ASIC 芯片,编程时仅需以JTAG方式的下载电缆与计算机并口相连即可。本书将主要以数字可编程逻辑器件(CPLD、FPGA)的设计与应用进行系统描述。CPLD/FPGA 同属于高密度用户可编逻辑程器件,其芯片门数(容量)等级从几千门、几万门甚至几十万门以上不等,在很大程度上他们具有类似之处,比如其电路设计方法都一样。 相比而言,CPLD 适合于做各种算法和组合逻辑电路设计,而 FPGA 更适合完成时序比较多 的逻辑电路。由于FPGA 芯片采用 RAM 结构,掉电以后其内部程序将丢失,在形成产品时 一般都和其专用程序存储器配合使用。电路设计人员在使用 CPLD/FPGA 器件进行电路设计时不需过多的考虑它们的区别,因为其电路设计和仿真方法都完全一样,不同之处在于芯

3

电子设计自动化EDA 实验指导书

片编译或适配时生成的下载文件不一样而已。

可编程器件 CPLD/FPGA 厂商众多,如 Altera、Lattice、Xilinx、Actel 公司等,我们采用的这套实验系统兼容这几家厂商的 CPLD 和 FPGA 芯片。上述几家公司推出的芯片均配有功能强大的开发软件,不仅支持多种电路设计方法,如电路原理图、硬件描述语言VHDL等,而且还支持电路仿真和时序分析等功能。有关可编程器件的具体使用在实验系统例程中将详细介绍。

由于编者水 平有限和时间仓促,本指导书中错误和遗漏之处在所难免,衷心希望读者批评指正。

4

电子设计自动化EDA 实验指导书

第一部分 实验开发系统

一、实验系统概述

此系列实验系统针对数字电路设计CPLD/FPGA 及模拟电路设计技术有总体上的概念。其中 II、III 型均为数字电路设计实验开发系统,IV、V 型为数、模混合可编程器件实验开发系统。这些系列设备都能不同程度地满足高校的现代电子技术EDA教学和数字电路及其它相关实验课程的要求。由于可编程器件的设计灵活性,其系统更能满足高校的相关课程设计、毕业设计及大学生电子设计竞赛等。对于程度较高的同学,本系统极其丰富的功能单元和可搭接的灵活性,使他们完全能够做出超出大纲要求的具有复杂性和创造性的综合实验。同时该系统也是从事教学及科研的广大教师和电子工程师的理想开发工具。本实验指导书采用V型系统。 二、配套软件

Max+plus II 10.0 基础版 1. 运行环境 3. 原理图输入 5. AHDL 输入 7. 原理图设计宏库 9. 逻辑综合 11.支持的芯片有:

Max7000 全系列(如 7000A、7000B、7000E、7000S 等)和 Max9000 系列等、

Flex6000、8000、10K(如 10K 系列的 10K10、20、30、50、10K100 等)、10KE 系列等。 三、系统硬件组成

EDA-V型实验箱的结构框图如图 1-1 所示。 各组成模块介绍:

5

Win95/98/2000 2.层次化设计 支持 支持 基本库

4.文本输入 6.VHDL 输入 8.仿真和时序分析

支持 支持 支持 支持

支持 10.硬件编程/下载 支持

电子设计自动化EDA 实验指导书

1. 4 位米字型数码管显示模块

数码管为共阴极数码管。本模块的输入口共有21个,为 17个段信号输入口和 4个位信号输入口,分别为 A1、A2、B、C、D1、D2、E、F、G、H、J、K、M、N、O、P、DP、 SEL0、SEL1、SEL2、SEL3。其中 SEL0 对应最左端的数码管,SEL3 对应最右端的数码管。数码管的管脚分配如图1-2所示。 2. 8 位 8 字型数码管显示模块

数码管为共阴极数码管。本模块的输入口共有21个,为11个段信号输入口和3个位信号输入口,分别为 A、B、C、D、E、F、G、DP、SEL0、SEL1、SEL2。其中SEL0、SEL1、SEL2 位于16×16 点阵模块区,它们经3-8译码器译码后送给数码管作为位选信号,其对应关系如表1-1所示。 3. 矩阵键盘输入模块 本矩阵键盘为4×8 键盘,I/O口分别为 KIN0、KIN1、KIN2、KIN3、SEL0、SEL1、SEL2,其中 SEL0、SEL1、SEL2 位于16×16点阵区。 4. 16×16 点阵模块 列选信号为SEL0~SEL3经4-16译码器后给L0~L15,最右边为第一列;行选信号为L0~L15,最上方为第一行。点阵显示接口对应关系如表1-2所示。 5. 128×32 液晶显示模块 具体介绍见《中文液晶显示模块说明》。 6. ISP PAC 适配器接口 模拟可编程器件选用Lattice公司的 PAC10、20、80芯片。下载该芯片时将芯片选择开关拨向PAC。

7. CPLD/FPGA 适配器接口 下载该芯片时将芯片选择开关拨向CPLD。 8. 12 位按键输入模块 开关弹起时为高电平,按下时为低电平。输出口最左边对应开关K1,最右边对应开关 K12。

6

电子设计自动化EDA 实验指导书

图 1-1 EDA-V 型实验箱结构框图

图 1-2

米字型数码管管脚分配

7

电子设计自动化EDA 实验指导书

表 1-1 LED 数码管显示接口及对应的显示状态

SEL2 1 1 1 1 0 0 0 0

接口序号 SEL1 SEL0 1 1 0 0 1 1 0 0 1 0 1 0 1 0 1 0 数码管 状态 第 1 位亮 第 2 位亮 第 3 位亮 第 4 位亮 第 5 位亮 第 6 位亮 第 7 位亮 第 8 位亮 注:最右边为第一位

表 1-2 点阵显示接口对应关系表

SEL3 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 SEL2 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 SEL1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 SEL0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 点亮列号 第 1 列 第 2 列 第 3 列 第 4 列 第 5 列 第 6 列 第 7 列 第 8 列 第 9 列 第 10 列 第 11 列 第 12 列 第 13 列 第 14 列 第 15 列 第 16 列 8

电子设计自动化EDA 实验指导书

9. 18 位拨码开关输入模块 开关拨向下方时为低电平,拨向上方时为高电平。输出口最左边对应开关D17,最右边对应开关D0。 10. 蜂鸣器输出模块 当输入口BELL_IN输入高电平时,蜂鸣器响。 11. 电平调节模块 调节时,输出口OUT的电平在0~5V内变化。 12. 模拟信号源模块 模块中第一排端口为输入口,第二排端口为输出口,分别说明如下: Diff IN:需差分转换信号输入口; Mux IN1:需叠加信号1输入口; Mux IN2:需叠加信号2输入口;

Diff OUT+:差分信号正极性输出端口,为Diff IN差分后的信号; Diff OUT-:差分信号负极性输出端口,为Diff IN差分后的信号; Mux OUT:叠加信号输出端口,为 Mux IN1与Mux IN2相加后的信号; SIN_OUT 312KHz:正弦信号312KHZ输出端口; 13. 话筒输入模块 通过外接话筒把语音信号输入经放大滤波后从MIC_OUT输出。 14. 语音输出模块 语音信号从SPEAK IN端口输入,经放大后直接由内部喇叭输出。 15. 电阻电容扩展模块 准备了一些实验常用的电阻电容供实验过程中用。 16. 自由扩展区 可作额外电路的搭建使用,作用等同于面包板。 17. 8 路 A/D 转换模块 采用 ADC0809,外部信号可以分别通过其8路输入端IN0~IN7进入A/D转换器。通过适当设计,目标芯片可以完成对ADC0809的工作方式确定、输入端口选择、数据采集与处理

9

电子设计自动化EDA 实验指导书

等所有控制工作,并可以通过系统板提供的译码显示电路(LED&LCD)将测得的结果显示出来。I/O 口如下:

IN0~IN7:8 通道模拟信号输入口; D0~D7: 8 位数据总线输出端口; Vref+、Vref-:参考电压输入端口; INT:中断信号输出端口; WD:写信号输入端口; RD:读信号输入端口;

CS:片选信号输入端口;

A0~A2:输入端口选择信号输入口; 18. D/A 转换模块 8 位 D/A,I/O 口定义如下: D0~D7:数据总线,输入口; /CE:转换允许,低电平有效;

/CS:片选,低电平有效; 有两种输出方式。第一种,将短路子接在左侧的两个铜柱上,D/A 转换输出到D/A OUT区域的6个孔输出;第二种,将短路子接在右侧的两个铜柱上,D/A 转换输出接到LM358的同相输入端。LM358单电源二运放,与AD558配合,将AD558 的输出接到LM358的同相输入端,作为其同相输入信号;在 LM358 的右上脚,有TEST IN 模块,其信号可作为LM358的反相输入端。 19. 串行 E2PROM 模块 采用的芯片为串行 E2PROM、AT93C46、I/O口定义如下: CS:片选输入,高电平有效。 CLK:串行数据时钟输入。 DI:串行数据输入。 DO:串行数据输出。

ORG:存储器位数选择输入:输入高电平时,选择为16位结构的存储器;输入为低电平时,选择为8位结构的存储器;未连接时,由于内部的上拉电阻,使其为16位存储器。

10

电子设计自动化EDA 实验指导书

20. RS232 扩展模块 采用的芯片为MAX232标准串行口接口片,通过CPLD/FPGA实现串口控制,可直接实现CPLD/FPGA与上位机的通讯。 21. EEPROM 模块 采用 28C64并行E2PROM。 22. 单片机及 RS232 接口模块 本单片机为开放性设计,可自由下载程序,对整个系统无任何影响。可以实现 CPLD/FPGA与单片机的接口实验,以及高级的 FPGA开发,同时自身带有串行接口,可与上位机实现通讯。其对应的接口为:

P0 口:D0~D7; P1 口:P10~P17; P2 口:P20~P27; 复位信号输出:RESET

P3 口分别对应为:/RD、/WR、RXD、TXD、T0、T1、INT0、INT1 其他接口为:ALE、PSEN

RESET 复位端口提供一高电平脉冲。 23. 可调数字信号源 时钟信号源可产生从1.2Hz~20MHz之间的任意频率。该电路采用全数字化设计,提供的最高方波频率为20MHz,最低频率为1.2Hz,并且频率可以在这个范围办内随意组合变化。整个信号源共有六个输出口(CLK0~CLK5),每个输出口输出的频率各不相同,通过 JP1~JP11这11组跳线来完成设置的,其中:

?

CLK0 输出口的频率通过JP7(CLK0)来设置的,这样输出的时钟频率种类为20MHz、10MHz、5MHz、2.5MHz、1.25MHz; ?

CLK1 输出口的频率通过 JP1(F_SEL1)及 JP8(CLK1)来设置,输出频率对应 的关系为:FCLK1=20MHz×F_SEL1×CLK1 ?

CLK2 输出口的频率通过 JP1(F_SEL1)、JP2(F_SEL2及JP9(CLK2)来设置, 输出频率对应的关系为:FCLK2=20MHz×F_SEL1×F_SEL2×CLK2

11

电子设计自动化EDA 实验指导书

? CLK3 输出口的频率通过JP1(F_SEL1)、JP2(F_SEL2)、JP3(F_SEL3及JP10(CLK3)来设置,输出频率对应的关系为: FCLK3=20MHz×F_SEL1×F_SEL2×F_SEL3×CLK3

? CLK4 输出口的频率通过 JP1(F_SEL1)、JP2(F_SEL2)、JP3(F_SEL3)、JP4(F_SEL4)及 JP11(CLK4)来设置,输出频率对应的关系为: FCLK4=20MHz×F_SEL1×F_SEL2×F_SEL3×F_SEL4×CLK4

? CLK5 输出口的频率通过 JP1(F_SEL1)、JP2(F_SEL2)、JP3(F_SEL3)、JP4(F_SEL4)、JP5(F_SEL5)及 JP6(CLK5)来设置,输出频率对应的关系为: FCLK5=20MHz×F_SEL1×F_SEL2×F_SEL3×F_SEL4×F_SEL4×CLK5

比如要得到 1.2Hz 的信号,短路子的设置如表 1-3 所示。信号输出 CLK5。

端子 JP1 JP2 JP3 JP4 JP5 JP6 JP7 名称 F_SEL1 F_SEL2 F_SEL3 F_SEL4 F_SEL5 F_SEL6 CLK0 设置 1/16 1/16 1/16 1/16 1/16 1/16 1.25M 表 1-3 短路子的设置表

12

电子设计自动化EDA 实验指导书

第二部分 EDA基础实验

实验一 组合逻辑 3-8 译码器的设计

本书将以实验一为例详细介绍 Altera 公司 Max+plus II 10.0 版本软件的基本应用,其它实验将不再赘述。读者在通过本实验后将对 Max+plus II 软件及 CPLD/FPGA 的设计与应用有一个比较完整的概念和思路。因篇幅有限,仅仅介绍了 Max+plus II 软件的最基本、最常用的一些基本功能,相信读者在熟练使用本软件以后,一定会发现该软件还有很多非常方便、快捷、灵活的设计技巧与开发功能。 一、实验目的

1. 通过一个简单的3-8译码器的设计,让学生掌握组合逻辑电路的设计方法。 2. 掌握组合逻辑电路的静态测试方法。 3. 初步了解可编程器件设计的全过程。 二、实验步骤

Max+plus II 软件的基本操作与应用: (一)设计输入

1. 软件的启动:进入Altera软件包,打开Max+plus II 10.0 软件。 2. 启动 File \\ New 菜单,弹出设计输入选择窗口,如下图 2-1-1 所示。

图 2-1-1 设计输入选择窗口示意图

13

电子设计自动化EDA 实验指导书

3. 选择 Graphic Editor File,单击 ok 按钮,打开原理图编辑器,进入原理图设计输入电路编辑状态,如下图 2-1-2 所示:

4. 设计的输入

(1)放置一个器件在原理图上

a.在原理图的空白处双击鼠标左键,出现窗口如图2-1-4 ;也可单击鼠标右键,出现窗口如图2-1-3 ,选择“Enter symbol..”,出现窗口如图2-1-4 ,进入器件选择输入窗口。

图 2-1-2 输入电路编辑状态示意图

图2-1-3 “Enter symbol”对话框

14

电子设计自动化EDA 实验指导书

图2-1-4 器件选择输入窗口示意图

b.在“symbol name”提示处(或光标处)输入元件名称或用鼠标双击库文件(在提示窗”Symbol Libraries”里的各个文件),在提示窗“Symbol Files”中双击元件或选中元件按下OK 即可将该器件放置到原理图中。

c.如果安放相同元件,只要按住Ctrl 键,同时用鼠标拖动该元件复制即可。 d.一个完整的电路包括:输入端口INPUT、电路元器件集合、输出端口OUTPUT。 e.下图2-1-5 为3-8 译码器元件安放结果。 (2)添加连线到器件的管脚上

把鼠标移到元件引脚附近,则鼠标光标自动由箭头变为十字,按住鼠标右键拖动,即可画出连线。3-8 译码器原理图如图2-1-6 所示。

15

电子设计自动化EDA 实验指导书

图2-1-5 元器件安放示意图

图2-1-6 3-8译码器原理图

16

电子设计自动化EDA 实验指导书

(3)标记输入/输出端口属性

分别双击输入端口的“PIN-NAME”,当变成黑色时,即可输入标记符并回车确认;输出端口标记方法类似。本译码器的三输入端分别标记为:A、B、C;其八输出端分别标记为:D0、D1、D2、D3、D4、D5、D6、D7。如下图2-1-7 所示。

图2-1-7 3-8译码器原理图端口标记示意图

(4)保存原理图

单击保存按钮图标,对于新建文件,出现类似文件管理器的图框,请选择保存路径、文件名称保存原理图,原理图的扩展名为 .gdf ,本实验中取名为test1.gdf 。

4)点击File\\Project\\set project to current file 设置此项目为当前文件,如下图2-1-8所示。注意,此操作在打开几个原有项目文件时尤为重要,否则容易出错。

17

电子设计自动化EDA 实验指导书

图2-1-8 保存原理图为当前工程文件

此时在软件窗口的顶层有路径指示,见下图2-1-9

图2-1-9 软件标题栏显示当前工程名

至此,已完成了一个电路的原理图设计输入的整个过程。 (二)电路的编译与适配

1. 选择芯片型号

选择当前项目文件欲设计实现的实际芯片进行编译适配,点击Assign\\Device 菜单选择芯片,如下图2-1-10 对话窗所示。如果此时不选择适配芯片的话,该软件将自动把所有适合本电路的芯片一一进行编译适配,这将耗费你许多时间。该例程中我们选用CPLD 芯片来实现,如用7000S 系列的EPM7128SLC84-6 芯片;同样也可以用FPGA 芯片来实现,只需在下面的对话窗口中指出具体的芯片型号即可。

注意:EPM7128SLC84-15 和EPF10K1084-4 不是快速芯片,要将提示窗“Show Only

18

电子设计自动化EDA 实验指导书

Faster Speed Grades” 前面的“√”去掉。

图2-1-10 可编程逻辑器件选择对话框

2. 编译适配

启动Max+plus II \\ Compiler 菜单,或点击主菜单下的快捷键,打开编译窗口。按Start 开始编译,并显示编译结果,生成下载文件。如果编译时选择的芯片是CPLD,则生成* .pof 文件;如果是FPGA 芯片的话,则生成* .sof 文件,以备硬件下载编程时调用。同时生成* .rpt 报告文件,可详细查看编译结果。如有错误待修改后再进行编译适配,如下图2-1-11 所示。注意,此时在主菜单栏里的Processing 菜单下有许多编译时的选项,视实际情况选择设置。

19

电子设计自动化EDA 实验指导书

图 2-1-11 编译窗口

如果设计的电路顺利地通过了编译,在电路不复杂的情况下,就可以对芯片进行编程下载,直到设计的硬件实现,至此你已经完成了一个EDA 的设计与实现的整个过程。如果你的电路有足够的复杂,那么其仿真就显得非常必要。

(三) 电路仿真与时序分析

Max+plusII 教学版软件支持电路的功能仿真(或称前仿真)和时序分析(或称后仿真)。众所周知,开发人员在进行电路设计时,非常希望有比较先进的高效的仿真工具出现,这将为设计过程节约很多时间和成本。由于EDA 工具的出现,和它所提供的强大的(在线)仿真功能迅速地得到了电子工程设计人员的青睐,这也是当今EDA(CPLD/FPGA )技术非常热门的原因之一。下面就Max+plus II 软件的仿真功能的基本应用在本实验中作初步介绍,在以后的实验例程中将不在一一介绍。 首先我们介绍功能仿真,即前仿真。

1. 编译选择

(1)选择Max+plus II \\ Compiler 菜单,进入编译功能。

(2)此时主菜单已改变如下图2-1-12。点击主菜单“Processing\\Functional SNF

20

电子设计自动化EDA 实验指导书

Extractor”,如下图2-1-12。

(3)此时编译窗口改变如下图2-1-13。这时下一步做的仿真是功能仿真。

图2-1-12 编译窗口菜单

图2-1-13 编译窗口变化示意图

21

电子设计自动化EDA 实验指导书

2. 添加仿真激励信号波形

(1)启动Max+plusII\\Wavefrom editor 菜单,进入波形编辑窗口,如下图2-1-14 所示。 (2)将鼠标移至空白处并单击右键,出现如下图2-1-15 所示对话窗口。

(3)选择Enter nodes from snf 选项并按左键确认,出现下图2-1-16所示对话筐,单击list按钮,选择欲仿真的I/O管脚。

(4)单击OK按钮,列出仿真电路的输入、输出管脚图。在本电路中,3-8译码器的输出为灰色,表示未仿真前其输出是未知的。

(5)调整管脚顺序,符合常规习惯,调整时只需选中某一管脚并按住鼠标左键拖至相应位置即可完成。

图2-1-14 进入波形编辑窗口

22

电子设计自动化EDA 实验指导书

图2-1-15 波形编辑选择对话框

图2-1-16 仿真管脚选择对话框

23

电子设计自动化EDA 实验指导书

(6)准备为电路输入端口添加激励波形,如下2-1-17所示。选中欲添加信号的管脚,窗口左边的信号源即刻变成可操作状态,如箭头和圆括弧所示。根据实际电路要求选择信号源种类,在本电路中我们选择时钟信号就可以满足仿真要求。

图2-1-17 为输入端口添加激励波形

(7)选择仿真时间:视电路实际要求确定仿真时间长短,如图2-1-18对话窗口所示。在当前主菜单“File ”的下拉菜单中选中“End Time”,在提示窗“Time ”中输入仿真结束时间,即可修改仿真时间。在本实验中,我们选择软件的默认时间1us 就能观察到3-8 译码器的8个输出状态。

(8)为A、B、C 三输入端口添加信号:先选中A 输入端“左侧的时钟信号源图标“

”添加激励波形。

”,然后再点击窗口

24

电子设计自动化EDA 实验指导书

图2-1-18 仿真时间修改窗口

(9)在本例程中,我们选择初始电平为“O”,时钟周期倍数为“1”(时钟周期倍数只能为 1 的整数倍) 并按OK 确认。经上述操作我们已为A 输入端添加完激励信号,点击全屏显示如下图2-1-19所示。

图2-1-19 A输入端添加激励信号

25

电子设计自动化EDA 实验指导书

(10)根据电路要求编辑另外两路输入端口的激励信号波形,在本实验中,3-8译码器的A、B、C三路信号的频率分别为1、2、4倍关系,其译码输出顺序就符合我们的观察习惯。按上述方法为B、C 两路端口添加波形后单击左边全屏显示图标,三路激励信号的编辑结果为下图2-1-20所示。

图2-1-20 添加输入端口信号

(11)保存激励信号编辑结果:使用File\\Save 或关闭当前波形编辑窗口时均出现下图2-1-21对话框,注意此时的文件名称不要随意改动,单击OK 按钮保存激励信号波形。

26

电子设计自动化EDA 实验指导书

图2-1-21 保存波形编辑文件

3. 电路仿真

(1)打开Max+plusII\\Simulator 菜单,或点击主菜单下的快捷键,弹出仿真对话窗口,如下图2-1-22所示。

27

电子设计自动化EDA 实验指导书

图2-1-22 电路仿真对话框

(2)确定仿真时间End Time 为“1”的整数倍。注意:如果在添加激励信号的时未设置结束时间的话,此时在仿真窗口中就不能修改End Time 参数。在该例程中,我们使用的是默认时间,单击Start 开始仿真,如有出错报告,请查找原因,一般是激励信号添加有误。本电路仿真结果报告中无错误、无警告,如下图2-1-23所示。

28

电子设计自动化EDA 实验指导书

图2-1-23 仿真结果示意图

(3)观察电路仿真结果,请单击激励输出波形文件图标,如下图2-1-24所示。

图2-1-24 观察输出信号波形

29

电子设计自动化EDA 实验指导书

(4)上图可见,我们所设计的3-8 译码器顺利地通过了仿真,设计完全正确。至此功能仿真结束。

4. 时序仿真。 (1)选择编译

a. 选择Max+plus II \\ Compiler 菜单,进入编译功能。

b. 此时主菜单已改变。点击主菜单“Processing”下拉菜单中“Timing SNF Extractor”,编译窗口便改变如下图2-1-25 。

编译完成后,下一步所做的仿真既是时序仿真。

图2-1-25 编译窗口改变示意图

(2) 时序仿真

a. 打开Max+plusII\\Simulator 菜单,弹出其对话窗口,如下图2-1-26 所示。点击“Start ”开始时序仿真。

30

电子设计自动化EDA 实验指导书

图2-1-26 时序仿真对话框

(a) 观察电路仿真结果,请单击激励输出波形文件图标,如下图2-1-27。

图2-1-27 观察电路仿真结果

仔细观查电路的时序,在空白出单击鼠标坐键,出现测量标尺,然后将标尺拖至欲测量

31

电子设计自动化EDA 实验指导书

的地方,查看延时情况从上图可以看到,我们这个电路在实际工作时,激励输出有15.2个ns的延迟时间。至此,我们完成了电路的仿真功能。

在有的电路仿真时,可能需要修改仿真步长,在主菜单“Options”下拉菜单中选中“Grid Size”, 如下图2-1-28所示 。出现如下图2-1-29 窗口,在提示窗“Grid Size” 对应的光标行修改数据,然后点击“OK”确认。

图2-1-28 仿真步长修改窗口

图2-1-29 “Grid Size”修改对话框

在时序仿真的过程中,也可能需要对激励波形反复做修改,如下图2-1-30 所示。

32

电子设计自动化EDA 实验指导书

图2-1-30 输入信号波形修改

用鼠标点住某一处波形拖动,出现黑色的条,即被选中。此时可通过选择主窗口左边的波形键选择高低电平,如图2-1-31所示。如果要直接打开一个已经编辑好的文件时,可用主菜单“File” 下拉菜单中的“Open” 项,或使用主菜单下的快捷键如下图2-1-32所示。会出现以下“Open”窗口,如图3-1-33所示。

图2-1-31 输入信号高低电平选择

33

电子设计自动化EDA 实验指导书

图2-1-32 波形文件打开菜单

图2-1-33 文件打开对话框

在“Drives” 提示窗中可选择驱动器名称,在 “Directories” 提示窗中可选择文件路径,如图中,双击“

” ,可返回到目录下,打开它里面的所有文件。双击

即可返回到D盘根目录下。在提示窗“Show in Files List” 中选择文件类型,如.gdf、 .tdf、 .vhd 等,或可显示所有文件。在提示窗“Files” 中选择要打开的文件,该文件名称会出现在“File

34

电子设计自动化EDA 实验指导书

Name” 提示窗中。点击“OK”键确认,即可打开该文件。

当打开一个现有的文件后,若要编译该文件,切记要指定路径和元器件。指定路径可用前面讲过的方法,在主菜单“File”的下拉菜单“Project” 中选择“Set Project to Current File”。也可采用如下方法,在主菜单“File”的下拉菜单“Project” 中选择“Name”,或点击快捷键

出现如图2-1-34 的窗口。在此窗口中确定工程文件的路径和名称。指定工程文件路径后,可在软件窗口的顶层有提示。如图2-1-35。

图2-1-34 文件打开对话框

图2-1-35 软件标题栏显示当前文件名

(四) 管脚的重新分配与定位

启动Max+plus II \\ Floorplan Editor 菜单命令,出现如图2-1-36所示的芯片管脚自动分配画面(读者可在芯片的空白处试着双击鼠标左键,会发现这样操作可在芯片如图2-1-36和芯片内部之间进行切换,可观察芯片内部的逻辑块等)。

Floorplan Editor 显示的是该设计项目的管脚分配图。这是由软件自动分配的。用户可随意改变管脚分配,以方便与外设电路进行匹配。管脚编辑过程如下:

35

电子设计自动化EDA 实验指导书

1. 按下窗口左边的手动分配图标, 所有管脚将会出现在窗口,如下图2-1-37中箭头所示。

图2-1-36 芯片管脚自动分配窗口

图2-1-37 芯片管脚手动分配示意图

36

电子设计自动化EDA 实验指导书

2. 用鼠标按住某输入/输出端口,并拖到下面芯片的某一管脚上,松开鼠标左键,便可完成一个管脚的重新分配( 读者可试着在管脚之间相互拖拽, 会觉得非常方便)。注意, 芯片上有一些特定功能的管脚,如时钟端,清零端等,进行管脚编辑时一定要注意,一般管 脚都放置在I/O 口。另外,在芯片器件选择中,如果选的是Auto ,则不允许对管脚再进行手工分配。当你对管脚进行二次调整以后,一定要再编译一次,否则程序下载以后,其管脚功能还是为当初的自动分配状态。

3. 可选用自动分配方式,点击软件窗口左侧图标,管脚会自动分配到器件的各个管脚。分配完成后请注意重新编译。用自动分配后,若要修改,则要手工分配,点手工分配,所有的管脚重新回到“Unassigned Nodes & ”窗口中。然后再一个一个的把管脚分配在器件上。 (五)器件的下载编程与硬件实现

1. 实验箱电路板上的连线

用三位拨码开关提供三位译码器的输入信号,将A、B、C 对应的管脚与三个拨码开关相连;用LED 灯来表示译码器的输出,将D0...D7 对应的管脚分别与8只LED 等相连。如表2-1所示。

表2-1 译码器管脚与实验箱连线对应表

A B C

0 0 0 1 0 0 1 1 1 0 0 1 0 0 1 1 1

0 0 0 1 1 1 1

LED0 亮 灭 灭 灭 灭 灭 灭 灭

LED1 LED2 LED3 LED4 LED5 LED6 LED7 灭 灭 灭 灭 灭 灭 灭 亮 灭 灭 灭 灭 灭 灭

灭 亮 灭 灭 灭 灭 灭

灭 灭 亮 灭 灭 灭 灭

灭 灭 灭 亮 灭 灭 灭

灭 灭 灭 灭 亮 灭 灭

灭 灭 灭 灭 灭 亮 灭

灭 灭 灭 灭 灭 灭 亮

2. 器件的编程下载

(1)启动Max+plus II \\ Programmer 菜单或点击快捷图标

,如果是第一次启用的话,

将出现如图2-1-37所示的对话框,请你填写硬件类型,在“Hardware Type”提示窗中选择“byte blaster”,在“Parallel Port”提示窗出现“Lpt1:0x378”,并按下OK 确认即可。如图2-1-38所示。

37

电子设计自动化EDA 实验指导书

图2-1-37 “Hardware setup”对话框

图2-1-38 Hardware设置对话框

(2)选中主菜单下的JTAG \\ Multi-Device JTAG Chain 菜单项(第一次起用可能会出现对话筐,视实际情况回答确认)。

(3)启动JTAG \\ Multi-Device JTAG Chain Setup… 菜单项,如图2-1-39 所示。

38

电子设计自动化EDA 实验指导书

图2-1-39 “JTAG Chain Setup”对话框

(4)点击“Select Programming File…”按钮,选择要下载的.pof 文件(CPLD 器件的下载文件后缀是.pof,FPGA 器件的下载文件后缀是.sof)。然后按Add 加到文件列表中,如图2-1-40所示。如果不是当前要下载编程的文件的话,请使用Delete 将其删除。

图2-1-40 编程下载文件选择对话框

(5)选择完下载文件以后,单击OK 确定,出现下图2-1-41的下载编程界面。

39

电子设计自动化EDA 实验指导书

图2-1-41 编程下载窗口

(6)单击Program 按钮,进行下载编程(如是FPGA 芯片,请点击Configure),如不能正确下载,请点击如图5-4 的Detect JTAG chain info 按钮进行JTAG 测试,查找原因,直至完成下载,最后按OK 退出。至此,已经完成了可编程器件的从设计到下载实现的整个过程。

(7)结合电路功能,观察设计实现的正确结果。

说明:通过对本实验的学习,相信读者对Max+plusII 软件已经有了一定的认识,同样对CPLD/FPGA 可编程器件的整个设计过程有了一个完整的概念和思路。当然本书因篇幅有限,其软件的其它应用不能一一在此介绍,有关内容请参考相关教材及书物。 附: 用VHDL硬件描述语言完成3-8译码器的设计: (1)生成设计项目文件。

(2)启动File \\ New 菜单命令,如图2-1-42所示。

40

电子设计自动化EDA 实验指导书

图2-1-42 新建文本编辑对话框

(3)选择Text Editor file ,点击OK; (4)键入程序如下: LIBRARY ieee;

USE ieee.std_logic_1164.ALL; ENTITY decoder3_8 IS

PORT(

A, B,C,G1,G2A,G2B: IN STD_LOGIC; Y: OUT STD_LOGIC_VECTOR(7 DOWNTO 0));

END decoder3_8;

ARCHITECTURE fun OF decoder3_8 IS

SIGNAL indata: STD_LOGIC_VECTOR(2 DOWNTO 0); indata <= C&B&A;

PROCESS (indata, G1, G2A,G2B) BEGIN

IF (G1='1' AND G2A='0' AND G2B='0') THEN

CASE indata IS

WHEN \WHEN \WHEN \

41

BEGIN encoder:

电子设计自动化EDA 实验指导书

WHEN \WHEN \WHEN \WHEN \WHEN \WHEN OTHERS =>Y<=\

END CASE; Y<=\

ELSE END IF;

END PROCESS encoder;

END fun;

(4)保存为 decoder3_8.vhd 文件,然后进行编译适配即可。

其它操作都与原理图设计输入相同。

42

电子设计自动化EDA 实验指导书

实验二 全加器

一、实验目的

设计并实现一个一位全加器。 二、实验原理

计算机中的加法器一般就是全加器,它实现多位带进位加法。下面以一位全加器介绍。 一位全加器有三个输入、两个输出,如图 2-2-1所示。(被加数)Ai (被加数)Bi (进位入)Ci-1

图 2-2-1

一位全加器示意图

(全加和)Si

全加器

(进位出)Ci

图 2-2-1 中的“进位入”Ci-1 指的是低位的进位输出,“进位出” Ci 即是本位的进位输出。一位全加器的真值表见表2-2。

表 2-2 一位全加器的真值表

Ci-1 0 0 0 0 1 1 1 1

输入 Bi 0 0 1 1 0 0 1 1 输出 Ai 0 1 0 1 0 1 0 1 Si 0 1 1 0 1 0 0 1 Ci 0 0 0 1 0 1 1 1 全加功能的硬件实现方法有多种,例如,可以把全加和看作是Ai与Bi的半加和Hi与进位输入 Ci-1 的半加和来实现。多位全加器就是在一位的原理上扩展而成的。集成电路全加器有 7480、7481、7483 等。

43

电子设计自动化EDA 实验指导书

三、实验连线

全加器的三个输入所对应的管脚同三位拨码开关相连,三个输入端子是 a、b、cin,分别代表Ai、Bi、Ci-1;两个输出所对应的管脚同两位发光二极管相连,两个输出端子是 c0、sum,分别代表 Ci 、Si。 四、实验记录

请将实验结果填入表 2-3 中。

表 2-3 实验二的实验结果纪录表 输入 Ci-1 Bi Ai 0 0 0 0 0 0 1 1 1 1 0 1 1 0 0 1 1 1 0 1 0 1 0 1 输出 Si Ci 0 1 1 0 1 0 0 1 0 0 0 1 0 1 1 1 实验结果 Si Ci

44

电子设计自动化EDA 实验指导书

实验三 8位加法器

一、实验目的

设计并实现一个带进位输入的8位全加器。 二、实验原理

在实验二中介绍了一个一位的全加器的例子,在这里将设计一个 8位的全加器,其框图如图 2-3-1 所示。图中的“进位入”Ci-1 指的是低位的进位输出,“进位出”Ci 即是本位的进位输出。(被加数)Ai(7..0) (被加数)Bi(7..0) (进位入)Ci-1

(全加和)Si(7..0)

全加器

(进位出)Ci

图 2-3-1 8 位全加器原理

三、实验连线

全加器的 17个输入所对应的管脚同 17 位拨码开关相连,17个输入管脚是 a0~a7、b0~b7 代表两个 8 位二进制数,cin 代表进位位;9个输出所对应的管b0~b7 和cin a0~a7、

脚同 9 位发光二极管相连,9个输出管脚是 sum0~sum7 和cout,sum0~sum7 代表相加结果,cout 代表进位位。 四、实验记录

请将实验结果填入表 2-4 中。

表 2-4 实验二的实验结果纪录表 Ci-1 0 0 输入 Bi(7..0) Ai(7..0) 实验结果 Si(7..0) Ci 00000000 00000000 00000001 00000000 ?? ??1 1

11111110 00000000 11111111 00000000 45

电子设计自动化EDA 实验指导书

实验四 数据比较器

一、实验目的

设计并实现一个4位二进制数据比较器。 二、实验原理

二进制比较器是提供关于两个二进制操作数间关系信息的逻辑电路。两个操作数的比较结果有三种情况:A 等于 B、A 大于 B 和 A 小于 B。

考虑当操作数 A 和 B 都是一位二进制数时,构造比较器的真值表如表 2-5 所示。

表 2-5 一位比较器的真值表 输入 A 0 0 1 1 B 0 1 0 1 A=B 1 0 0 1 输出 A>B 0 0 1 0 A

输入信号有 A0~A3、B0~B3、CLK 和 RST,其中 A0~A3 和 B0~B3 代表两路相互比较的数,接拨码开关,CLK 接时,RST接复位端;输出信号有 AEQB(A=B), AGTB(A>B)、ALTB(A

同前,对比较器造表,得到其真值表,并分析其运算结果的正确性。

46

电子设计自动化EDA 实验指导书

实验五 二进制码转换成 BCD 码

一、实验目的

设计并实现一个 4 位二进制码转换成 BCD 码的转换器。 二、实验原理

对于不同代码之间的转换,有用硬件实现的,也有用软件实现的。对于硬件实现,可以用一般的组合逻辑电路实现,也可以用译码器、编码器或只读存储器来实现。本实验的原理如下表 2-6所示。

输入信号 输出信号 D3 D2 D1 D0 B4 B3 B2 B1 B0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1

0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 1 1 0 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 三、实验连线

输入信号 BIN-IN0~BIN-IN3 (代表4位16制数据输入)接拨码开关;输出

信号 BCD-OUT0~BCD-OUT4(代表 5 位 10 进制数据输出)接发光二极管。改变拨码开关的状态,观察实验结果。 四、实验记录

记录实验结果,将实验结果制表,与真值表相比较,检验转换的正确性。

47

电子设计自动化EDA 实验指导书

实验六 计数器

一、实验目的

1、设计一个带使能输入及同步清0 的增1 计数器,仿真波形图见图5-1。

2、 设计一个带使能输入及同步清0 的增1/减1 的8 位计数器,仿真波形图见图5-2A 和5-2B。 二、实验内容

下面分别是增1计数器和8位增减计数器的仿真波形图:

图2-5-1 增1计数器波形图

图2-5-2A 加减控制计数器波形图

48

电子设计自动化EDA 实验指导书

2-5-2B 加减控制计数器波形图

在用VHDL 语言描述一个计数器时,如果使用了程序包ieee.std_logic_unsigned ,则在描述计数器时就可以使用其中的函数“+”(递增计数)和“-”(递减计数)。假定设计对象是增1 计数器并且计数器被说明为向量,则当所有位均为?1?时,计数器的下一状态将自动变成?0?。举例来说,假定计数器的值到达“111 ”是将停止,则在增1 之前必须测试计数器的值。

如果计数器被说明为整数类型,则必须有上限值测试。否则,在计数顺值等于7,并且要执行增1 操作时,模拟器将指出此时有错误发生。

下面的例子是一个3 位增1/减1 计数器:当输入信号UP 等于1 时计数器增1;当输入信号UP 等于0 时计数器减1。VHDL语言描述如下: library ieee;

use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity up_down is

port(clk,rst,en,up: in std_logic;

sum: out std_logic_vector(2 downto 0); cout: out std_logic);

end;

architecture a of up_down is

signal count: std_logic_vector(2 downto 0);

begin process(clk,rst)

begin if rst=?0? then

49

电子设计自动化EDA 实验指导书

count<=(others=>?0?); elsif rising_edge(clk) then if en=?1? then

case up is

when ?1? => count<=count+1; when others =>count<=count-1; end case;

end if;

end if;

end process; sum<=count;

cout <=?1? when en=?1? and ((up=?1? and count=7) or (up=?0? and count=0)) else ?0?; end;

参考以上实例完成实验目的中所要求的3 个计数器的设计。 三、实验连线

实验1 输入信号有clk (时钟信号)、clr (复位信号)、en(使能控制输入信号),clk 用CPLD/FPGA 适配器板子上的时钟信号,接数字信号源的CLK5 ,频率调节到1Hz 左右,clr 、en 接拨码开关,工作时clr 为低电平,en 为高电平;输出信号有Q0~Q3 ,接LED 灯。

实验2 输入信号有clk(时钟信号)、rst(复位信号)、en(使能控制输入信号)、up(加减控制输入信号),clk 用CPLD/FPGA 适配器板子上的时钟信号,接数字信号源的CLK5 ,频率调节到1Hz 左右,rst、en、up 接拨码开关,工作时rst 和en 为高电平,up 为高电平时增计数,为低电平时减计数;输出信号有SUM0~SUM2 (代表输出数据)和COUT (代表进位或借位),都接LED 灯。

在做实验时,请注意仿真波形图中各个输入信号的有效电平。

50

本文来源:https://www.bwwdw.com/article/dqbr.html

Top