计算机组成原理实验TEC5实验指导书0.doc_第1页
计算机组成原理实验TEC5实验指导书0.doc_第2页
计算机组成原理实验TEC5实验指导书0.doc_第3页
计算机组成原理实验TEC5实验指导书0.doc_第4页
计算机组成原理实验TEC5实验指导书0.doc_第5页
已阅读5页,还剩63页未读 继续免费阅读

下载本文档

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

文档简介

TEC-5 计算机组成原理实验系统 学生实验指导书 2010 年 3 月 2 目 录 第一章第一章 TEC-5TEC-5 计算机组成和数字逻辑实验系统介绍计算机组成和数字逻辑实验系统介绍.2 第二章第二章 ISPEXPERTISPEXPERT 编程软件入门编程软件入门.13 2.1 ISPEXPERT 使用概述.13 2.2 建立由 ABEL-HDL 源文件组成的设计16 2.3 建立由原理图源文件组成的设计.20 2.4 混合设计及层次导航.28 2.5 编译、模拟与器件适配.29 2.6 下载.32 第第 3 3 章章 计算机组成原理实验计算机组成原理实验35 3.1 运算器组成实验.35 3.2 双端口存储器原理实验.38 3.3 数据通路组成实验.40 3.4 常规型微程序控制器组成实验.43 3.5 CPU 组成与机器指令执行周期实验53 3.6 硬连线控制器的设计与调试(课程设计).55 3 第一章 TEC-5 计算机组成和数字逻辑实验系统介绍 一、TEC-5 实验系统的特点 1. 采用单板式结构、计算机模型采用 8 位,简单、实用。计算机模型分为数据通路、 控制器、时序电路、控制台、数字逻辑实验区五部分。各部分之间采用可插、拔的 导线连接。 2指令系统采用 4 位操作码,容纳 16 条指令,已实现了加、减、逻辑与、存数、取 数、条件转移、IO 输出和停机 8 条指令,指令功能非常典型。其他 8 条指令备用。 3数据通路采用双端口存储器作为主存,实现了数据总线和指令总线双总线体制,体 现了当代 CPU 的设计思想。 4运算器中 ALU 由 2 片 74181 实现。4 个通用寄存器由 1 片 ispLSI1016 组成,设计 新颖。 5控制器采用微程序控制器和硬连线控制器两种类型,体现了当代计算机控制器设计 技术的完备性。 6控制存储器中的微代码可以通过 PC 机下载,省去插、拔 EEPROM 芯片。 7实验台上提供了一片在系统编程器件 ispLSI1032,学生在 PC 机设计好组合逻辑控 制器方案后下载到 ispLSI1032 中,ispLSI1032 就构成了新的控制器。控制器的设 计并实现对提高计算机综合设计能力会有很大帮助。ispLSI1032 也可用于数字逻辑 和数字系统的设计。 8控制台包含 8 个数据开关,用于置数功能;16 个双位开关,用于置信号电平;控 制台有复位和启动二个单脉冲发生器,有单拍、单步二个开关。控制台有 5 种操作: 写存储器,读存储器,读寄存器,写寄存器,启动程序运行。 9微程序控制器中的微代码输出、微地址总线、程序地址总线、数据总线、存储器地 址总线、进位、双端口存储器的读、写冲突位 BUSYL#和 BUSYR#等都有指示灯,便 于查看指令的执行过程。 10数字逻辑和数字系统实验部分除上述可用的一片 ISP1032、16 个电平开关和 2 个 单脉冲按钮(复位和启动)外,还有 12 个指示灯,11 个双列直插插座,5 个 8432 编码驱动的数码管,1 个直接驱动的数码管,1 个喇叭。时钟信号源有 500KHz,50KHz,5KHz。 11电源部分具有抗电源对地短路能力。 二、TEC-5 实验系统的组成 TEC-5 实验系统由以下几个部分组成: 控制台 数据通路 控制器 时序电路 数字逻辑实验区 电源模块 4 下面分别对各组成部分予以介绍。 三、电源 电源部分由一个电源、一个电源插座、一个电源开关和一个红色电源指示灯组成。 电源通过四个螺钉安装在实验箱底部,它输出+5V 电压,最大负载电流 3A,具有抗+5V 对地短路功能。电源插座用于接交流 220V,插座内装有保险丝。电源开关接通时,模块 电源输出+5V,红色指示灯点亮。 四、时序发生器 时序发生器产生计算机模型所需的时序和数字逻辑实验所需的时钟。时序电路由一 个 500KHz 晶振、2 片 GAL22V10(U64、U66)、一片 74LS390(U65)组成。根据本机设计, 执行一条微指令需要 4 个节拍脉冲 T1、T2、T3、T4,执行一条机器指令需要三个节拍电 位 W1、W2、W3,因此本机的基本时序如下: MF T1 T2 T3 T4 W1 W2 W3 图1.1 基本时序图 图中,MF 是晶振产生的 500KHz 基本时钟,T1、T2、T3、T4 是数据通路和控制器 中各寄存器的节拍脉冲信号,印制板上已将它们和相关的寄存器相连。T1、T2、T3、T4 既供微程序控制器使用,也供硬连线控制器使用。W1、W2、W3 只供硬连线控制器做节 拍电位信号使用。另外,供数字逻辑实验使用的时钟 50KHz 和 5KHz 由 MF 经一片 74LS390 分频后产生。 五、数据通路 TEC-5 的数据通路采用了数据总线和指令总线双总线形式。它还使用了大规模在系 统编程器件作为寄存器堆,使得设计简单明了,可修改性强。 图 1.2 是数据通路总体图,下面介绍图中各个主要部件的作用。 1运算器 ALU 运算器 ALU 由两片 74LS181(U55 和 U60)组成,其中 U60 进行低 4 位运算,U55 进 行高 4 位运算。在选择端 M 和 S0-S3 控制下,ALU 对数据 A、B 进行各种算术、逻辑运 算。有关 74181 运算的具体操作,请看 74181 的资料和教科书。当 LDRi=1 时,在 T3 的 上升沿寄存器 C(U57A)保存运算产生的进位标志信号。 5 2运算操作数寄存器 DR1 和 DR2(U47、U48) DR1(U47)和 DR2(U48)是运算操作数寄存器,DR1 和 ALU 的 A 口相连,DR2 和 ALU 的 B 口相连。DR1 和 DR2 各由一片 74LS273 构成。当 LDDR1/LDDR21 时,在 T2 上升沿,DR1/DR2 接收来自通用寄存器堆 A/B 端口的数据。 3双端口通用寄存器堆 RF(U30) 双端口通用寄存器堆 RF 由一片 ispLSI1016(U30)构成,其中包含 4 个 8 位寄存器 (R0、R1、R2、R3) ,有三个控制端口:两个控制读操作,一个控制写操作,三个端口 可以同时操作。由 RD1、RD0 选中的寄存器的数据从 A 端口读出,由 RS1、RS0 选中的 寄存器的数据从 B 端口读出;WR1、WR0 选择要写入的寄存器。LDRi 控制写操作,当 LDRi1 时,在 T3 上升沿将数据总线 DBUS 上的数据写入由 WR1、WR0 选中的寄存器。 从 RF 的 A 端口读出的数据直接送 DR1。由 B 端口读出的数据直接送 DR2 之外,还 可以送数据总线 DBUS。当 RS_BUS#0 时,允许 B 端口数据送 DBUS。 4双端口存储器 RAM 双端口存储器 RAM 由一片 IDT7132(U44)及少量控制电路构成。IDT7132 是 2048 字 节的双端口静态随机存储器,本实验系统实际使用 256 字节。IDT7132 的两个端口可以 同时进行读、写操作。在本实验系统中,RAM 左端口连接数据总线 DBUS,可进行读、 写操作;右端口连接指令总线 IBUS,输出到指令寄存器 IR,作为只读端口使用。 IDT7132 有 6 个控制引脚,CEL#、LR/W#、OEL#控制左端口读、写操作; CER#、RR/W#、OER#控制右端口的读写操作。CEL#为左端口选择引脚,低电平有效; 当 CEL#1 时,禁止对左端口的读、写操作。LR/W#控制对左端口的读写,当 CEL#=0 且 LR/W#=1 时,左端口进行读操作;当 CEL#=0 且 LR/W#0 且 T2 为高时,左端口进 行写操作。OEL#的作用等同于三态门,当 CEL#=0 且 OEL#0 时,允许左端口读出的 数据送到数据总线 DBUS 上;当 OEL#1 时,禁止左端口的数据放到 DBUS。为便于理 解,在以后的实验中,我们将 OEL#引脚称为 RAM_BUS#。控制右端口的三个引脚与左 端口的三个完全类似,不过只使用了读操作,在实验板上已将 RR/W#固定接高电平, OER#固定接地。当 CER#=0 时,右端口读出的数据(更确切的说法是指令)放到指令总 线 IBUS 上,然后当 LDIR=1 时在 T3 的上升沿打入指令寄存器 IR。所有数据/指令的写 入都使用左端口,右端口作为指令端口,不需要进行数据的写入。 左端口读出的数据放在数据总线 DBUS 上,由数据总线指示灯 DBUS7-DBUS0 显示。 右端口读出的指令放在指令总线 IBUS 上,由指令总线指示灯 IBUS7-IBUS0 显示。 5地址寄存器 AR 和程序计数器 PC 存储器左端口的地址寄存器 AR(U53、U59)和右端口的地址寄存器 PC(U52、U45)都 使用 2 片 74LS163,具有地址递增的功能。PC 是程序计数器,提供双端口寄存器右端口 地址,U52 是低 4 位,U45 是高 4 位,具有加载数据和加 1 功能。AR 是地址寄存器,提 供双端口存储器左端口地址,U53 是低 4 位,U59 是高 4 位,具有加载数据和加 1 功能。 AR 中的地址用地址 AR 指示灯 AR7-AR0 显示,PC 中的地址用程序计数器 PC 指示灯 PC7-PC0 显示。 当 LDAR#0 时,AR 在 T2 时从 DBUS 接收来自 SW7SW0 的地址;当 AR11 时,在 T2 的上升沿存储器地址加 1。注意:LDAR#和 AR1 两个控制信号不能 同时有效。在下一个时钟周期,令 CEL#0,LR/W#0,则在 T2 节拍进行写操作,将 6 SW7SW0 设置的数据经 DBUS 写入存储器。 当 LDPC#0 时,PC 在 T2 时从 DBUS 接收来自 SW7SW0 的地址,作为程序的 启动地址;当一条机器指令开始执行时,取指以后,PC11,程序计数器给出下一条 指令的地址。注意:LDPC#和 PC1 两个控制信号不能同时有效。 6指令寄存器 IR 指令寄存器 IR 是一片 74LS273(U46) 。当 LDIR1 时,在 T3 的上升沿,它从双端 口存储器的右端口接收指令。指令的操作码部分 IR7IR4 送往控制器译码,产生数据通 路的控制信号。指令的操作数部分送往寄存器堆 RF,选择参与运算的寄存器。IR1、IR0 与 RD1、RD0 连接,选择目标操作数寄存器;IR3、IR2 与 RS1、RS0 连接,选择源操作 数寄存器。IR1、IR0 也与 WR1、WR0 连接,以便将运算结果送往目标操作数寄存器。 表 1 机器指令系统 指令格式 名称助记符功能 IR7 IR6 IR5 IR4IR3 IR2IR1 IR0 加法ADD Rd, Rs Rd + RsRd 0 0 0 0Rs1 Rs0Rd1 Rd0 减法SUB Rd, Rs Rd - RsRd 0 0 0 1Rs1 Rs0Rd1 Rd0 逻辑与AND Rd, Rs Rd CARRY 2;”indicates 2 bits width for arithmetic functions ” Constants c, x = .c. , .x.; ” Inputs clk , rclk , clr , d7d0 pin; ” Outputs pwmpin istype com; loadpin istype com; ” Nodes r7r0node istype reg,buffer; ” Sub-module declarations counter interface( clk , rst - q7q0); ”Sub-module interfaces cntrl functional_block counter; 21 图 2.4 文本编辑窗口 ” Sets count = cntrl.q7q0; store = r7r0; Equations pwm = (count store);”Pulse-width Modulated ”output is low until count goes beyond data. cntrl.clk = clk; cntrl.rst = clr; load = (count = 250);”Time for next data byte. ”Externally connect load ”output to rclk input store.clk = rclk;”Load data when count is equal to 250 store := d7d0; END 键入完成以后,检查有无输入错误的地方。改正出现的错误。单击文本编辑器 内 File 菜单下的 Save(保存) ,保存刚键入的名为 pwmdac.abl 的文件。单击 File 菜 单下的 Exit,退出文本编辑器。这时项目导航器更新它的源文件窗口,指出已有一 个用 ABEL-HDL 语言写成的名为 Pwmdac.abl 的源文件。过程窗口也被更新,指示 出对这个源文件下一步的操作。有关这些操作,看本章 2.5 节。 按照类似的方法,将第二个模块输入到计算机中。 MODULE counter 22 TITLE 8-bits prelodable up counter; ” Constants c,x = .c. , .x.; ” Inputs clk , rstpin; ” Outputs q7q0pin istype reg,buffer; ” Sets count = q7q0; Equations count := (count.fb + 1); count.clk = clk; count.ar = rst; END 键入上面两个源文件后,项目导航器源文件窗口将以缩进形式列出它们的名字, 指示出这两个文件的层次:Pwmdac 是顶层模块,counter 是底层模块。 2.3 建立由原理图源文件组成的设计 ispEXPERT 软件包含一个原理图输入系统。一张原理图可以代表一个简单的逻 辑电路(如一个与门) 、一个复杂元件或者一个顶层电路图。原理图是描述硬件结构 的一种重要方式,具有直观、清晰、易于掌握全局信号关系等优点,硬件设计工程 师都熟悉它。一幅原理图相当于 ABEL-HDL 语言一个源文件,绝大多数情况下相当 于一个模块(规范设计应当这样做,就象一个 ABEL-HDL 源文件最好只包括一个模 块一样) 。它由以下几部分构成: 元件 它可以是标准器件库中的元件,也可以是代表其它原理图的功能块 符号。对可编程器件而言,原理图上不包括电阻、电容,这与一般电原理 图有所不同。 连线 用于连接器件。可以是单信号线,也可以是多根信号线的集合(总 线) 。 I/O 标记 用于标记一幅原理图的输入、输出信号,以及信号的方向(输 入、输出或者双向) 。 图片和文字 仅起说明和解释作用,对原理图代表的逻辑功能无实际意义。 一张有效的原理图至少应包括前三部分,即器件、连线和 I/O 标记。下文中为 23 叙述方便,用反斜杠()表示下拉式菜单的层次。例如 Fi1eNew 表示选择 File 子菜单 中的 New 条目。 2.3.1 进入原理图设计环境 进入原理图设计环境的开始步骤与进入 ABEL-HDL 语言设计环境是一致的,如 启动 ispEXPERT、建立新项目、建立一个新的源文件等工作,请参考上一节。在源 文件形式选择对话窗中,选择 Schematic(原理图) ,则出现文件名对话框,键入原 理图文件名(扩展名是.sch 或者不键入)后,单击保存按钮,则进入原理图编辑器。 图 2.5 是一个原理图编辑窗口式样。窗口中有一张空白原理图,原理图的文件名为 DEMO。 图 2.5 原理图编辑窗口 2.3.2 安放元件 所谓元件,既可以包括与、非门之类的简单器件,也可包括计数器之类的复杂器件, 还包括用户自己定义的器件。在原理图编辑窗口的主菜单中选择 Add Symbo1(添加元 件) ,会出现一个元件库窗口,如图 2.6。在元件库窗口中选择合适的库和元件(使其反 白显示) ,然后移动光标,选中的元件会跟随光标移动。到达希望的位置后,单击鼠标左 键,则安放该元件在原理图上。由于此元件仍附着在光标上,继续移动光标并单击鼠标 左键,能将此元件安放在若干不同的地方。双击鼠标左键或者单击鼠标右键,会结束此 元件的安放操作,不过仍处于添加元件命令状态,直到另一个新命令开始,才结束此命 令的执行。在原理图编辑器中,一般用开始新命令来结束旧命令的执行。 使用 EditDupicate 命令能够将原理图的一个区域多次复制。启动 EditDuplicate 命令, 24 选中源域的一个角,按下鼠标左键拖动鼠标,直到虚线框形成的源域满意为止。松开鼠 标左键,单击目标区位置一次,则源区被复制一次,双击鼠标左键或单击鼠标右键结束 该源区的复制工作。 ispEXPERT 提供算术运算库(ARITHS.LIB)、逻辑门库(GATES.LIB)、输入输出缓 存库(IOPADS.LIB) 、多路选择器库(MUXES.LIB)和寄存器库(REGS.LIB)等 15 个 元件库。 图 2.6 元件符号库 下面以一个简单的例子说明元件的放置。 图 2.7 元件的放置 1.从主菜单栏选择 Add,然后选择 Symbol,出现元件符号库。 2.选择 GATES.LIB 库,然后选择 G_2AND 元件符号。 3.将鼠标放在原理图上,注意 AND 门附着在光标上,并随之移动。单击鼠标左 键,将 AND 门放在合适的位置。 4.继续移动光标,在第一个 AND 门下面,再放一个 AND 门。 5.单击鼠标右键,鼠标上附着的 AND 门消失,表示 AND 门放置结束。 6.选择 GATES.LIB 库中的 G_OR 元件,用同样的方法放在原理图的适当位置上。 注意,步骤 5 可以省略,选择新元件的开始即结束旧元件的选择。 7.选择 REGS.LIB 库中的 G_D 元件,并把它放在原理图的适当位置上,就构成了 25 图 2.7。 2.3.3 连线 连线是元件引脚之间的电连接线。连线只能与元件引脚相连,而不能把它和元 件本身相连。连线分为单信号线和总线两种。总线能使多个信号形式上在一条线上 传送,它使得原理图更简洁、清晰。原理图中的总线与数字系统中的概念不一样, 它可以把若干无关的信号集中在一起,用一条总线传送。 在原理图编辑窗口中使用 AddWire 命令和 AddNet Name 命令添加连线和连 线名。启动 AddWire 命令,单击连线起点(某个元件引脚或另一条已有连线上的某 点) ,就开始画一条连线。单击鼠标左键,可以弯折连线;双击左键或单击右键终止 连线。若连线开始或结束于另一根连线,两根连线会自动连接。 连线必须有名字。连线名在原理图编辑器和网表生成器中标识一条连线。如果 用户不对连线显式命名,原理图编辑器会对连线自动命名。连线不允许悬空,必须 连到某个元件引脚上,或者连到 I/O 标记上。所有输入/输出信号线必须连到 I/O 标 记上,而且必须命名。对于模拟期间欲观察的内部信号线,也应对其命名。启动 AddNet Name 命令,在屏幕底下的状态栏内输人连线名,并按 Enter 键确认;连 线名附在光标上;移动光标到目的地,单击鼠标左键,连线名标注在连线旁边。如 果连线名以数字为后缀,除键入连线名外,最后多键入一个加号(+) ,则可命名一 组连续的连线名。例如键入 end0+后,则会自动生成 end1、end2。ispEXPERT 软 件对字母大小写敏感,因此在它处引用连线名时,大小写应注意一致。 用复合名命名一条连线使连线定义为总线。复合名的格式是:总线名序号表。 一种序号表是标明起始序号和终止序号的下标范围。起始序号和终止序号用冒号 (:)分开,如 data3:0。另一种序号表是用逗号分开的序号,如 addr1,3,2,5,0。 从一张原理图到另一张原理图需传递大量信号时,总线特别有用。总线使得单个 I/O 标记传送大量信号到另一张原理图。信号名称并不需要一致,但是 I/O 标记中包含 的引脚数必须与总线所含信号数相同。 下面给图 2.7 中的元件加上连线。 1. 选择 Add/Wire,启动连线命令。 2. 单击上面一个 AND 门的输出引脚(小方框) ,开始画连线。水平移动鼠标, 光标到达 OR 门引脚上方时,单击左键,弯折连线,继续移动光标到 OR 门的 引脚,单击鼠标左键,则在 AND 门的输出引脚和 OR 门的输入引脚之间形成 了一条连线。 3. 重复上述动作,将相应的连线画出,则形成了图 2.8。 26 图 2.8 加连线 4. 安放 I/O 标记 I/O 标记表示进入或者离开这张原理图的信号,即输入、输出或者双向信号。 安放 I/O 标记之前,连线名必须在连线的一个端点上,不能在连线的上边或下边。 输入连线名后,点击线头(一个小方框)则将连线名放在线端。有一同时添加连线 和连线名的简单方法:输入连线名后,将光标移到一个元件引脚或连线的某一点上, 按住鼠标左键并拖到合适位置再松开,这样就产生了一根新连线,连线名就在新连 线的端点上。启动 Add I/O 标记命令,选择合适的 I/O 属性(输入、输出或双向。 属性 None 为取消 I/O 标记),单击连线线头,则安放相应的 I/O 标记。连线名出现在 I/O 标记内部,表示是一个进出该模块的信号。 对于一个可编程器件整体而言,进出此器件的信号连接到 I/O 标记时,需要经 过 I/O 缓存器(I/O PAD) 。ispEXPERT 元件库中提供 5 种 I/O 缓存器,它们是输入 缓存器、输出缓存器、双向缓存器、时钟缓存器和三态缓存器。 连线名“GND”表示连线接地。不过应避免使用 VCC 信号名,必要时用 GND 加上反向器来代替。下面给图 2.8 加 I/O 缓存和 I/O 标记,形成图 2.9。 图 2.9 加 I/O 缓存和 I/O 标记 1.选择 AddSymoble,启动放置元件命令。 2.选择 IOPADS.LIB 库中的 G_OUTPUT,放置一个输出缓存在原理图上。 3.选择 IOPADS.LIB 库中的 G_INPUT,放置 4 个输入缓存在原理图上。 4.选择 IOPADS.LIB 库中的 G_CLKBUF,放置 1 个时钟缓存在原理图上。 5.将 I/O 缓存和有关元件之间的连线连好。 6.选择 AddNet Name,此时屏幕下方的状态栏给出提示信息,提示设计者 输入连线名,输入“A” ,然后按 Enter(回车)键,连线名则附着在光标 上。将光标移动到最上面的 AND 门输入的末端(小方框) ,按住鼠标左键, 这样就可以在放置连线名“A”时也画出一根输入线。 7.用同样的方法,放置连线名“B” 、 “C” 、 “D” 、 “CLK” 、 “OUT” 。 8.选择 AddI/O Marker,此时屏幕上出现一个对话框,选择 Input 项。将光 标移到输入连线的末端(位于连线和连线名之间) ,单击鼠标左键,这时 则出现一个 I/O 输入标记,I/O 标记中有一个连线名。用此方法给连线名 A、B、C、D、CLK 加上 I/O 输入标记。 9.选择 I/O Marker 对话框中的 Output 项,给连线名 OUT 加上 I/O 输出标记。 5. 定义属性 属性描述元件、引脚和连线的相关特性。在可编程器件设计中,有两种类型的 27 属性:元件属性和连线属性。启动 Add SymboI Attribute(元件属性) 、Add Pin Attribute(引脚属性)或 Add Net Attribute(连线属性)命令,会弹出相应的属性 编辑对话框;单击需要定义属性的元件、元件引脚或连线,对话框内会出现一系列 可供选择的属性;选择合适的属性并进行编辑,即可定义属性。Lattice 公司发行 ispEXPERT 软件时定义了元件的缺省属性。I/O 引脚的编号是需要修改的属性之一。 锁定 I/O 引脚的编号时,首先启动 Add Symbol Attribute;然后单击元件 I/O PADS ,最后在属性编辑对话框中,修改“SynarioPin=”项为所需的编号。 下面给图 2.9 中的输入信号加上引脚号。 1.选择 EditAttributeSymbol Attribute,屏幕上出现元件属性编辑对话框。 图 2.10 元件属性编辑对话框 2. 将光标移到一个需定义引脚的 I/O 缓存上,单击鼠标左键,对话框内会出现 一系列可供选择的属性。 3. 选择 Synirio Pin 属性,并把文本框内的“*”改为希望的引脚号,例如“3” 。 然后点击“Go To”按钮,数字“3”出现在需要定义的 I/O 缓存内。照此 办法,定义图 2.9 中的所有输入引脚号。然后关闭元件属性编辑对话框。 图 2.11 完成的设计图 4. 至此,一个简单的但是完整的原理图设计已经完成,如图 2.11 所示。执行 FileSave,命令,保存设计,然后再执行 FileExit 命令,退出原理图编辑器。 2.3.6 自定义元件模块 一个逻辑系统,往往由若干个功能模块构成。由于 ispEXPERT 提供的元件库只 28 是一些最基本的逻辑模块,用它们来构成整个设计不仅过于复杂,而且功能上也显 得不够清楚。ispEXPERT 支持模块化层次结构设计。一个原理图文件可以由若干个 功能模块构成,每个功能模块又可以由若干个更低一层的功能模块构成。设计原理 图文件过程中,常常需要建立一些功能模块(自定义元件) 。 建立自定义元件在原理图编辑器内进行。启动 Add New Block Symbo1,会 出现一个新建元件对话框。填入元件的名称、输入输出与双向引脚的名称(注意大 小写) ,点击 Run 按钮,然后移动光标(新建元件附着光标移动) ,到达目标位置单 击鼠标左键,新建元件即被安放在原理图上。同时该元件被存入 Local 元件库。 新建自定义元件要求确定模块的输入输出引脚。设计者事先应有整体统筹安排。 下面通过一个例子说明如何自定义元件及如何与低层的设计接口。假定整个设 计是一个 8 位计数器,它由两个 4 位计数器构成,每个 4 位计数器由 4 个 D 触发器 构成。 1.进入原理图编辑程序。 2.选择 Add New Block Symbo1,出现一个新建元件对话框。 3.在 Block Name 项填入器件名“CNT” ,在 Input Pins 项填入“CLK,RST” , 在 Output Pins 项填入“Q0,Q1,Q2,Q3” 。引号不填入,输入引脚名之间用逗 号分开,输出引脚名之间也用逗号分开。点击 RUN 按钮,然后移动光标, 到达目标位置单击鼠标左键,将新建元件放在原理图上。继续移动光标, 在第一个 CNT 的下面放上第二个 CNT。单击鼠标左键,结束用户自定义器 件的放置。 4.在原理图上放 I/O PAD,连线,加连线名,放 I/O 标记,形成图 4.13。 5.执行 FileSave,命令,保存设计,然后再执行 FileExit 命令,退出原理图 编辑器。 图 2.12 新建元件对话框 6.退出原理图编辑器后的项目导向器如图 2.14。源文件窗口中的源文件名前 有一红色的?号,指示出该文件还未产生,不知它是何种类型的文件。 29 图 2.13 含有自定义元件的原理图 下面生成一个文件名为 CNT 的原理图。 1.双击源文件名 CNT,进入文件类型对话框,选择 Schematic(原理图)类型, 点击 OK 按钮,原理图编辑器被加载,且出现一个对话框。在文件名内填 入 CNT。点击保存按钮后,屏幕上出现原理图编辑器。 2选择 AddSymbol,然后选择 REGS 库中的 G_DC 元件,放四个带清除端的 D 触发器在原理图上。选择 GATES 库中的 G_INV,放 4 个非门在原理图上, (CTL+R 改变元件方向) ,进行连线,构成 1 个 4 位计数器。 30 图 2.14 退出原理图编辑器后的项目导航器 3. 在原理图上加上 Q0、Q1、Q2、Q3、CLK、RST 连线名,然后加上相应的输 入、输出标记,形成一个与图 2.13 中自定义元件 CNT 引脚对应的计数器图 2.15。 注意,输入、输出引脚名一定要与自定义元件一一对应。 图 2.15 底层的 4 位计数器 在原理图编辑器中使用 FileSheet Setup 命令能够改变图纸尺寸。如果不使用层 次设计,而采用多页设计,可以使用 FileSheet Setup 命令改变原理图模块的图纸张 数。 以上扼要介绍了原理图的最基本操作。原理图编辑功能很强,这仅算入门。所 有命令在执行时,通过按 F1 键,可得到对该命令的详细英文解释。 2.4 混合设计及层次导航 简单设计用一个 ABEL-HDL 模块,或者一张原理图就能描述。但复杂设计往往 要分成若干个模块(功能块)来描述。某些模块用 ABEL-HDL 语言描述合适,而另一些 模块用原理图描述更好,ispEXPERT 支持这种混合设计方法。顶层模块用原理图能 直观、清晰描述全局。一个设计到底用哪种方式,取决于设计者的爱好和习惯,以 及对各种设计方式的熟悉程度,很难比较优劣。 在 ABEL-HDL 语言中,高层模块通过 interface 语句规定与低层模块的接口,低 层模块用 interface 语句或直接用关键字 pin 说明的输入、输出引脚作为对高层模块 的接口。在原理图中,高层模块用自定义元件规定对低层模块的接口,低层模块用 I/O 标记标识的输入/输出引脚作为对高层模块的接口。无论何种接口形式,高层对 低层接口信号与低层对高层接口信号必须同名。 2.4.1 选择自定义元件的源文件形式 在原理图编辑器中建立了自定义元件后,保存当前原理图,退出原理图编辑窗 口,返回项目导航器主画面。源文件窗口中,在刚编辑过的原理图文件名下,新添 了一个文件,文件名是自定义元件名。它的图标为一个红色问号,表示是一个空文件。 双击该文件名,弹出 New Source 对话框,列出可供选择的文件形式。对于自定义元 31 件而言,只能选原理图文件(Schematic ),或者选 ABEL-HDL 文件(ABEL-HDL Module)。选定文件形式后,按 OK 按钮,则进入 ABEL-HDL 编辑器,或者进入原 理图编辑器。在编辑器中建立一个作为低层模块的新文件。此过程一直继续下去, 直到所有模块设计完成。 2.4.2 层次导航 ispEXPERT 对原理图文件具有层次导航功能,用于浏览整个层次设计。此功能 只用于浏览,不能用于编辑。层次导航操作如下: 单击项目导航器源文件窗口中某个原理图文件,只要该文件不是最低层原理图, 可以看到在过程窗口中有层次导航(Navigate Hierarchy)命令。双击此命令项,就会 弹出所选原理图。启动 VIEW Push/Pop 命令,使光标变成十字形状。 用十字光标单击任何一个自定义元件,就会弹出该模块的低层设计环境(文本编辑 器或原理图编辑器),此时即可浏览此模块。如果此模块仍为原理图,仍可单击自定义 元件,依次往下浏览。退出时逐层退出。 2.5 编译、模拟与器件适配 编译、模拟和器件适配等工作都是在过程窗口中完成的。不同类型的源文件,可 能有不同的处理流程。单击源文件窗口中某一个文件名,过程窗口中就会出现与其 对应的处理流程,每项操作左边有两个箭头组成的环标志。双击某一项操作名启动 执行此项操作。若进行此项操作之前必须先完成其它操作,项目导航器会自动去完成 它。操作结果用绿色的勾、黄色的惊叹号或红色的叉来表示通过与否。绿色的勾指 出成功;红色的叉表示失败;黄色的惊叹号表示基本成功,但有警告信息。若不成 功或有警告,会弹出一个错误报告文件。 2.5.1 文件编译 原理图文件编译操作包括编译(compile schematic)和逻辑优化(Reduce Schematic Logic)子操作。优化结果用逻辑等式形式表述,放在一报告文件中。双击 “Reduced Equations”,就可到看到该报告。 ABEL-HDL 编译操作包括逻辑编译(compile Logic)、逻辑优化(Reduce Logic)和 语法检查(Check Syntax)子操作。编译过程生成三个报告文件:编译列表 (Compiler Listting) ,编译后的逻辑等式(compi1ed Equations)、优化过的逻辑等式 (Reduced Equations)。逻辑等式文件用“与或”规范形式表达。为了减少盲目性, 建议先对低层文件进行编译,后对高层文件进行编译。 2.5.2 连接和器件适配 可编程逻辑器件设计的最后一步就是连接和器件适配。器件适配把设计放进指 定器件中。适配之前需将经过编译的各模块连接成一个单一文件。如果编译、优化 过程没有出现错误,则可进行连接和器件适配工作。在项目导航器源文件窗口内单 击器件名,过程窗口显示出应完成的操作,例如连接(Link Design)和器件适配(Fit 32 Design)。这些操作产生标准格式的 JEDEC 文件(扩展名为.JED)和若干报告文件。 双击处理过程窗口内的 Fit Design,启动器件适配。若设计没有问题,将会看到 在 Fit Design 和 JEDEC Fl1e 两个操作左边出现绿色的勾,表示器件适配成功并 产生了 JEDEC 文件。 一个设计占用器件资源一般不应超过 75%。这样容易适配成功,也便于未来更 改设计。器件引脚号最好不要事先锁定,在器件适配时由 ispEXPERT 自动分配为好, 以提高适配成功率。可能的情况下,由器件适配程序先对器件引脚进行预分配,再 修改设计,最后锁定引脚号,重新进行器件适配。 2.5.3 模拟 逻辑模拟是 ispEXPERT 软件的一个重要功能。设计者通过模拟了解设计结果, 避免设计错误。自由版 ispEXPERT 支持功能模拟和时序模拟。在模拟过程中, ispEXPERT 提供了单步运行、断点调试以及跟踪调试等新的功能。测试向量放在一 个 ABEL-HDL 模块文件中,或者构成独立的 ABEL-HDL 文件。如果设计是原理图 模块,则需写一个单独的测试向量文件。测试向量文件结构与 ABEL-HDL 源文件一 样,只是没有逻辑描述部。 下面以一个具体的例子说明模拟过程。本例子针对图 2.11 所示的原理图进行。 1.建立一个测试向量文件。 点击项目导航器中的 NEW 按钮,在文件类型对话框中,选择 ABEL Test Vectors,并点击 OK 按钮。在文件名对话框中输入 demo,作为测试向量文件名, 点击 OK 按钮。此时进入文本编辑器窗口。在文本窗口中输入下列内容: Module demo; c,x = .c.,.x.; CLK,A,B,C,D,OUT PIN; TEST_VECTORS (CLK,A,B,C,D-OUT) c,0,0,0,0 -x; c,0,0,0,1 -x; c,0,0,1,0 -x; c,0,0,1,1 -x; c,0,1,0,0 -x; c,0,1,0,1 -x; c,0,1,1,0 -x; c,0,1,1,1 -x; c,1,0,0,0 -x; c,1,0,0,1 -x; c,1,0,1,0 -x; c,1,0,1,1 -x; c,1,1,0,0 -x; c,1,1,0,1 -x; 33 c,1,1,1,0 -x; c,1,1,1,1 -x; END 在文本编辑窗口中,选择 FileSave,保存文件,选择 FileExit,退出文本编辑 窗口。此时源文件窗口中多了一个 demo.abv 文件,这就是测试向量文件。 2.编译测试向量文件 选择源文件窗口中的测试向量文件,在进程窗口中出现该向量文件的处理过程, 双击 Compile Test Vectors(编译测试向量)过程,则对测试向量文件进行编译。编 译结束后,如果正确,在过程的前面会有一绿色的勾,如果错误,则出现红色的叉。 3.启动功能模拟 双击进程窗口中的 Functional Simulation 过程,将出现模拟控制窗口,窗口形 式如图 2.16 所示。这个窗口中有三个重要的按钮:Debug,Run,Step。Debug 按钮 启动调试过程,Step 按钮控制单步调试,Run 按钮进行一步到位的调试。 图 2.16 模拟控制窗口 4.Debug(调试)模式 点击模拟控制窗口中的 Debug 按钮,该窗口进入调试模式,在模拟控制窗口下 面增加了个调试窗口,如图 2.17 所示。 图 2.17 调试窗口 在 Available Signals(可用信号)框内,选中准备监测的信号,点击 Monitor 按钮, 则该信号出现在 Signal States(信号状态) 框内。将所有准备监测的信号都放在信号 34 状态框内后,点击模拟控制窗口中的 Step(单步)按钮,可一步步观察到被监测信号 的状态。利用 Prest(预置)按钮和 Force(强制)按钮可以给信号置预置值或者强制 值,可选的值为 1、0、Z、X。 5.观察信号的波形 在模拟控制窗口中,选择 Windowswaveform Viewer,打开波形观察器窗口,这 是一个没有显示信号和显示波形的空白窗口。在波形观察器窗口中,选择 EditShow,将出现一个如图 2.18 所示的显示波形对话框。在 Nets(连线名)窗口内选中 欲观察信号名,然后单击显示波形对话框的 Show(显示)按钮,则该信号名出现在 波形观察器窗口的左部,它的波形出现在波形观察器窗口的右部。显示信号选择结束 后,关闭显示波形对话框,在在波形观察器窗口中,出现了所有被观察信号的信号名 和波形。 图 2.18 显示波形对话框 35 图 2.19 具有显示波形的波形观察器窗口 2.6 下载 当对设计文件进行了编译、连接、器件适配、模拟等操作以后,下一步的工作 就是将生成的 JEDEC 文件下载到器件中。ISP 器件的出现实现了先安装器件在电路 板上,然后对其编程的愿望。这样在不更改系统硬件的条件下,能够对系统进行修 改、升级。ISP 器件的在系统编程(下载)是通过 JTAG 接口实现的。JTAG 是 Joint Test Action Group 的简称。JTAG 接口标准原是为采用边界扫描法测试芯片 和电路板制定的标准。ISP 主要是使用 JTAG 接口中的 TDI(Test Data Input) 、 TDO(Test Data Output) 、TMS(Test Mode Select)、TCK(Test Clock)信号,采用了与 JTAG 类似的方法。对 ISP 器件来说,TDI、TCK、TMS 是输入信号,TDO 是输出 信号。由于在一块系统板上可能有多个 ISP 器件,为了使用一个下载插座对它们编 程,同在 JTAG 接口中一样,这些 ISP 器件在系统板上也连接成“链”的形式,见 图 2.20。 图 2.20 ISP 器件下载链 下 载 插 座 36 为了对 ISP 器件下载,在 PC 机上运行的下载程序借用 PC 机的打印机并行端口。 PC 机的打印机端口与一条下载电缆连接,下载电缆的另一端接下载插座,ISP 器件 通过 TDI、TDO、TMS、TCK 等信号与下载插座相连。下载程序通过打印机数据端 口向下载插座发送数据,通过打印机状态端口从下载插座接收数据。这样,在 PC 机上运行的下载程序就能将标准 JEDEC 文件中的数据下载到 ISP 器件中,从而实现 对 ISP 器件的在系统编程。 Lattice 下载插座的信号如下: 引脚 1SCLK引脚 2GND 引脚 3NC引脚 4GND 引脚 5MODE引脚 6GND 引脚 7ispEN引脚 8SDI 引脚 9SDO引脚 10Vcc 下载前,首先用下载电缆将 PC 机的打印机端口和实验台上的下载插座连接好, 将 ISP 器件插入相应 84 脚 PLCC 插座,打开实验台电源。下面以 ISP1032 器件下载 为例,说明下载过程。 1 在源文件窗口中,选中器件名称条目,这时在进程窗口中出现了该器件对应的 处理过程, 双击进程窗口的 ISP Daisy Chain Download 条目,则启动下载过程,打开菊花链 下载窗口。 图 2.21 菊花链下载窗口 2. 选择 ConfigurationsScan Board,执行扫描电路板命令,它的结果是菊花链中 37 各 ISP 器件的结构图。 2.单击 Browse(浏览)按扭,打开文件对话框,选择下载的 JEDEC 文件。 3.选择 CommandTurbo DownloadRun Turbo Download,将 JEDEC 文件下载 到 ISP 器件中。 38 第 3 章 计算机组成原理实验 3.1 运算器组成实验 一、实验目的 1熟悉双端口通用寄存器堆的读写操作。 2熟悉简单运算器的数据传送通路。 3验证运算器 74LS181 的算术逻辑功能。 4按给定数据,完成指定的算术、逻辑运算。 二、实验电路 ALU-BUS# DBUS7 DBUS0 Cn# C 三态门(244) 三态门(244) ALU(181)ALU(181) S3 S2 S1 S0 M A7A6A5A4 F7F6F5F4F3F2F1F0 B3B2B1B0 Cn+4CnCn Cn+4 LDDR2 T2T2 LDDR1 LDRi T3 SW-BUS# DR1(273)DR2(273) 双端口通用寄存器堆RF (ispLSI1016) RD1 RD0 RS1 RS0 WR1 WR0 数据开关(SW7-SW0) 数据显示灯 A3A2A1A0B7B6B5B4 图3.1 运算器实验电路 LDRi T3 A B 三 态 门 RS-BUS# 图 3.1 示出了本实验所用的运算器数据通路图。参与运算的数据首先通过实验台操 39 作板上的八个二进制数据开关 SW7-SW0 来设置,然后输入到双端口通用寄存器堆 RF 中。 RF(U30)由一个 ispLSI1016 实现,功能上相当于四个 8 位通用寄存器,用于保存参 与运算的数据,运算后的结果也要送到 RF 中保存。双端口寄存器堆模块的控制信号中, RS1、RS0 用于选择从 B 端口(右端口)读出的通用寄存器,RD1、RD0 用于选择从 A 端口(左端口)读出的通用寄存器。而 WR1、WR0 用于选择写入的通用寄存器。LDRi 是写入控制信号,当 LDRi1 时,数据总线 DBUS 上的数据在 T3 写入由 WR1、WR0 指定的通用寄存器。RF 的 A、B 端口分别与操作数暂存器 DR1、DR2 相连;另外,RF 的 B 端口通

温馨提示

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

评论

0/150

提交评论