第一章CPTH+实验系统简介
一、CPTH+实验系統组成……………………………………………………2
二、CPTH+实验系统使用………………………………………………………2
第二章 十六位机(FPGA)扩展实验板简介…………………………………2
一、FPGA实验板主要功能…………………………………………………2
二、FPGA实验板组成………………………………………………………2
三、FPGA实验板软件简介……………………………………………………4
四、FPGA实验板使用…………………………………………………………5
第三章 QuartusⅡ开发环境使用入门…………………………………………6
第四章 十六位机扩展实验………………………………………………………13
分部实验一、十六位ALU实验………………………………………………13
分部实验二、十六位寄存器实验……………………………………………14
分部实验三、十六位寄存器组实验…………………………………………14
分部实验四、十六位指令计数器PC實验……………………………………15
分部实验五、中断控制实验…………………………………………………17
实验六、 十六位模型机的总体實验………………………………………18
第一章CPTH+实验系统简介
一CPTH+实验系统组成:
CPTH+是我公司最新推出的八位机带十六位机接口的计算机组成原理和系统结构实验仪。CPTH+在原CPTH主板的基础上增加十六位机接口通过选配CPT16十六位机扩展实验板(也称FPGA实验板),完成十六位机计算机组成原理实验
CPTH+主板以八位机模式,用TTL74系列器件+CPLD构建模型机部件让学生以可视方式观察CPU内各部件工作过程和模型机的实现。CPT16_1C6实验板以十六位機模式用15万门EP1C6Q240C8N
FPGA芯片构建模型机所有部件,并配置64K×16位存储器在对八位机了解的基础上,让学生对十六位计算机组成原理有更深刻的理解实现质的飞跃,为FPGA设计CPU打下基础
二,CPTH+实验系统使用
CPTH+有两种使用方式:八位机和十六位机两种实验方式
CPTH+主板是八位机模式,只需把通信选择开关“KT”拨向“CPTH”一侧即可构成八位计算机组成原理和系统结构的实验系统。具体使用详见《CPTH超强型计算机组成原理和系统结構实验指导书》
把选配的CPT16十六位机扩展实验板,对应插入“CPTH+主板”上的座然后把通信选择开关“KT”拨向“CPT16”一侧,即可构成十六位计算机组成原理的实验系统具体使用详见下面各章节的说明。
第二章 十六位机(FPGA)扩展实验板简介
一、FPGA实验板主要功能
系列15万门EP1C6Q240C8N的FPGA芯片鼡该FPGA实验板,通过VHDL语言编程可设计16位机的部件和模型机,学生将设计好的电路下载到FPGA芯片上实现16位机的部件和模型机功能;也可完成其它设计性实验和课程设计实验。
二、FPGA实验板组成
(1)AT89S52单片机主要用于接收PC机命令,完成16位程序存储器读写管理模型机运行、暂停等功能。
(By.II)是EP1C6芯片的标配下载接口再配合FPGA实验板的PC机调试软件,可方便地进行各种实验
(4)IDT71V016是64K×16位存储器,是模型机的程序存储器能保存大容量程序。
(5)六位8段数码管用于显示模型机内部寄存器、总线的值,在设计时可将需要观察的内部寄存器、总线值送A再通过OUT指囹送到数码管显示。三只GAL16V8是六位数码管16进制译码器
(6)L7~L0是8个发光二极管,用于显示模型机内部状态例如:进位标志、零标志、中断申请标志等。
(7)K0(7…0)~K4(7…0)是40个开关用于输入外部信号,例如在做单步实验时,这些开关可用来输入地址总线值、数据总线值、控制信号等
三、FPGA实验板软件简介
双击“CPTH计算机组成原理”快捷图标,在CPTH主界面上按“打开FPGA扩展窗口”按钮,即可打FPGA扩展板界面此堺面给出了存储器窗口和功能按键,如下图
①存储器窗口给出了64K×16位存储器内容,用鼠标左键单击存储单元数据变兰色后,即可修改存储器中的数据
·[连续脉冲],为模型机提供连续的高频脉冲信号
·[单脉冲],为模型机提供单脉冲信号
·[暂停],当模型机连续运行时可暂停程序的运行。
·[复位]使模型机复位。
·[产生中断]为模型机提供中断信号源。
·[保存文件]是将存储器窗口中的数据写到磁盘仩。
·[调入文件]从磁盘上读入数据文件,在此窗口中显示
·[FPGA编程],是将QuartusⅡ开发环境中生成的*.rbf格式文件下载到EP1C6的芯片中,在下载过程中有丅载进度显示
·[打开编程文件],从磁盘上读入*.rbf格式文件
四、FPGA实验板使用
(1)用串口/USB通信线(出产配置为串口),连接CPTH+主板和PC机相应RS232接ロ把选配的CPT16十六位机扩展实验板,对应插入“CPTH+主板”上的座然后把通信选择开关“KT”拨向“CPT16”一侧,接通CPTH+实验仪电源
(2)在QuartusⅡ软件Φ,用VHDL语言设计模型机电路然后编译、引脚锁定,再编译生成*.sof,再转化为*.rbf格式如已有*.rbf,步骤(2)可省。
(3)双击“CPTH计算机组成原理”快捷圖标在CPTH主界面上,按“打开FPGA扩展窗口”按钮单击按键“连接CPT16”,连机后其余按键字体变黑色可用在CPTH主界面上点击打开文件图标,例洳选择“EX6.asm”点击编译下载,下载完毕后把源文件生成的机器码自动下载到16位存储器中;然后点击“打开编程文件”,选择cpt16.rbf文件,再点击“FPGA编程”把模型机电路的cpt16.rbf下载到EP1C6的芯片中。也可用《第三章 QuartusⅡ开发环境使用入门》中器件编程方法下载
(4)点击“连续脉冲”按键,程序连续运行点击“产生中断”按键,看FPGA实验板数码管显示应加“1”变化点击“暂停”按键,可使程序暂停运行
生产商之一,其 QuartusⅡ6.0 開发环境也是电子工程师最常用的软件之一在QuartusⅡ6.0 开发环境中可以完成设计输入(原理图、VHDL)、设计编译、设计校验、编程下载等EDA
设计的所有步骤。以QuartusⅡ6.0为例我们来了解在开发环境下EDA 设计的流程
点击“NEXT”出现如图对话框在…Name 框内填上项目名例如alu。
点击二次“NEXT”选择器件,点擊二次“NEXT”完成项目名创建
在空的文本窗口中输入VHDL 语言,文件名保存为alu.vhdl。
3、把文件添加到项目中
选择菜单[assignments]的[pin planner]功能例如把选中的信号名:A[0]拖拉到EP1C6引脚图相应引脚号上,以此类推进行锁定。锁完后重新编译
通过重新项目编译后生成的*.SOF文件用于下载。在我们例子中使用的是EP1C6为Cyclone系列下面我们对其进行编程:
a、先关闭实验板电源,将下载电缆一端插入LPT1(并行口打印机口),另一端插入CPT16位机(FPGA)实验板的JTAG(By.II)座打开实驗板电源;
II(LPT1)”,编程模式Mode选择“JTAG”添加要编程的文件*.SOF,然后点击“Start”开始编程到目前为止,我们已完成一个完整的设计
第四章 十六位机扩展实验
分部实验一、十六位ALU 实验
实验要求: 用CPT16 的扩展实验板上的开关做为输入、八段数码管做为输出,用VHDL
实验目的: 了解十六位模型机中算术、逻辑运算单元(ALU)的工作原理和实现方法学
习用VHDL 语言描述硬件逻辑学习使用EDA 开发环境。
在ALU.VHD程序中A 为累加器,W 为工作寄存器均为十六位寄存器,W
两组开关输入S0、S1、S2 为运算控制位,接在K4开关组的第0、1、2 个开关上根据S0、S1、S2 的不同,ALU 实现的功能参见下表D为運算结果输出显示在四位八段管LED0..LED3上,CIn
为进位输入由K4 开关组的第3 个开关输入,COut 为进位输出用发光二极管L0
2、充分理解ALU.VHD(源程序见随机光盘)。了解模型机中ALU 的实现原理
扩展板的界面上的“FPGA编程”按钮下载ALU.rbf。
4、打开CPTH的开发环境打开FPGA 扩展板的界面。
5、按“连接CPT16”键将实验板连接到计算机上。
位设置运算方式拨动K4 的第3 位,设置进位观察八段管LED3-LED0 的运算结果,观察发光二极管L0 是否有进位输出
分部实验二、┿六位寄存器实验
实验要求: 用CPT16 的扩展实验板上的开关做为输入、八段数码管做为输出,用VHDL语言编写程序下载到EP1C6
FPGA 中,实现十六位模型机嘚寄存器输入输出功能
实验目的: 了解十六位模型机中寄存器的工作原理和实现方法。学习用VHDL 语言描述硬
件逻辑学习使用EDA 开发环境。
茬REG.VHD程序中D 为输入数据,R 为寄存器均为十六位寄存器,D
2、充分理解REG.VHD(源程序见随机光盘)了解寄存器的实现原理。
扩展板的界面上的“FPGA编程”按钮下载REG.rbf
4、打开CPTH的开发环境,打开FPGA 扩展板的界面
5、按“连接CPT16”键将实验板连接到计算机。
位到“1”的位置输出“复位”信號,观察八段管LED3…LED0
(R 寄存器的输出显示)是否清零再将K4 的7 位回到
位,设置寄存器选通信号“EN”为有效状态(“0” 有效)按动FPGA界面上“單脉冲” 按键,产生一个时钟信号观察八段管LED3 …LED0
,看看是否将D 的值存入寄存器R 中并显示出来拨动开关组K1、 K0 改变D
的值,再将“EN”置于无效状态(“1” 位置)按“单脉冲” 产生时钟信号,观察八段管LED3 …LED0
分部实验三、十六位寄存器组实验
实验要求: 用CPT16 的扩展实验板上的开关莋为输入、八段数码管做为输出用VHDL语言编写程序,下载到EP1C6
FPGA 中实现十六位模型机的多个寄存器输入输出功能。
实验目的: 了解十六位模型机中寄存器组的工作原理和实现方法学习用VHDL 语言描述硬件逻辑。学习使用EDA 开发环境
在REGS.VHD程序中,D 为输入数据为十六位寄存器,D
为内蔀寄存器R 用做内部寄存器显示输出,用八段管LED3..LED0
为寄存器选择控制信号接在K4 开关组的第0、1 个开关上,RD
为寄存器读信号接K4的第2 个开关上,WR
为寄存器写信号接在K4 的第3 个开关上, RST 为复位信号接在开关组K4
的第7 个开关上,CLK
为时钟脉冲由FPGA界面上“单脉冲” 按键提供。
2、充分理解REGS.VHD(源程序见随机光盘)了解模型中寄存器组的实现原理。
扩展板的界面上的“FPGA编程”按钮下载REGS.rbf
4、打开CPTH的开发环境,打开FPGA 扩展板的界媔
5、按“连接CPT16”键将实验板连接到计算机。
位到“1” 的位置输出“复位”信号,观察八段管LED3…LED0(R
寄存器的输出显示)是否清零然后將K4的第2( RD 信号)、3(WR
信号)位置成1状态,使读写信号都处于无效状态
9、寄存器组写实验:将K4 的7
位,设置寄存器写信号“WR” 为有效状态(“0”有效)按动FPGA界面上“单脉冲” 按键,产生一个时钟信号将D
写入寄存器R0 中。拨动K0、K1 开关组改变D
位设成“01”, 选择寄存器R1 按“单脈冲”给出时钟信号,将D 存入寄存器R1中如此将不同的十六位数据分别存R0..R3 寄存器中。
10、寄存器组读实验:将K4 的第3 位(WR
信号)设成“1” 使其無效将K4
位(RD 信号)设成“0”,读出R0中的数据并输出到八段管LED3…LED0 上显示。拨动K4
的值并显示在八段管LED3…LED0 上如此,读出寄存器R2、R3
的值并觀察与写入的数据是否相同。
分部实验四、十六位指令计数器PC 实验
实验要求: 用CPT16 的扩展实验板上的开关做为输入、八段数码管做为输出鼡VHDL语言编写程序,下载到EP1C6 FPGA
中实现十六位模型机的指令计数器功能。
实验目的: 了解十六位模型机中指令计数器(PC)的工作原理和实现方法学习用VHDL语言描述硬件逻辑。学习使用EDA 开发环境
实验说明: 下为十六位模型机中PC 的VHDL 语言:
在PC.VHD程序中,D 为十六位输入数据用于表示跳轉条件满足时,跳转的目标地址D
为指令计数器(PC),用八段数码管LED3…LED0
个开关上用于模拟模型机中的进位标志和零标志信号,ELP 接K4 的第2 个開关上为程序跳转控制信号,为“1” 时不允许预置PC 为“0” 时,根据指令码的第3、2
个开关上表示程序指令的第2 位和第3 位,在本模型机實验中这两用于控制程序的跳转(见下表说明)。RST 为复位信号接在开关组K4 的第7 个开关上,CLK 为时钟脉冲由FPGA界面上“单脉冲” 按键提供。
上表中LDPC 为内部信号,用于控制PC 是否能被预置
上升沿打入PC,实现程序的JMP( 直接跳转)功能
的值在CLK 上升沿打入PC实现程序的JC(有进位跳轉)功能。
的值在CLK 上升沿打入PC实现程序的JZ(累加器为零跳转)功能
开发环境的使用可参见第三章)。
2、充分理解PC.VHD(源程序见随机光盘)了解模型机中指令计数器的实现原理。
项目进行综合/编译生成PC.SOF 文件,点击“programmer”选择“JTAG”模式编程,点击“start”即可下载也可用CPTH的开發环境中FPGA
扩展板的界面上的“FPGA编程”按钮下载PC.rbf。
4、打开CPTH的开发环境打开FPGA 扩展板的界面。
5、按“连接CPT16”键将实验板连接到计算机
位到“1” 的位置输出“复位”信号,使电路处于复位状态观察八段管LED3…LED0(PC
(PC1 信号)位置成“1” 状态,使跳转控制信号处于PC+1 状态再将K4
位回到时“0” 位,退出“复位”状态按动FPGA界面上“单脉冲” 按键,产生一个时钟信号观察八段管LED3… LED0
的显示,看看PC 是否加1 再给出单脉冲,观察PC 昰否再次加1
8、直接跳转实验:使拨动K0、 K1 输入D 的值,设置跳转的目标地址拨动K4
的第2位设成“0”, 使ELP 信号为低拨动K4
为高,将跳转控制设荿“直接跳转”方式按动FPGA界面上“单脉冲” 按键,产生一个时钟信号将D
写入PC 中,观察八段管LED3…LED0 看看PC 是否转到目标地址。
9、条件跳转實验1:拨动K4 的第4、5
置成“00” 将跳转控制设置成“判进位跳转”方式。将K4 的0
位设置成“1” 表示有进位,按动FPGA界面上“单脉冲” 按键产苼一个时钟信号,观察八段管LED3…LED0
看看PC 是否转到D 所指定的目标地址。再将K4 的0
拨成“0” 表示无进位,给出一个单脉冲观察LED3…LED0, 看看PC
置成“01” 将跳转控制设置成“判零跳转”方式。将K4 的1
位设置成“1” 表示累加器为零,按动FPGA界面上“单脉冲” 按键产生一个时钟信号,观察八段管LED3…LED0 看看PC
是否转到D 所指定的目标地址。再将K4 的1
拨成“0” 表示累加器不为零,给出一个单脉冲观察LED3…LED0, 看看PC是否加1
分部实验伍、中断控制实验
实验要求: 用CPT16 的扩展实验板上的开关做为输入、八段数码管做为输出,用VHDL语言编写程序下载到EP1K1C6 FPGA
中,实现十六位模型机Φ断控制功能
实验目的: 了解十六位模型机中中断控制的工作原理和实现方法。学习用VHDL 语言描述硬件逻辑学习使用EDA 开发环境。
位表礻程序执行过程中的取指令操作,中断请求信号只有在此信号有效时(取指令时)才会被响应IENT 接K4 的第1 位,用于在中断返回时清除中断請求寄存器和中断响应和中断处理寄存器。ICEN
为输出信号接发光二极管L2 此信号用于控制读中断指令。ACK
接发光二极管L1 显示中断响应和中断處理信号。REQ 接发光二极管L0显示中断请求信号。RST
为复位信号接在开关组K4 的第7 个开关上,I_REQ
为中断申请输入信号由FPGA界面上“产生中断”按鍵输出到FPGA 扩展板上,CLK
为时钟脉冲由FPGA界面上“单脉冲” 按键提供。
的EDA 开发环境的使用可参见第三章)
2、充分理解INT.VHD(源程序见随机光盘),了解寄存器的实现原理
扩展板的界面上的“FPGA编程”按钮下载INT.rbf。
4、打开CPTH的开发环境打开FPGA 扩展板的界面。
5、按“连接CPT16”键将实验板连接箌计算机
的第7 位到“1” 的位置输出“复位”信号,将K4
的第0、1 位拨到“1”的位置使IREN 和EINT
都处于无效状态,将内部的中断请求寄存器中断響应和中断处理寄存器都清零,使其能响应中断此时只有L2发光二极管亮。
7、中断申请:将K4 的7
位回到时“0” 位使电路正常工作。按下FPGA界媔上“产生中断”按键申请中断FPGA
扩展板上的L0 发光二极管变亮,表示有中断申请
8、中断响应和中断处理:将K4 的第0 有效,表示取指令操作扩展板上的L2 发光二极管变熄灭,表示已经响应中断
9、中断处理:按动FPGA界面上“单脉冲” 按键,产生一个时钟信号扩展板上L2、L1、L0 发光②极管都亮,表示取指操作取出中断处理指令来执行
10、中断退出:将K4 的第0
位拨成“0” ,将EINT 置成有效发光二极管L2
变亮、L1、L0 变暗,中断申請寄存器和中断响应和中断处理寄存器清零表示可以接受下一次中断申请。
实验六 十六位模型机的总体实验
的扩展实验板上的开关做为輸入、八段数码管做为输出以上面介绍的分部实验为基础,用VHDL 语言编写程序下载到EP1C6
FPGA 芯片中,实现一个十六位模型机模型机要有完整嘚指令系统,中断处理系统、输入输出系统
实验目的: 了解十六位模型机整机的工作原理和实现方法。用VHDL 语言描述硬件逻辑让FPGA 能实现复雜的运算、处理功能
实验说明:“CPT16.VHD ”为一个完整的十六位模型机的VHDL 程序,另见随机光盘
在总体实验中,rst 为复位信号接在开关组K4 的第7
個开关上。i_req 为中断申请输入信号由FPGA界面上“产生中断”按键输出到FPGA
扩展板上。clk 为时钟脉冲由FPGA界面上“单脉冲” 按键提供。keyin
输入端口接在扩展板的K1、K0
开关组上,用于输入外部信号portout 为输出端口,接到LED3…LED0
四个八段数码管上用于显示输出信号。mem_d 为十六位存储器的数据线mem_a 為十六位存储器的地址线,mem_rd为存储器读控制信号mem_wr 为存储器写控制信号,mem_cs 为存储器片选信号mem_bh 为
存储器高8 位数据选择信号,mem_bl 为存储器低8 位數据选择信号
项目(Quartus 的EDA 开发环境的使用可参见第三章)。
2、充分理解CPT16.VHD(源程序见随机光盘) 了解十六们模型机的实现原理。
项目进行綜合/编译生成CPT16.sof文件,点击“programmer”选择“JTAG”模式编程,点击“start”即可下载也可用CPTH的开发环境中FPGA
扩展板的界面上的“FPGA编程”按钮下载CPT16.rbf。
4、咑开CPTH的开发环境再打开FPGA
扩展板的界面,按“连接CPT16”键将实验板连接到计算机在开发环境的主界面中,打开“\DJCPTH\ASM\” 目录下“EX6.ASM” 程序编译丅载“EX6.
ASM”,下载完毕后把源文件生成的机器码自动下载到16位存储器中。
5、在FPGA 扩展板的界面点击“连续脉冲”按键,程序连续运行点擊“产生中断”按键,产生中断请示信号让模型机中断在中断处理程序中,我们将累加器A
加1中断返回后输出累加器中的内容。重复点擊“产生中断” 按键产生多个中断请示信号,让模型机多次中断累加器多次加1送数码管显示,观察LED3…LED0输出是否满足设计要求。点击“暂停”按键可使程序暂停运行,点击“复位”按键可使模型机复位。