高等学校计算机专业规划教材:计算机组成与设计实验教程(第3版) 7302464235,9787302464235

配送至
$ $ USD 美元

编辑推荐

1. 采用TEC-8计算机硬件综合实验系统,介绍计算机组成原理以及数字逻辑实验。
2. 通过自己动手,进一步融会贯通理论教学的内容,掌握计算机各功能模块的工作原理、相互联系,完整地建立计算机的整机概念,同时,培养独立分析问题、解决问题的能力。
3. 既能完成元件级、部件级的实验,又能完成系统实验,使实验者透彻地剖析计算机的基本组成与工作原理,了解计算机的内部运行机理,掌握计算机系统设计的基本技术,培养独立分析、解决问题特别是硬件设计与调试方面问题的能力。
4. 通过与计算机相连,实验者在完成相关实验的同时,能够深入地学习EDA技术,提高数字系统设计的能力。

目录

第1章TEC—8计算机硬件综合实验系统
1.1TEC—8实验系统的用途
1.2TEC—8实验系统技术特点
1.3TEC—8实验系统组成
1.4逻辑测试笔
1.5TEC—8实验系统结构和操作
1.5.1模型计算机时序信号
1.5.2模型计算机组成
1.6模型计算机指令系统
1.7指示灯、按钮、开关
1.7.1指示灯
1.7.2按钮
1.7.3开关
1.8数字逻辑和数字系统实验部分
1.8.1基本实验通用区
1.8.2大型综合设计实验装置
1.9E2PROM中微代码的修改
第2章计算机组成原理基本实验
2.1运算器组成实验
2.2双端口存储器实验
2.3数据通路实验
2.4微程序控制器实验
2.5CPU组成与机器指令的执行
2.6中断原理实验
第3章计算机组成原理课程综合设计
3.1模型机硬连线控制器设计
3.2模型机流水微程序控制器设计
3.3模型机流水硬连线控制器设计
3.4含有阵列乘法器的ALU设计
第4章数字逻辑与数字系统基本实验
4.1基本逻辑门逻辑实验
4.2TTL、HC和HCT器件的电压传输特性实验
4.3三态门实验
4.4数据选择器和译码器实验
4.5全加器构成及测试实验
4.6组合逻辑中的冒险现象实验
4.7触发器实验
4.8简单时序电路实验
4.9计数器和数码管实验
4.10四相时钟分配器实验
第5章数字逻辑与数字系统综合设计实验
5.1简易电子琴实验
5.2简易频率计实验
5.3简易交通灯实验
5.4VGA接口设计
第e章VHDL简介
6.1VHDL程序的基本结构
6.1.1实体说明
6.1.2结构体说明
6.1.3程序包
6.1.4库
6.1.5配置
6.2VHDL的客体及词法单元
6.2.1标识符
6.2.2词法单元
6.2.3VHDL的数据类型
6.2.4VHDL的对象
6.2.5VHDL运算符
6.3VHDL的基本描述语句
6.3.1进程语句
6.3.2并行语句
6.3.3顺序语句
6.4属性的描述与定义
6.4.1数值类属性
6.4.2函数类属性
6.4.3带属性函数的信号
6.5决断函数与信号延迟
6.5.1决断信号与决断函数
6.5.2信号延迟—
第7章Verilog HDL基本语法
7.1简单的Verilog HDL模块
7.1.1简单的Verilog HDL程序介绍
7.1.2模块的结构
7.1.3模块的端口定义
7.1.4模块内容
7.2数据类型及其常量、变量
7.2.1常量
7.2.2变量
7.3运算符及表达式
7.3.1基本的算术运算符
7.3.2位运算符
7.3.3逻辑运算符
7.3.4关系运算符
7.3.5等式运算符
7.36移位运算符
7.3.7位拼接运算符
7.3.8缩减运算符
7.3.9优先级别
7.3.10关键词
7.4赋值语句和块语句
7.4.1赋值语句
7.4.2块语句
7.5条件语句
7.51if—else语句
7.5.2case语句
7.5.3由于使用条件语句不当产生意外的锁存器
7.6循环语句
7.6.1forever语句
7.6.2repeat语句
7.6.3while语句
7.6.4for语句
7.7结构说明语句
7.7.1initial语句
7.7.2always语句
7.7.3task和function说明语句
7.8系统函数和任务
7.8.1$display和$write任务
7.8.2系统任务$monitor
7.8.3时间度量系统函数$time
7.8.4系统任务$finish
7.8.5系统任务$stop
7.8.6系统任务$readmemb和$readmemh
7.8.7系统任务$random
7.9编译预处理
7.9.1宏定义'define
7.9.2文件包含处理'includc
7.9.3时间尺度'timescale
7.9.4条件编译命令'ifdef、'else、'endif
7.10小结
第8章Quartus Ⅱ的使用方法
8.1Quartus Ⅱ介绍
8.2Quartus Ⅱ安装
8.2.1Quartus Ⅱ安装准备
8.2.2Quartus Ⅱ软件安装
8.3Quartus Ⅱ设计示例
附景A部分74系列芯片资料及实验箱器件布局图

文摘

〖1〗第5章第5章数字逻辑与数字系统综合设计实验5.1简易电子琴实验
本实验是个大型实验,可作为课程设计使用,也可作为一个演示实验。
一、 实验目的
(1) 掌握简易电子音响的基本原理。
(2) 通过简易电子的设计掌握数字逻辑系统的设计方法。
(3) 掌握EDA软件Quartus Ⅱ的基本使用方法。
(4) 掌握用硬件描述语言设计复杂数字电路的方法。
二、 实验原理
1. 简易电子音响
电子音响是当今一个很时髦的物品,操作简单,声音动听。大家都知道一个基本的物理原理: 振动发声。无论是何种声音,都是通过振动产生的。例如,刮风时由于空气的振动产生了风声;用木棍敲击铜钟时,铜钟振动产生钟声。在TEC8实验台上,通过喇叭的纸盆振动发声,只要控制纸盆的振动频率,就能控制声音的音调;只要控制纸盆振动的长短,就能控制声音的节拍;只要控制振动的幅度,就能控制声音的强度。本实验只控制声音的音调和节拍。
2. 喇叭及其驱动电路
TEC8实验台上的喇叭及其驱动电路如图5.1所示。
图5.1喇叭及其驱动电路
图5.1中,当短路子DZ1断开时,喇叭不受控制,因此不发声。喇叭的阻抗为8Ω,R30是防止喇叭烧毁的限流电阻。R29是晶体三极管Q2的基极电阻,当控制信号SPEAKER为高电平时,Q2饱和,电流流过喇叭;当控制信号SPEAKER为低电平时,Q2截止,没有电流流过喇叭。控制了电流流过喇叭的频率,就控制了喇叭纸盆振动的频率。本实验中,我们使用方波信号SPEAKER控制喇叭纸盆的振动。方波信号虽然不是正弦波,但它的基波是正弦波,而且频率同方波频率一致。基波在控制喇叭振动中起主要作用。喇叭的纸盆振动也不可能突变,因此用方波信号控制喇叭纸盆的振动也能产生出清晰的声音。
〖1〗计算机组成与设计实验教程(第3版)第5章数字逻辑与数字系统综合设计实验[3]〖3〗3. 音调的频率
每个音调对应一个固定的频率,本实验中用到的C调的部分音符和对应频率见表5.1。表5.1C调的部分音符和对应频率音调i7654321频率(Hz)262294330349392440494523开关S7S8S9S10S11S12S13S14三、 实验设备
(1) 个人计算机1台
(2) TEC8实验系统1台
(3) 双踪示波器1台
(4) 万用表1只
四、 实验要求
(1) 利用TEC8实验系统上的时钟信号MF,对其进行分频,产生出表5.1中的8个音频信号。
(2) 使用TEC8实验系统上的8个开关S14~S7代表8个琴键。其中S7代表i。当S7~S14中的某个开关拨到向上位置时,发出对应的音调,拨到向下位置时,停止发声。任何时候,只允许S7~S14中的一个开关处于向上位置。
(3) 在个人计算机上Quartus Ⅱ环境中用硬件描述语言设计出程序,经过编译,然后下载到EPM7128S CPLD器件中,构成一个电子琴。
(4) 听喇叭发出的声音,如果不符合要求,可以重新修改程序、编译后下载,直到正确为止。
五、 实验提示
1. EPM7128S CPLD芯片引脚信号
喇叭控制信号SPEAKER由TEC8实验台的EPM7128S CPLD器件产生。本实验中,使用的信号对应EPM7128S CPLD的引脚如表5.2所示。
表5.2所示信号中的MF、S7~S14等信号,和EPM7128S CPLD的引脚并没有直接与时钟、开关连接,它们是通过一条扁平电缆连接的,因此做实验时,需将扁平电缆的34芯端插到插座J6中,将6芯端插到插座J5中,将16芯端插到插座J8中。注意: 扁平电缆进行插接或者拔出必须在关电源后进行。另外,做实验时,应将短路子DZ1短接,开关S15置为1,以使喇叭受到控制;实验完成后,应将短路子DZ1断开。表5.2简易电子琴实验中的信号与EPM7128S CPLD引脚对应关系信号名引脚号信号方向信 号 意 义MF55in由实验台上的石英晶振产生的频率为1MHz的时钟CLR#1in按一次CLR按钮后产生的复位信号,低电平有效SPEAKER52out喇叭的控制信号S1481in开关S1380in开关S1279in开关S1177in开关S1076in开关S975in开关S874in开关S773in开关2. 音调分频程序示例
音调1的频率是262Hz,音调i的频率是523Hz,如果直接用1MHz的主时钟信号分频,则产生262Hz的信号需要对1MHz信号进行3816(十六进制0EE8)分频,产生523Hz的信号需要对1MHz的信号进行1912(十六进制778)分频。这样产生262Hz信号的分频器需要12个宏单元,产生523Hz信号的分频器需要11个宏单元,占用资源太多。为了节省资源,首先对1MHz信号进行10分频得到100kHz信号,作为分频的基准,其他音调的信号由100kHz信号通过分频产生。
驱动喇叭发声的信号SPEAKER应当是占空比为50%的方波。
对100kHz信号进行分频产生261Hz的设计程序如下: p1: process(clr,f100k,f1_t,f1)
begin
if clr='0' then
f1_t<=x"00";
f1<='0';
elsif f100k'event and f100k='1' then
if f1_t=x"be" then--十六进制be相当于190,因此是进行191分频
f1_t<=x"00";
f1<=not f1;--2分频
else
f1_t<=f1_t+'1';
f1<=f1;
end if;
end if;
end process;上面的程序中首先对100kHz信号进行了191分频得到信号f1_t,然后对f1_t进行2分频得到信号f1。f1实际频率为261.7Hz。
六、 注意事项
实验完成后,必须要将硬连线控制器的相关内容重新装入EPM7128S中,以备以后做其他实验使用。
5.2简易频率计实验〖*2〗一、 实验目的(1) 掌握频率计的基本原理。
(2) 通过简易频率计的设计掌握数字逻辑系统的设计方法。
(3) 掌握EDA软件Quartus Ⅱ的基本使用方法。
(4) 掌握用硬件描述语言设计复杂数字电路的方法。
二、 实验原理
频率计是一种常用的仪器,用于测量一个信号的频率或者周期。与示波器相比,它测量频率更加准确、直观。
一个频率计总体上分为两部分: 第一部分以被测信号作为计数时钟进行计数,第二部分将计数结果显示出来。频率的显示方法有两种,一种是用数码管显示,一种是用液晶显示屏显示。本实验采用的是数码管显示方法,用6个数码管显示,最多显示6位十进制数。LG1显示个位数,LG2显示十位数,LG3显示百位数,LG4显示千位数,LG5显示万位数,LG6显示十万位数。6个数码管中,对LG1采用使用8位数据直接驱动各发光二极管的方法,对LG6~LG2采用8421编码的方式驱动。具体驱动方式,参看4.9节计数器和数码管实验。
频率计中,被测信号作为计数时钟进行计数时需要一个时间闸门,只有在这个时间闸门允许的时间段内才能进行计数。例如,时间闸门可以是0.001s、0.01s、0.1s、1s、10s等。如果时间闸门选用1s,那么对被测信号计数得到的数就是该信号的实际频率;如果时间闸门选用0.001s,那么以被测信号作为计数时钟进行计数得到的计数器的值是被测信号实际频率的千分之一;如果时间闸门选用10s,那么计数器的值是被测信号实际频率的10倍。对于选用10s的时间闸门而言,在显示频率的时候,要将小数点放在最低位之前,这样可以得到0.1Hz的分辨率。对于选用0.001s的时间闸门,显示的是kHz而不是Hz,用米字形数码管显示“kHz”也不难。不过TEC8实验台上的数码管不能显示“k”字符。在本实验中,只选用时间闸门为1s,只显示频率的数字,不显示单位。
时间闸门要求很高的精度,精度至少要在10-5以上。因此产生时间闸门信号时一定用到高精度石英晶体振荡器。如果石英晶体振荡器的频率是1MHz,对其进行1000分频,能得到0.001s的时间闸门,对其进行1 000 000分频,得到1s的时间闸门。
由于人眼不能分辨变化过快的显示,因此需要在计数器停止计数后需要一段较长的时间显示频率。例如可以1s时间计数,1s时间显示计数值。还有的做法是计数过程中随时显示,计数结束后用1s时间显示计数结果。需要注意的是,在时间闸门中计数前,首先要使计数器复位为0,以保证计数值准确。这个计数器复位工作通常在按下复位按钮后进行一次,保证第一次计数准确;在显示用的每个时间段的最后通过内部产生的复位信号进行1次复位计数器工作,为下次计数做好准备。
影响频率计计数能力的主要是计数器的速度。如果一个计数器的计数速度不高,就无法对高频信号计数,测出的频率是不真实的。本实验中不考虑这个问题。
在测量一个信号的周期时,通常的做法是将信号的周期作为时间闸门,用一个频率精确的信号作为计数时钟脉冲,计算在时间闸门内通过的计数时钟脉冲个数。例如,采用1MHz的计数时钟脉冲时,如果在一个信号周期内有678个计数时钟脉冲通过,则该信号的周期就是678μs。
三、 实验设备
(1) 个人计算机1台
(2) TEC8实验系统 1台
(3) 双踪示波器1台
(4) 万用表1只
四、 实验要求
(1) 使用频率为1MHz的主时钟产生一个时间为1s的时间闸门,用于对被测信号进行计数,计数时间为1s,静态显示时间为1s。计数过程中对计数器的值进行显示。
(2) 对TEC8试验台上的下列频率的信号测试其频率: MF、100kHz、10kHz、1kHz、100Hz、10Hz。
(3) 用模式开关SWB、SWA选择被测信号,选择标准如表5.3所示。表5.3频率计被测信号选择SWBSWA被测信号说明00MF既作为主时钟,又作为被测信号01CP1短路子DZ3选中100kHz信号,短路子DZ4短接选中10kHz信号,DZ3和DZ4不允许同时短接10CP2短路子DZ5选中1kHz信号,短路子DZ6短接选中100Hz信号,DZ5和DZ6不允许同时短接11CP3短路子DZ7选中10Hz信号,DZ7和DZ8不允许同时短接(4) 频率计采用自顶向下或者自底向上的层次方法设计。
(5) 在个人计算机上Quartus Ⅱ用硬件描述语言设计出程序,经过编译,然后下载到EPM7128S器件中,构成一个频率计。
(6) 观察实验结果。如果不符合要求,重新修改程序、编译后下载,直到正确为止。
五、 实验提示
1. CPLD引脚信号
本实验中使用的信号对应EPM7128 SCPLD的引脚如表5.4所示。表5.4简易频率计实验中的信号与EPM7128S CPLD引脚对应关系信号名引脚号信号方向信 号 意 义MF55in主时钟及被测信号CP156in被测信号,频率为100kHz或者为10kHzCP257in被测信号,频率为1kHz或者100HzCP358in被测信号,频率为10HzCLR#1in复位信号,低电平有效SWA4in选择被测信号SWB5in选择被测信号LG1D044out数码管LG1的驱动信号LG1D145out数码管LG1的驱动信号LG1D246out数码管LG1的驱动信号LG1D348out数码管LG1的驱动信号LG1D449out数码管LG1的驱动信号LG1D550out数码管LG1的驱动信号LG1D651out数码管LG1的驱动信号LG1D752out数码管LG1的驱动信号LG2A37out数码管LG2的驱动信号LG2B39out数码管LG2的驱动信号LG2C40out数码管LG2的驱动信号LG2D41out数码管LG2的驱动信号LG3A35out数码管LG3的驱动信号LG3B36out数码管LG3的驱动信号LG3C17out数码管LG3的驱动信号LG3D18out数码管LG3的驱动信号LG4A30out数码管LG4的驱动信号LG4B31out数码管LG4的驱动信号LG4C33out数码管LG4的驱动信号LG4D34out数码管LG4的驱动信号LG5A25out数码管LG5的驱动信号LG5B27out数码管LG5的驱动信号LG5C28out数码管LG5的驱动信号LG5D29out数码管LG5的驱动信号LG6A20out数码管LG6的驱动信号LG6B21out数码管LG6的驱动信号LG6C22out数码管LG6的驱动信号LG6D24out数码管LG6的驱动信号对于上述信号中的MF、CP1、CP2、CP3、LG1D7~LG1D0需要用扁平电缆将EPM7128S的引脚和TEC8实验台上的对应信号进行连接。将扁平电缆的34芯端插到插座J6上,将扁平电缆的12芯端插到插座J1上,将扁平电缆的6芯端插到插座J5上。注意: 扁平电缆进行插接或者拔出必须在关电源后进行。另外,做实验时,应将短路子DZ2短接,以使数码管正极接到+5V上;实验结束后,将短路子DZ2断开。
2. 异步十进制计数器
对被测信号的频率进行计数的计数器必须是十进制的计数器而不能是十六进制的计数器。一个典型的异步十进制计数器的代码如下: library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;entity counter10A is port
(clr: in std_logic;
clk: in std_logic;
enable: in std_logic;
c_out: out std_logic;
cnt: buffer std_logic_vector(3 downto 0));
end counter10A;architecture behav of counter10A is
begin
process(clr,clk,cnt,enable)
begin
if clr='0' then
cnt<="0000";
c_out<='0';
elsif clk'event and clk='1' then
if enable='1' then
if cnt="1001" then
cnt<="0000";
c_out<='1';
else
cnt<=cnt+'1';
c_out<='0';
end if;
end if;
end if;
end process;
end behav;在上面的程序中,当复位信号clr为0时,十进制计数器cnt复位为“0000”,进位信号c_out复位为0。enable信号是时间闸门,clk是被测信号。在enable信号为1时,允许在时钟信号clk上升沿计数。当计数到“1001”(十进制9)时,下一个时钟脉冲clk的上升沿重新回到“0000”(十进制0),重新开始计数。信号c_out只有在cnt10的值为“0000”的时间段内为1。在异步计数器中,低位计数器产生的c_out作为高位计数器的时钟信号。
3. 十进制计数器数码管的驱动
十进制计数器的输出除了个位之外,其他十进制位的4位二进制输出直接与数码管的驱动电路连接。十进制计数器的个位由于相应的数码管是按每个发光二极管驱动,因此必须进行转换。转换使用case语句,例如: library ieee;
use ieee.std_logic_1164.all;entity display is port
(counter1: in std_logic_vector(3 downto 0);
a,b,c,d,e,f,g,h: out std_logic );
end display;architecture behave of display is
signal s_out: std_logic_vector(7 downto 0);
begin
a<=s_out(0);
b<=s_out(1);
c<=s_out(2);
d<=s_out(3);
e<=s_out(4);
f<=s_out(5);
g<=s_out(6);
h --显示数字0
s_out--显示数字1
s_out--显示数字2
s_out--显示数字3
s_out--显示数字4
s_out--显示数字5
s_out--显示数字6
s_out--显示数字7
s_out--显示数字8
s_out--显示数字9
s_out
s_out<="00000000";
end case;
end process;
end behave;六、 注意事项
实验完成后,必须要将硬连线控制器的相关内容重新装入EPM7128S中,以备以后做其他实验使用。
5.3简易交通灯实验〖*2〗一、 实验目的(1) 学习状态机设计。
(2) 掌握数字逻辑系统的设计方法。
(3) 掌握EDA软件Quartus Ⅱ的基本使用方法。
(4) 掌握用硬件描述语言设计复杂数字电路的方法。
二、 实验原理
交通灯控制是一种常见的控制,几乎在每个十字路口上都可以看到交通灯。本实验通过南北和东西两个方向上的12个指示灯(4个黄灯、4个红灯、4个绿灯)模拟路口的交通灯控制情况。TEC8实验台上的交通灯电路如图5.2所示。
图5.2交通灯实验电路图
12个发光二极管代表12个交通灯。2个7引脚的排电阻向12个发光二极管提供电流。排电阻的引脚1为公共端,它和排电阻其他引脚之间的电阻值为1kΩ。当短路子DZ9断开时,两个排电阻的引脚1悬空;当短路子DZ3短接时,两个排电阻的引脚1接+5V,通过排电阻给12个发光二极管供电。控制信号TL0~TL11分别控制各发光二极管的负极。由于2个7404器件对控制信号TL0~TL11反相后接到发光二极管的负极,因此当TL0~TL11中的某一个信号为1时,对应的发光二极管有电流流过而被点亮。只要对信号TL0~TL11进行合适的控制,就能使12个发光二极管按要求亮、灭。
三、 实验设备
(1) 个人计算机1台
(2) TEC8实验系统1台
(3) 双踪示波器1台
(4) 万用表1只
四、 实验任务
模拟十字路口交通灯的运行情况,完成下列功能。
(1) 按下复位按钮CLR后,进入(2)。
(2) 南、北方向的2个绿灯亮,允许车辆通行;东、西方向的2个红灯亮,禁止车辆通行。时间10s。
(3) 南、北的2个黄灯闪烁,已经过了停车线的车辆继续通行,没有过停车线的车辆停止通行;东、西方向的2个红灯亮,禁止车辆通行。时间2s。
(4) 南、北方向2个红灯亮,禁止车辆通行;东、西方向2个绿灯亮,允许车辆通行。时间10s。
(5) 南、北方向2个红灯亮,禁止车辆通行;东、西2个黄灯闪烁,已经过了停车线的车辆继续通行,没有过停车线的车辆停止通行。时间2s。
(6) 返回(2),继续运行。
(7) 如果在(2)状态下,按一次紧急按钮QD,立即结束(2)状态,进入(3)状态,以使东、西方向车辆尽快通行。如果在(4)状态下,按一次紧急按钮QD,立即结束(4)状态,进入(5)状态,以使南、北方向车辆尽快通行。
五、 实验提示
1. CPLD器件引脚信号
本实验中使用的信号对应的CPLD引脚如表5.5所示。表5.5交通灯实验中的信号与EPM7128S CPLD引脚对应关系信号名引脚号信号方向信 号 意 义MF55in由石英晶振产生的频率1MHz的时钟CLR#1in复位信号,低电平有效
ISBN7302464235,9787302464235
出版社清华大学出版社
作者王炜
尺寸16