简单微处理器的设计

简单微处理器的设计
简单微处理器的设计

简单微处理器的设计 Revised as of 23 November 2020

简单微处理器的设计摘要:本课程设计采用EDA技术设计简单微处理器。系统设计采用自顶向下的设计方法。它由数的输入,数的比较,数的交换和结果输出四部分组成。系统实现采用硬件描述语言VHDL把系统电路按模块化方式进行设计,然后进行编程、时序仿真并分析。系统结构简单,使用方便,功能齐全,精度高,具有一定的应用价值。

关键词:处理器;输入;比较;交换

目录

1 引言

随着社会的发展,科学技术也在不断的进步。特别是计算机产业,可以说是日新月异,而处理器,作为计算机中的一个重要部分,其性能从很大程度上决定了计算机的性能。本设计介绍的简单微处理器,要求具有以下验证程序所要求的功能:输入包含10个整数(无符号数)的数组M,按从小到大的顺序输出这10个数。

课题设计的背景、目的

微处理器技术的发展是与微电子技术即大规模集成电路技术的发展分不开的。微电子技术以每18个月集成度提高一倍的速度迅速发展。20世纪80年代初,主要是16位微处理器8086/8088。1985年推出了80386微处理器,完成了16位体系结构向32位体系结构的转变。1989年80486出现了。80486的设计目标是提高指令执行速度和支持多处理器系统。80486在芯片内部增加一个8KB的高速缓冲存储器(cache),还增加了相当于80387的浮点部件(FPU),在基本指令的实现上,采用硬布线逻辑而不是微程序技术。1993年3月,Intel公司推出了第一代“奔腾”微处理器(Pentium),微处理器技术发展进入了一个新的阶段。到目前为止,“奔腾”已有四代产品。“奔腾”的设计思想是把如何提高微处理器内部指令执行的并行性作为主导。指令执行的并行性越好,微处理器的性能就越高。

本次设计的目的就是了解并掌握VHDL硬件描述语言的设计方法和思想,通过学习的VHDL语言结合电子电路的设计知识理论联系实际,掌握所学的课程知识,学习VHDL基本单元电路的综合设计应用。通过对实用电子称的设计,巩固和综合运用所学课程,理论联系实际,提高IC设计能力,提高分析、解决计算机技术实际问题的独立工作能力。通过课程设计深入理解VHDL语言的精髓,达到课程设计的目标。

课程设计的内容

本设计主要介绍的设计一台简单微处理器,要求具有以下验证程序所要求的功能:输入包含10个整数(无符号数)的数组M,按从小到大的顺序输出这10个数。

( 1 )程序开始及输入10个数据。

( 2 )数的比较。

( 3 )交换两个数。

( 4 )结果输出(从小到大)。

2 EDA、VHDL简介

EDA简介

EDA是Electronic Design Automation(电子设计自动化)的缩写,EDA技术是20世纪90年代初以来迅速发展起来的现代电子工程领域的一门新技术。它可以编程逻辑器件(PLD)为载体,以计算机为工作平台,以EDA工具软件为开发环境,以硬件描述语言(HDL)作为电子系统功能描述方式,以电子系统设计为应用方向的电子产品自动化设计过程。

简介

VHDL的英文全名是Very-High-Speed Integrated Circuit HardwareDescription Language,诞生于1982年。1987年底,VHDL被IEEE和美国国防部确认为标准硬件描述语言。自IEEE公布了VHDL的标准版本,IEEE-1076(简称87版)之后,各EDA公司相继推出了自己的VHDL设计环境,或宣布自己的设计工具可以和VHDL接口。此后VHDL在电子设计领域得到了广泛的接受,并逐步取代了原有的非标准的硬件描述语言。1993年,IEEE对VHDL进行了修订,从更高的抽象层次和系统描述能力上扩展VHDL的内容,公布了新版本的VHDL,即IEEE标准的1076-1993版本,(简称93版)。现在,VHDL和Verilog作为IEEE的工业标准硬件描述语言,又得到众多EDA公

司的支持,在电子工程领域,已成为事实上的通用硬件描述语言。有专家认为,在新的世纪中,VHDL于Verilog语言将承担起大部分的数字系统设计任务。

语言的特点

VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可是部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。应用VHDL进行工程设计的优点是多方面的。

(1)与其他的硬件描述语言相比,VHDL具有更强的行为描述能力,从而决定了他成为系统设计领域最佳的硬件描述语言。强大的行为描述能力是避开具体的器件结构,从逻辑行为上描述和设计大规模电子系统的重要保证。

(2)VHDL丰富的仿真语句和库函数,使得在任何大系统的设计早期就能查验设计系统的功能可行性,随时可对设计进行仿真模拟。

(3)VHDL语句的行为描述能力和程序结构决定了他具有支持大规模设计的分解和已有设计的再利用功能。符合市场需求的大规模系统高效,高速的完成必须有多人甚至多个代发组共同并行工作才能实现。(4)对于用VHDL完成的一个确定的设计,可以利用EDA工具进行逻辑综合和优化,并自动的把VHDL描述设计转变成门级网表。

(5)VHDL对设计的描述具有相对独立性,设计者可以不懂硬件的结构,也不必管理最终设计实现的目标器件是什么,而进行独立的设计。

的设计流程

它主要包括以下几个步骤:

1.设计规范的定义

这个有点象系统的设计的总体规划,就是要明确这个系统有哪些设计要求,和你要想到达的目标。

2.采用VHDL进行设计描述

这部分包括设计规划和程序的编写。设计规划主要包括设计方式的选择及是否进行模块划分。设计方式一般包括直接设计,自顶向下和自底向下设计,这个和其他软件语言差不多。最重要还是模块划分,这个和设计者的设计水平有很大关系。完成规划设计后,就可以编写个模块的VHDL程序了,最后将各模块的VHDL程序综合起来就完成了整个设计的VHDL描述.

程序仿真

这个过程和其他软件语言没什么区别。

4.综合、优化和布局布线

综合指的是将设计描述转化成底层电路的表示形式,其结果是一个网表或者是一组逻辑方程;优化,这个主要是为了提高程序的执行效率及减少资源的利用;布局布线,指的是将逻辑关系转化成电路连接的方式。

5.后仿真。

这个与VHDL程序仿真不同,这个不仅是对逻辑方面的验证,还要进行时序功能验证。

6.器件编程

3 简单微处理器的设计过程

设计规划

计算器通过简单的数字键盘输入操作数,其中所键入的数据将被暂存在移位寄存器中,然后根据运算符执行产生不同的操作结果,所获得的运算结果再通过译码电路转移到七段显示器输出。整个微处理器的工作原理图如图所示。

图微处理器的工作原理图

各模块设计及相应程序

本系统设计了10条指令:IN1(输入到目的寄存器),MOV(将一个数送入目的寄存器),MOV1(将源寄存器中的数据存储到目的寄存器所指向的地址单元),MOV2(将源寄存器所指向的地址单元中的数送入目的寄存器), OUT1(输出),CMP(将目的寄存器和源寄存器所指向的地址单元中的数据进行比较),DEC(将目的寄存器中的数据自减一),INC(将目的寄存器中的数据自加一),JMP(无条件跳转),JB(小于跳转),下表列出了每条指令的格式、汇编符号和指令功能。

表指令系统格式表

关键程序

数的选择模块

LIBRARY IEEE;

USE MUX5 IS

PORT(

R0_B,R1_B,R2_B,R3_B,ALU_B:IN STD_LOGIC;

R0_IN,R1_IN,R2_IN,R3_IN,ALU_IN:IN STD_LOGIC_VECTOR(7 DOWNTO 0);

MUX5OUT:OUT STD_LOGIC_VECTOR(7 DOWNTO 0)

);

END MUX5;

ARCHITECTURE A OF MUX5 IS

BEGIN

PROCESS(ALU_B,R3_B,R2_B,R1_B,R0_B)

BEGIN

IF(ALU_B='1' AND R3_B='1' AND R2_B='1' AND R1_B='1' AND R0_B='0') THEN

MUX5OUT<=R0_IN;

ELSIF(ALU_B='1' AND R3_B='1' AND R2_B='1' AND R1_B='0' AND R0_B='1') THEN MUX5OUT<=R1_IN;

ELSIF(ALU_B='1' AND R3_B='1' AND R2_B='0' AND R1_B='1' AND R0_B='1') THEN MUX5OUT<=R2_IN;

ELSIF(ALU_B='1' AND R3_B='0' AND R2_B='1' AND R1_B='1' AND R0_B='1') THEN MUX5OUT<=R3_IN;

ELSIF(ALU_B='0' AND R3_B='1' AND R2_B='1' AND R1_B='1' AND R0_B='1') THEN MUX5OUT<=ALU_IN;

ELSE MUX5OUT<=ALU_IN;

END IF;

END PROCESS;

END A;

LIBRARY IEEE;

USE FEN2 IS

PORT(

MUX5_IN:IN STD_LOGIC_VECTOR(7 DOWNTO 0);

LED_B,WR: IN STD_LOGIC;

OUT_MUX3,OUT_PUT:OUT STD_LOGIC_VECTOR(7 DOWNTO 0)

);

END FEN2;

ARCHITECTURE A OF FEN2 IS

BEGIN

PROCESS(LED_B)

BEGIN

IF(LED_B='0' AND WR='0') THEN

OUT_PUT<=MUX5_IN;

OUT_MUX3<="00000000";

ELSE

OUT_MUX3<=MUX5_IN;

END IF;

END PROCESS;

END A;

LIBRARY IEEE;

USE MUX3 IS

PORT(

SW_B,CS:IN STD_LOGIC;

FEN2_IN,MUX2_2IN,SW_IN:IN STD_LOGIC_VECTOR(7 DOWNTO 0); MUX3OUT:OUT STD_LOGIC_VECTOR(7 DOWNTO 0)

);

END MUX3;

ARCHITECTURE A OF MUX3 IS

BEGIN

PROCESS(SW_B,CS)

BEGIN

IF(SW_B='0' AND CS='1') THEN

MUX3OUT<=SW_IN;

ELSIF(SW_B='1' AND CS='0') THEN

MUX3OUT<=MUX2_2IN;

ELSIF(SW_B='0' AND CS='0') THEN

MUX3OUT<=FEN2_IN;

ELSE

END IF;

END PROCESS;

END A;

4 系统仿真

数的输入

以下仿真波形图的测试输入为(34,15,25,92,17,06,83,68,72,87)。程序开始及输入10个数据. 图中的R0控制循环, R1与用自增, R2用于保存输入的数并送到与R1对应地址的RAM中.

图程序开始及输入

数的比较

如图所示,R0存放外循环的比较次数,R1存放内循环的指针。R2存放每次比较的大数, 3存放与R2比较的下一个数。如果R3>R2则跳转到交换,否则顺序执行。

图数的比较

交换两个数。

如图,由于R3种的数25大于R2中的数15,则进行交换。使R2每次存入最大的值后,R3继续读入R1地址的值继续进行比较。

图交换两个数

结果输出

图中的R0控制循环, R1与用自增, R2用于输出寄存器.结果从QD输出。图中刚好从最小的数06开始输出。

图结果输出

结束语

我在老师的细心指导和同学们的耐心帮助之下成功完成了本次实验,并能得到预期的实验结果。在这段时间内,我努力学习了计算机系统结构,VHDL等相关的各项知识,也查阅不少资料,并能够将课堂上所学的知识运用于实际的设计中,能够很好的进行理论联系实际进行开发。通过解决这次设计和设计中遇到的问题,也积累了一定的经验。对以后从事集成电路设计工作会有一定的帮助。在应用VHDL的过程中让我

真正领会到了其并行运行与其他软件(C语言)顺序执行的差别及其在电路设计上的

优越性。

致谢

本课程设计在选题和设计过程中得到了肖晓丽老师的悉心指导,肖老师多次询问课

程设计进程,并多次指导我对课程设计进行修改,帮助我完善了该课程设计。在此对

肖老师表示衷心的感谢。

还要感谢寝室的同学们,谢谢你们对我技术和精神上的帮助,谢谢你们。

参考文献

[1] 黄仁欣.EDA技术实用教程.北京:清华大学出版社,2006

[2] 黄志鹏,付丽琴.可编程逻辑器件开发技术MAX+piusⅡ.北京:国防工业出版

社,2005

[3]潘松.VHDL实用教程[M].成都:电子科技大学出版社,2000

[4] 谭会生.EDA技术基础.长沙:湖南大学出版社,2004

[5] 杨刚,龙海燕.现代电子技术—VHDL与数字系统设计.北京.电子工业出版社,2004

附录

程序清单:

1 ALU子模块

LIBRARY IEEE;

USE ALU IS

PORT(

AC, DR: IN STD_LOGIC_VECTOR(7 DOWNTO 0);

S1, S0: IN STD_LOGIC;

BCDOUT: OUT STD_LOGIC_VECTOR(7 DOWNTO 0);

CY,ZI: OUT STD_LOGIC

);

END ALU;

ARCHITECTURE A OF ALU IS

SIGNAL AA,BB,TEMP: STD_LOGIC_VECTOR(8 DOWNTO 0); BEGIN

PROCESS(S1,S0)

BEGIN

IF(S1='0' AND S0='0') THEN

BCDOUT <= AC + DR;

AA<='0'&AC;

BB<='0'&DR;

TEMP <= AA + BB;

CY<=TEMP(8);

ZI <= '1';

ELSE

ZI <= '0';

END IF;

ELSIF(S1='0' AND S0='1') THEN

BCDOUT <= AC - DR;

AA<='0'&AC;

BB<='0'&DR;

TEMP <= AA - BB;

CY<=TEMP(8);

IF( TEMP ="000000000") THEN

ZI <= '1';

ELSE

ZI <= '0';

END IF;

ELSIF(S1='1' AND S0='0') THEN

AA<='0'&AC;

TEMP<=AA+1;

BCDOUT<=TEMP(7 DOWNTO 0);

CY<=TEMP(8);

ZI <= '1';

ELSE

ZI <= '0';

END IF;

ELSIF(S1='1' AND S0='1') THEN AA<='0'&AC;

TEMP<=AA-1;

BCDOUT<=TEMP(7 DOWNTO 0); CY<=TEMP(8);

IF( TEMP ="000000000") THEN

ZI <= '1';

ELSE

ZI <= '0';

END IF;

ELSE

BCDOUT <= "00000000";

CY <= '0';

ZI <= '0';

END IF;

END PROCESS;

END A;

2状态条件寄存器子模块LIBRARY IEEE;

USE LS74 IS

PORT(

LDFR:IN STD_LOGIC;

CY,ZI:IN STD_LOGIC;

FC,FZ:OUT STD_LOGIC

);

ARCHITECTURE A OF LS74 IS

BEGIN

PROCESS(LDFR)

BEGIN

IF(LDFR'EVENT AND LDFR='1') THEN

FC<=CY;

FZ<=ZI;

END IF;

END PROCESS;

END A;

3 时序产生器子模块

LIBRARY IEEE;

USE COUNTER IS

PORT(

Q,CLR:IN STD_LOGIC;

T2,T3,T4:OUT STD_LOGIC

);

END COUNTER;

ARCHITECTURE A OF COUNTER IS

SIGNAL X:STD_LOGIC_VECTOR(1 DOWNTO 0); BEGIN

PROCESS(Q,CLR)

BEGIN

IF(CLR='0') THEN

T2<='0';

T3<='0';

T4<='0';

X<="00";

ELSIF(Q'EVENT AND Q='1') THEN

T2<=(NOT X(1)) AND X(0);

T3<=X(1) AND (NOT X(0));

T4<=X(1) AND X(0);

END IF;

END PROCESS;

END A;

4.程序计数器子模块

LIBRARY IEEE;

USE PC IS

PORT(

LOAD,LDPC,CLR:IN STD_LOGIC;

BUS_IN:IN STD_LOGIC_VECTOR(7 DOWNTO 0);

PCOUT:OUT STD_LOGIC_VECTOR(7 DOWNTO 0) );

END PC;

ARCHITECTURE A OF PC IS

SIGNAL QOUT: STD_LOGIC_VECTOR(7 DOWNTO 0); BEGIN

PROCESS(LDPC,CLR,LOAD)

BEGIN

IF (CLR='0') THEN

QOUT<= "00000000";

ELSIF (LDPC'EVENT AND LDPC='1') THEN

IF (LOAD='0') THEN

QOUT<=BUS_IN; --BUS->PC

ELSE

QOUT<= QOUT+1; --PC+1

END IF;

END IF;

END PROCESS;

PCOUT<= QOUT;

END A;

5 ROM子模块

LIBRARY IEEE;

USE ROM16 IS

PORT(

ROMOUT:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);

ADDR:IN STD_LOGIC_VECTOR(7 DOWNTO 0);

RE,CS_I: IN STD_LOGIC

);

END ROM16;

ARCHITECTURE A OF ROM16 IS

BEGIN

PROCESS(RE,CS_I)

BEGIN

IF (RE='0' AND CS_I='0') THEN

CASE ADDR IS

WHEN "00000001" => ROMOUT <= "00001010";

WHEN "00000011" => ROMOUT <= "00000000";

WHEN "00001000" => ROMOUT <= "01110000"; --JB L1

WHEN "00001001" => ROMOUT <= "00000100";

WHEN "00001011" => ROMOUT <= "00001001";

WHEN "00001101" => ROMOUT <= "00000000";

WHEN "00010001" => ROMOUT <= "01110000"; --JB L4

WHEN "00010010" => ROMOUT <= "00011111";

WHEN "00010101" => ROMOUT <= "01110000"; --JB L3

WHEN "00010110" => ROMOUT <= "00011001";

WHEN "00010111" => ROMOUT <= "01100000"; --JMP L2 WHEN "00011000" => ROMOUT <= "00001110";

WHEN "00011101" => ROMOUT <= "01100000"; --JMP L2 WHEN "00011110" => ROMOUT <= "00001110";

: DEC R0

WHEN "00100001" => ROMOUT <= "00000000";

WHEN "00100011" => ROMOUT <= "01110000"; --JB L2 WHEN "00100100" => ROMOUT <= "00001110";

WHEN "00100110" => ROMOUT <= "00001010";

WHEN "00101000" => ROMOUT <= "00000000";

: MOV2 [R1] R2

WHEN "00101101" => ROMOUT <= "01110000"; --JB L5 WHEN "00101110" => ROMOUT <= "00101001";

: OUT1 R2

WHEN "00110000" => ROMOUT <= "01100000"; --JMP L6 WHEN "00110001" => ROMOUT <= "00101111";

WHEN OTHERS => NULL;

END CASE;

END IF;

END PROCESS;

END A;

子模块

LIBRARY IEEE;

USE RAM IS

PORT(

WR,CS:IN STD_LOGIC;

DIN:IN STD_LOGIC_VECTOR(7 DOWNTO 0);

DOUT:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);

ADDR:IN STD_LOGIC_VECTOR(7 DOWNTO 0)

);

END RAM

ARCHITECTURE A OF RAM IS

TYPE MEMORY IS ARRAY(0 TO 31) OF STD_LOGIC_VECTOR(7 DOWNTO 0); BEGIN

PROCESS(CS,WR)

VARIABLE MEM: MEMORY;

BEGIN

IF (CS='0') THEN

IF (WR='0') THEN

MEM(CONV_INTEGER(ADDR(4 DOWNTO 0))):=DIN;

ELSIF(WR='1') THEN

DOUT <= MEM(CONV_INTEGER(ADDR(4 DOWNTO 0)));

END IF;

END IF;

END PROCESS;

END A;

7选择对ROM或者RAM进行操作的二选一选择器子模块

LIBRARY IEEE;

USE MUX2_2 IS

PORT(

R_R:IN STD_LOGIC;

ROM_IN,RAM_IN:IN STD_LOGIC_VECTOR(7 DOWNTO 0);

MUX2_2OUT:OUT STD_LOGIC_VECTOR(7 DOWNTO 0)

);

END MUX2_2;

ARCHITECTURE A OF MUX2_2 IS

BEGIN

PROCESS(R_R,ROM_IN,RAM_IN)

BEGIN

IF(R_R='0')THEN

MUX2_2OUT<=ROM_IN;

ELSE

MUX2_2OUT<=RAM_IN;

END IF;

END PROCESS;

END A;

8.五选一选择器子模块

LIBRARY IEEE;

USE MUX5 IS

PORT(

R0_B,R1_B,R2_B,R3_B,ALU_B:IN STD_LOGIC;

R0_IN,R1_IN,R2_IN,R3_IN,ALU_IN:IN STD_LOGIC_VECTOR(7 DOWNTO 0);

MUX5OUT:OUT STD_LOGIC_VECTOR(7 DOWNTO 0)

);

END MUX5;

ARCHITECTURE A OF MUX5 IS

BEGIN

PROCESS(ALU_B,R3_B,R2_B,R1_B,R0_B)

BEGIN

IF(ALU_B='1' AND R3_B='1' AND R2_B='1' AND R1_B='1' AND R0_B='0') THEN

MUX5OUT<=R0_IN;

ELSIF(ALU_B='1' AND R3_B='1' AND R2_B='1' AND R1_B='0' AND R0_B='1') THEN MUX5OUT<=R1_IN;

ELSIF(ALU_B='1' AND R3_B='1' AND R2_B='0' AND R1_B='1' AND R0_B='1') THEN MUX5OUT<=R2_IN;

ELSIF(ALU_B='1' AND R3_B='0' AND R2_B='1' AND R1_B='1' AND R0_B='1') THEN MUX5OUT<=R3_IN;

ELSIF(ALU_B='0' AND R3_B='1' AND R2_B='1' AND R1_B='1' AND R0_B='1') THEN MUX5OUT<=ALU_IN;

ELSE MUX5OUT<=ALU_IN;

END IF;

END PROCESS;

END A;

9.一分二分配器子模块源程序

LIBRARY IEEE;

USE FEN2 IS

PORT(

MUX5_IN:IN STD_LOGIC_VECTOR(7 DOWNTO 0);

LED_B,WR: IN STD_LOGIC;

OUT_MUX3,OUT_PUT:OUT STD_LOGIC_VECTOR(7 DOWNTO 0)

);

END FEN2;

ARCHITECTURE A OF FEN2 IS

BEGIN

PROCESS(LED_B)

BEGIN

IF(LED_B='0' AND WR='0') THEN

OUT_PUT<=MUX5_IN;

OUT_MUX3<="00000000";

ELSE

OUT_MUX3<=MUX5_IN;

END IF;

END PROCESS;

END A;

10.三选一选择器子模块

LIBRARY IEEE;

USE MUX3 IS

PORT(

SW_B,CS:IN STD_LOGIC;

FEN2_IN,MUX2_2IN,SW_IN:IN STD_LOGIC_VECTOR(7 DOWNTO 0); MUX3OUT:OUT STD_LOGIC_VECTOR(7 DOWNTO 0)

微处理器课程设计报告

桂林航天工业学院 课程设计报告 系(部):电子工程与自动化学院专业班级:xxxx班学生姓名:xxx学号:xxxxxx 课程:微处理器与接口技术课程设计 设计题目:简易波形发生器 完成日期:2016年01月04日 指导教师评语: 成绩(五级记分制): 指导教师(签字):____

摘要 本系统是基于STC89C52单片机的数字式低频信号发生器。采用STC89C52单片机作为控制核心,外围采用数字/模拟转换电路(DAC0832)、运放电路(LM324)、按键和8位数码管等。通过按键控制可产生方波、三角波、正弦波等,同时用数码管指示其对应的频率。其设计简单、性能优好,可用于多种需要低频信号的场所,具有一定的实用性。 各种各样的信号是通信领域的重要组成部分,其中正弦波、三角波和方波等是较为常见的信号。在科学研究及教学实验中常常需要这几种信号的发生装置。为了实验、研究方便,研制一种灵活适用、功能齐全、使用方便的信号源是十分必要的。 本文介绍的是利用STC89C52单片机和数模转换器件DAC0832产生所需不同信号的低频信号源,其信号幅度和频率都是可以按要求控制的。文中简要介绍了DAC0832数模转换器的结构原理和使用方法,STC89C52的基础理论,以及与设计电路有关的各种芯片。文中着重介绍了如何利用单片机控制D/A转换器产生上述信号的硬件电路和软件编程。信号频率幅度也按要求可调。 本次关于产生不同低频信号的信号源的设计方案,不仅在理论和实践上都能满足实验的要求,而且具有很强的可行性。该信号源的特点是:体积小、价格低廉、性能稳定、实现方便、功能齐全。 关键词: STC89C52 DAC0832 LM324 数码管 Abstract The Waveform The system is a digital signal generator based on single chip computer.STC89c52 is used as a control microcontroller core.The system is composed by digital/analog comversion(DAC0832), imply circuit,button and nixie tube.It can generate the square, triangle and sine wave,with nixie tube.The system can be used for a signal soure in the low-frequency signal soure.It is very practical. Various signals are an important part of correspondent area. In this area, sine wave, triangle wave and square wave are common signals. In science research and teaching experiment, we often need the occurrence equipment of these signals. In order to make the experiment and research easier, to develop a suitable, full functional and easily used signals

微处理器系统结构与嵌入式系统设计(第2版) 第3章答案

“微处理器系统原理与嵌入式系统设计”第三章习题解答 3.1处理器有哪些功能?说明实现这些功能各需要哪些部件,并画出处理器的基本结构图。 处理器的基本功能包括数据的存储、数据的运算和控制等功能。其有5个主要功能:①指令控制②操作控制③时间控制④数据加工⑤中断处理。其中,数据加工由ALU 、移位器和寄存器等数据通路部件完成,其他功能由控制器实现。处理器的基本结构图如下: 寄存器组 控制器 整数单元 浮点单元 数据通路 处理器数据传送 到内存数据来自内存数据传送到内存指令来自内存 3.2处理器内部有哪些基本操作?这些基本操作各包含哪些微操作? 处理器基本操作有:取指令、分析指令、执行指令。 取指令:当程序已在存储器中时,首先根据程序入口地址取出一条程序,为此要发出指令地址及控制信号。 分析指令:对当前取得的指令进行分析,指出它要求什么操作,并产生相应的操作控制命令。 执行指令:根据分析指令时产生的“操作命令”形成相应的操作控制信号序列,通过运算器、存储器及输入/输出设备的执行,实现每条指令的功能,其中包括对运算结果的处理以及下条指令地址的形成。 3.3什么是冯·诺伊曼计算机结构的主要技术瓶颈?如何克服? 冯·诺伊曼计算机结构的主要技术瓶颈是数据传输和指令串行执行。可以通过以下方案克服:采用哈佛体系结构、存储器分层结构、高速缓存和虚拟存储器、指令流水线、超标量等方法。

3.5指令系统的设计会影响计算机系统的哪些性能? 指令系统是指一台计算机所能执行的全部指令的集合,其决定了一台计算机硬件主要性能和基本功能。指令系统一般都包括以下几大类指令。:1)数据传送类指令。(2)运算类指令 包括算术运算指令和逻辑运算指令。(3)程序控制类指令 主要用于控制程序的流向。 (4)输入/输出类指令 简称I/O 指令,这类指令用于主机与外设之间交换信息。 因而,其设计会影响到计算机系统如下性能: 数据传送、算术运算和逻辑运算、程序控制、输入/输出。另外,其还会影响到运算速度以及兼容等。 3.9某时钟速率为2.5GHz 的流水式处理器执行一个有150万条指令的程序。流水线有5段,并以每时钟周期1条的速率发射指令。不考虑分支指令和乱序执行带来的性能损失。 a)同样执行这个程序,该处理器比非流水式处理器可能加速多少? b)此流水式处理器是吞吐量是多少(以MIPS 为单位)? a.=51p T nm S T m n =≈+-串流水 速度几乎是非流水线结构的5倍。 b.2500M IPS p n T T =≈流水 3.10一个时钟频率为2.5 GHz 的非流水式处理器,其平均CPI 是4。此处理器的升级版本引入了5级流水。然而,由于如锁存延迟这样的流水线内部延迟,使新版处理器的时钟频率必须降低到2 GHz 。 (1) 对一典型程序,新版所实现的加速比是多少? (2) 新、旧两版处理器的MIPS 各是多少? (1)对于一个有N 条指令的程序来说: 非流水式处理器的总执行时间s N N T 990 106.1)105.2/()4(-?=??= 5级流水处理器的总执行时间s N N T 991 10)4(2)102/()15(-?+=?-+= 加速比=42.310 +=N N T T ,N 很大时加速比≈3.2 (2)非流水式处理器CPI=4,则其执行速度=2500MHz/4=625MIPS 。 5级流水处理器CPI=1,则其执行速度=2000 MHz /1=2000 MIPS 。 3.11随机逻辑体系结构的处理器的特点是什么?详细说明各部件的作用。 随机逻辑的特点是指令集设计与硬件的逻辑设计紧密相关,通过针对特定指令集进行

多周期微处理器设计

微处理器系统设计 课程设计 版本v1.0 专业:集成电路设计与集成系统班级:电路1303班 姓名:周小朋 学号:05136085 2016年6月20 ~ 2016年7月1日

多周期微处理器设计 注:非正式版,仅为初稿 一、功能描述 MIPS微处理器是典型的32位定长指令字RISC处理器,此次设计的微处理器是基于verilogHDL语言、兼容MIPS指令格式、带有I/O接口和中断处理电路、能够实现26条指令功能,并且可以在DE2开发板上进行下载验证的多周期CPU。可以实现的指令包括,R型:add、addu、sub、subu、and、or、xor、nor、slt、sltu、sll、srl、sra、jr;I型:addi、addiu、lui、andi、ori、xori、lw、sw、beq、bne;J型:jal、jump。并且可以实现一段流水灯程序,程序的样式为1)10101010->010*******切换间隔为0.5秒2)11110000->00001111,切换间隔为1秒。两种样式通过按键控制。 二、设计方案 1.总体设计方案 此次设计是在前期课程已经设计好的单周期CPU上进行多周期CPU的设计,多周期指令的执行分为5个阶段:取指、译码、执行、访存、回写。由于PC,指令存储器只能在需要时写入新值,因此必须有“写使能信号”控制。可以用状态机来实现5个状态的转换以及控制信号的产生。来控制此次设计要实现一段流水灯程序,总共有两组不同的花型切换。可以先利用ori指令初始化第一组花型到两个寄存器,再利用SW指令将存到寄存器的花型读出存储到IO接口,通过LED显示,最后用J指令实现花型的循环,此即使第一组花型的实现。接下来考虑按键切换到下一组花型,可以使用按键产生一个中断信号,当按下按键时,进入中断程序,在中断程序里边存储第二个花型及其花型切换与循环,实现方式与花型一相同。时间的控制可以利用指令的条数进行控制,通过分频产生一个标准时钟,sw占用4个时钟周期,j型占用2个时钟周期,可以通过指令的条数来控制题目所需要的0.5s与1s。花型跳转示意图如下: 图1.流水灯实现示意图 总体设计框图如下:

简单微处理器的设计

简单微处理器的设计 摘要:本课程设计采用EDA技术设计简单微处理器。系统设计采用自顶向下的设计方法。它由数的输入,数的比较,数的交换和结果输出四部分组成。系统实现采用硬件描述语言VHDL把系统电路按模块化方式进行设计,然后进行编程、时序仿真并分析。系统结构简单,使用方便,功能齐全,精度高,具有一定的应用价值。 关键词:处理器;输入;比较;交换

目录 1 引言 (1) 1.1课题设计的背景、目的 (1) 1.2 课程设计的内容 (1) 2 EDA、VHDL简介 (2) 2.1 EDA简介 (2) 2.2 VHDL简介 (2) VHDL语言的特点 (2) VHDL的设计流程 (3) 3 简单微处理器的设计过程 (4) 3.1设计规划 (4) 3.2 各模块设计及相应程序 (4) 4 系统仿真 (8) 1.数的输入. (8) 2 数的比较。 (8) 3 交换两个数。 (9) 4 结果输出(从小到大). (9) 结束语 (11) 致谢 (12) 参考文献 (13) 附录 (14)

1 引言 随着社会的发展,科学技术也在不断的进步。特别是计算机产业,可以说是日新月异,而处理器,作为计算机中的一个重要部分,其性能从很大程度上决定了计算机的性能。本设计介绍的简单微处理器,要求具有以下验证程序所要求的功能:输入包含10个整数(无符号数)的数组M,按从小到大的顺序输出这10个数。 1.1课题设计的背景、目的 微处理器技术的发展是与微电子技术即大规模集成电路技术的发展分不开的。微电子技术以每18个月集成度提高一倍的速度迅速发展。20世纪80年代初,主要是16位微处理器8086/8088。1985年推出了80386微处理器,完成了16位体系结构向32位体系结构的转变。1989年80486出现了。80486的设计目标是提高指令执行速度和支持多处理器系统。80486在芯片内部增加一个8KB的高速缓冲存储器(cache),还增加了相当于80387的浮点部件(FPU),在基本指令的实现上,采用硬布线逻辑而不是微程序技术。1993年3月,Intel公司推出了第一代“奔腾”微处理器(Pentium),微处理器技术发展进入了一个新的阶段。到目前为止,“奔腾”已有四代产品。“奔腾”的设计思想是把如何提高微处理器内部指令执行的并行性作为主导。指令执行的并行性越好,微处理器的性能就越高。 本次设计的目的就是了解并掌握VHDL硬件描述语言的设计方法和思想,通过学习的VHDL语言结合电子电路的设计知识理论联系实际,掌握所学的课程知识,学习VHDL基本单元电路的综合设计应用。通过对实用电子称的设计,巩固和综合运用所学课程,理论联系实际,提高IC设计能力,提高分析、解决计算机技术实际问题的独立工作能力。通过课程设计深入理解VHDL语言的精髓,达到课程设计的目标。 1.2 课程设计的内容 本设计主要介绍的设计一台简单微处理器,要求具有以下验证程序所要求的功能:输入包含10个整数(无符号数)的数组M,按从小到大的顺序输出这10个数。 ( 1 )程序开始及输入10个数据。 ( 2 )数的比较。

嵌入式微处理器系统读书报告

《嵌入式微处理器系统》专题读书报告 姓名:全妤

1、引言 随着医疗电子、智能家居、物流管理和电力控制等方面的不断风靡,嵌入式系统利用自身积累的底蕴经验,重视和把握这个机会,想办法在已经成熟的平台和产品基础上与应用传感单元的结合,扩展物联和感知的支持能力,发掘某种领域物联网应用。作为物联网重要技术组成的嵌入式系统,嵌入式系统的视角有助于深刻地、全面地理解物联网的本质。 2、嵌入式系统的概念 嵌入式系统被定义为以应用为中心、计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积功耗严格要求的专用计算机系统。 2.1嵌入式系统的组成 一个嵌入式系统装置一般都由嵌入式计算机系统和执行装置组成。嵌入式计算机系统是整个嵌入式系统的核心,由硬件层、中间层、系统软件层和应用软件层组成。执行装置也称为被控对象,它可以接受嵌入式计算机系统发出的控制命令,执行所规定的操作或任务。 2.1.1 硬件层 硬件层中包含嵌入式微处理器、存储器(SDRAM、ROM、Flash等)、通用设备接口和I/O接口(A/D、D/A、I/O等)。

在一片嵌入式处理器基础上添加电源电路、时钟电路和存储器电路,就构成了一个嵌入式核心控制模块。其中操作系统和应用程序都可以固化在ROM中。 1)嵌入式微处理器 嵌入式系统硬件层的核心是嵌入式微处理器,嵌入式微处理器与通用CPU最大的不同在于嵌入式微处理器大多工作在为特定用户群所专用设计的系统中,它将通用CPU许多由板卡完成的任务集成在芯片内部,从而有利于嵌入式系统在设计时趋于小型化,同时还具有很高的效率和可靠性。 2)存储器 嵌入式系统需要存储器来存放和执行代码。嵌入式系统的存储器包含Cache、主存和辅助存储器。 3)通用设备接口和I/O接口 嵌入式系统和外界交互需要一定形式的通用设备接口,如A/D、D/A、I/O等,外设通过和片外其他设备的或传感器的连接来实现微处理器的输入/输出功能。每个外设通常都只有单一的功能,它可以在芯片外也可以内置芯片中。外设的种类很多,可从一个简单的串行通信设备到非常复杂的802.11无线设备。

微处理器原理及其系统设计 第一章答案

第1章 1.将下列十进制数转换成二进制数: (1)58;(2)67.625; (3)5721; 解:(1)58D = 0011 1010B (2)67.625D = 0100 0011.1010B (3)5721D = 0001 0110 0101 1001B 2.将二进制数变换成十六进制数: (1)1001 0101B;(2)11 0100 1011B;(3)1111 1111 1111 1101B;(4)0100 0000 10101B;(5)0111 1111B;(6)0100 0000 0001B 解:(1)1001 0101B = 95H (2)11 0100 1011B = 34BH (3)1111 1111 1111 1101B = FFFDH (4)0 1000 0001 0101B = 815H (5)0111 1111B = 7FH (6)0100 0000 0001B = 401H 3.将十六进制数变换成二进制数和十进制数: (1)78H;(2)0A6H;(3)1000H;(4)0FFFFH 解:(1)78H = 120D = 0111 1000B (2)0A6H = 166D = 1010 0110B (3)1000H = 4096D = 0001 0000 0000 0000H (4)0FFFFH = 65535D = 1111 1111 1111 1111B 4.将下列十进制数转换成十六进制数: (1)39;(2)299.34375;(3)54.5625 解:(1)39D = 27H (2)299.34375D = 12B.58H (3)54.5625D = 36.9H 5.将下列二进制数转换成十进制数: (1)10110.101B;(2)10010010.001B;(3)11010.1101B 解:(1)10110.101B = 22.625D

嵌入式系统课程设计---基于ARM微处理器的数码管驱动设计-任务书(1)

河南工业大学嵌入式课程设计 课程设计题目:基于ARM微处理器的数码管驱动设计学院:信息科学与工程学院 班级:电科1304 姓名: 学号:2013160304 指导老师姓名:李智慧

13级电科专业课程设计任务书

基于ARM微处理器的数码管驱动设计 一、设计要求 1.1实验内容: 1. 利用ARM微处理器实现数码管显示驱动; 2.能够显示0 1 2 3 4 5 6 7 8 9等数字,且循环显示; 3. 通过按键改变循环显示速度; 1.2实验设备: 硬件:PXA270 实验平台,PXA270 ARM 标准/增强型仿真器套件,PC 机。 软件:VMware Workstation、Ubuntu、win7。 二、设计方案 本次试验选用的芯片为 PXA270 ,使用的是 PXA270集成试验箱。基于 IntelXScale 架构的 PXA270处理器,集成了存储单元控制器、时钟和电源控制器、 DMA控制器、 LCD控制器、 AC97控制器、 I2S 控制器、快速红外线通信 (FIR) 控制器等外围控制器,可以实现丰富的外围接口功能。其低电源运行模式以及动态电源管理技术可以有效的降低电源的功耗。使用试验箱上的 4X4 的矩阵键盘作为输入,用来控制数码管显示的快慢速度,将需要输出的各个数码管状态从两个数码管中输出。 三、设计原理 1、数码管结构 七段数码管由 8 个发光二极管排列组成(包括小数点位)如下图所示: 这 8 个独立的二极管通常被命名: a.b.c.d.e.f.g.h 。 h 表示小数点。利用 7 段数码管能显示所有数字以及部分英文字母。 数码管有 2 种不同的形式:一种是 8 个发光二极管的阳极都连一起,成为共 阳极 8 段数码管如图所示: 共阳极 8 段数码管的 8 个发光二极管的正极一起接 VCC ,要控制数码管中的某一段亮,比如 A段,只须要控制数码管的 A 脚为低电平就可以了,反之熄灭 A 段就控制 A 脚为高电平。

微处理器系统与嵌入式系统1—7章最全答案合集

“微处理器系统原理与嵌入式系统设计”第一章习题解答 1.1 什么是程序存储式计算机? 程序存储式计算机指采用存储程序原理工作的计算机。 存储程序原理又称“·诺依曼原理”,其核心思想包括: ●程序由指令组成,并和数据一起存放在存储器中; ●计算机启动后,能自动地按照程序指令的逻辑顺序逐条把指令从存储器中 读出来,自动完成由程序所描述的处理工作。 1.2 通用计算机的几个主要部件是什么? ●主机(CPU、主板、存); ●外设(硬盘/光驱、显示器/显卡、键盘/鼠标、声卡/音箱); 1.3 以集成电路级别而言,计算机系统的三个主要组成部分是什么? 中央处理器、存储器芯片、总线接口芯片 1.4 阐述摩尔定律。 每18个月,芯片的晶体管密度提高一倍,运算性能提高一倍,而价格下降一半。 1.5 讨论:摩尔定律有什么限制,可以使用哪些方式克服这些限制?摩尔定律还会持续多久?在摩尔定律之后电路将如何演化? 摩尔定律不能逾越的四个鸿沟:基本大小的限制、散热、电流泄露、热噪。具体问题如:晶体管体积继续缩小的物理极限,高主频导致的高温…… 解决办法:采用纳米材料、变相材料等取代硅、光学互联、3D、加速器技术、多核…… (为了降低功耗与制造成本,深度集成仍是目前半导体行业努力的方向,但这不可能永无止,因为工艺再先进也不可能将半导体做的比原子更小。用作绝缘材料的二氧化硅,已逼近极限,如继续缩小将导致漏电、散热等物理瓶颈,数量集成趋势终有终结的一天。一旦芯片上线条宽度达到纳米数量级时,相当于只有几个分子的大小,这种情况下材料的物理、化学性能将发生质的变化,致使采用现行工艺的半导体器件不能正常工作,摩尔定律也就要走到它的尽头了。业界专家预计,芯片性能的增长速度将在今后几年趋缓,一般认为摩尔定律能再适用10年左右,其制约的因素一是技术,二是经济。)

简单微处理器的设计与实现

实验五简单微处理器的设计与实现 一、设计任务和技术指标 运用在“数字电路与逻辑设计”课程中学过的基本理论知识,设计并用可编程逻辑器件实现一个简单的八位操作数的微处理器。完成微处理器硬件系统设计和指令系统设计两方面的任务,使微处理器能够实现两个不带符号位的八位二进制数原码相乘等功能。 二、简单微处理器介绍 1.微处理器硬件系统及原理 微处理器硬件系统包括运算器、控制器、存储器以及其它必要的逻辑部件。图4-1是一个微处理器的参考原理框图,具体说明如下: (1)程序计数器PC:存放将要执行指令的地址。 (2)指令存储器IROM,存放程序指令,每条指令的长度为W,指令的个数为L。 (3)指令寄存器IR:存放被执行指令的操作码,直接供运算控制器。 (4)控制器CON:产生一系列时序逻辑信号,控制微处理器各个部件协调一致地完成每条指令相应的操作,实现两个操作数的运算。 (5)通用寄存器堆R0-R7:用来临时存放运算过程中读出和写入的数据。 (6)缓冲寄存器RS和RD:用于存放ALU的两个输入操作数。 (7)运算器ALU和进位寄存器C:运算器ALU对两个操作数RS和RD进行加、减或逻辑运算处理,在进行加减运算时还接受控制器的进位输入信号CI,ALU的运算结果送给通用寄存 器或特殊寄存器。ALU还根据运算结果设置进位标志C和零标志Z。 (8)运算结果显示送七段数码管显示,用十六进制显示。 输入 输出 图4-1 简单微处理器框图 2.处理器指令系统及功能 处理器的基本指令字长为W位,指令的每一位从高到低用D W、D W-1、…D1、D0表示,有些微处理器的一条指令包括多个指令字长,即每条指令的长度不一样,例如Intel的80386等。本实验为了简化设计,规定所有的指令都是单指令字的指令,即所有指令的长度都是W。基本的指令系统一般包括

微原课程设计

微机原理课程设计 学院机电工程学院 专业自动化 姓名颜秦鑫 学号 指导教师千博董瑞军

第一章绪论 1.1课程设计的意义: 《微机原理与接口技术》是自动化专业的专业基础课,在总课程体系种占有重要的位置。课程设计的目的是使学生更进一步掌握微机原理及应用课程的有关知识,加深对微机应用的理解,以达到巩固课堂教学内容,并进一步加强学生的应用能力和创新能力,是培养学生综合素质,提高动手能力,增强发现问题和解决问题能力的重要部分。 1.2课程设计的目的: 1.掌握8088最小系统的实现方法 2.掌握利用8088最小系统完成存储器的设计及其扩展方法 3.掌握系统设计时的地址空间分配及其译码电路设计 4.掌握利用8088最小系统完成接口设计的方法 5.掌握8255、8253、0809、0832等芯片的使用方法 1.3 课程设计的要求: 1.构成8088最小工作系统 2.分别采用两片6264和2764完成存储器电路的设计 3.采用ADC0809组成8位温度AD变换接口电路 4.采用DAC0832组成8位DA变换接口电路驱动直流电机 5.采用8255和8253组成步进电机的控制电路 第二章设计思路说明 2.1 设计任务分析: 系统要求采用8088工作于最小方式下,在这种方式中,8088CPU引脚直接产生存储器或I/O口读写的所有控制信号。首先利用8284提供时钟信号,同时也提供了复位信号和准备好信号。然后利用3片74LS373锁存器芯片形成20位地址总线,利用1片74LS245双向数据收发器芯片形成8位数据总线,至此形成

总线逻辑电路和最小系统工作电路。存储器设计分别采用2片2764和2片6264进行扩展,分别形成16KB的ROM和16KB的RAM。温度变换电路采用AD590采集温度信号送入0809的通道进行AD转换,并用8259对其产生的EOC信号产生中断控制。将系统数据送入0832进行DA转换,完成控制直流电机。系统的定时计数器8253完成对步进电机定时计数,采用8255并行接口控制步进电机。以上各模块译码电路均由74LS138产生。 2.2 系统各模块地址空间分配: 存储器模块: ROM:FC000H—FFFFFH RAM:00000H—03FFFH 温度变换模块: ADC0809:000H—007H 8259:008H—009H 直流电机驱动模块: DAC0832:00AH 步进电机控制模块: 8253:00CH—00FH 8255:010H—013H 键盘显示模块: 8255:014H—017H 第三章电路总体构成 3.1 最小系统设计: 3.1.1 8088芯片介绍 1.8088芯片简介:

16位cpu设计课程设计

石家庄经济学院 信息工程学院 计算机组成原理课程设计报告 题目16位模型计算机的设计 姓名 学号 班号 指导老师 成绩 2011年1月

目录 1. 课程设计目的 (3) 2. 开发工具选择 (3) 3. 方案选择 (3) 4.指令系统设计 (4) 5. 模型机框图设计 (4) 6. 指令流程图 (5) 7.微指令格式(微程序控制器)设计 (6) 8.微程序(微程序控制器)设计 (7) 9. VHDL程序代码 (9) 10. 调试仿真 (16) 11. 课程设计回顾总结 (18) 参考文献 (18)

1. 课程设计目的 (1)、计算机组成原理课程设计的主要任务是让学生通过动脑和动手解决计算机设计中的实际问题。综合运用所学计算机组成原理知识,在掌握部件单元电路实验的基础上,进一步将其组成系统构造一台基本的模型计算机,掌握整机概念,并设计机器指令系统,编写程序,在所设计的模型计算机上调试运行。 (2)、通过一台模型机的设计过程,明确计算机的控制原理与控制过程,巩固和灵活应用所学的理论知识,掌握计算机组成的一般设计方法,提高学生设计能力和实践操作技能,为从事计算机研制与设计打下基础。 2. 开发工具选择 使用QUARTUS 5.0软件编写并调试VHDL程序,然后做功能仿真。 3. 方案选择 本次实习的内容为16位模型计算机的设计,单总线,采用微程序控制方式,有四种寻址方式:直接寻址、寄存器寻址、寄存器间接寻址和变址寻址。 微程序控制方式由微指令译码产生。微程序中一条机器指令往往分成几步执行,将每一步操作所需的若干为命令以代码编写在一条微指令中,若干条微指令组成一段微程序,对应一条机器指令。然后根据系统的需要,事先编制各段微程序,将它存入一个专用寄存器(即控制存储器)中。 微程序执行过程:如图1所示,为微程序控制基本框: (1)从控存中逐条取出“取指令操作”,执行取指令公共操作。 (2)根据指令的操作码,经过微地址形成部件,得到这条指令的入口地址,并送入微地址寄存器中。 (3)从控存中逐条的取出对应的微指令并执行。 (4)执行完一条机器指令对应的微程序后又回到取指微程序的入口地址,继续第(1)步,以完成取下一条机器指令的公共操作。 IR PSW PC 微地址 形成电路 微地址寄 存器μAR 微指令寄存器μIR 译码器 控制存储器CM 指令代码 运行状态 …… 微命令字段微地址字段 …… 微命令序列 图1 微程序控制基本框

嵌入式微处理器与操作系统_华中师范大学20年春季考试题库及答案

[试题分类]:嵌入式微处理器与操作系统Z_82411005 [题型]:单选 [大题名称]:单项选择题 [题目数量]:60 [分数]:2 1.Makefile文件预定定义变量$^表示()。 A.目标文件的完整名称 B.所有不重复的依赖文件,以空格隔开 C.第一个依赖文件的名称 D.第二个依赖文件的名称 [答案]:B [一级属性]: [二级属性]: [难度]: [公开度]: 2.如果生成通用计算机上(系统是Linux操作系统)能够执行的程序,则使用的C编译是()。 A.TC B.VC C.GCC D.arm-linux-gcc [答案]:C [一级属性]: [二级属性]: [难度]: [公开度]: 3.创建根文件系统映像文件使用的工具是()。 A.BusyBox B.cramfs C.make D.vi [答案]:A [一级属性]: [二级属性]: [难度]: [公开度]: 4.S3C2410X系统的存储空间分成()组(bank)。 A.2 B.4 C.8 D.16 [答案]:C

[一级属性]: [二级属性]: [难度]: [公开度]: 5.GDB软件是()。 A.调试器 B.编译器 C.文本编译器 D.连接器 [答案]:A [一级属性]: [二级属性]: [难度]: [公开度]: 6.嵌入式系统和通用计算机相比,描述不正确的是()? A.专用性强 B.实时性好 C.可裁剪性好 D.功耗高 [答案]:D [一级属性]: [二级属性]: [难度]: [公开度]: 7.ARM9使用几级流水线。 A.2 B.3 C.5 D.7 [答案]:C [一级属性]: [二级属性]: [难度]: [公开度]: 8.ARM公司主要依靠()获得利润。 A.生产芯片 B.销售芯片 C.制定标准 D.出售芯片技术授权 [答案]:D

嵌入式微处理器结构与应用课程设计报告

《嵌入式微处理器结构与应用》 课程设计报告 题目:电子菜单 一、课程设计的目的和主要内容: 目的:《嵌入式微处理器结构与应用》课程设计是软件工程本科专业的专业实践课程,结合在课程中学到的嵌入式系统的开发和调试方法,对学生在嵌入式系统设计和应用开发的基本技能方面进行综合的检验和实践。是学生在学习完《嵌入式微处理器结构与应用》课程之后的一个重要的实践环节。要求学生在教师的指导下,综合运用已学过的嵌入式微处理器相关的各种知识和技能,以小组协作的方式完成一项较为完整、并具有一定难度的课程设计任务。使学生总结本课程的主要知识点,提高学生的实际动手能力,为学生今后进一步学习和从事嵌入式系统相关的研究与开发打下坚实的基础。 内容:基于实时操作系统,学会复杂应用程序的基本开发方法,结合课程实验学到的知识,编写一个能综合应用液晶屏、触摸屏、键盘并结合简单文件系统API函数的界面应用。要求具备基本的三个界面:初始界面、点菜界面、结束界面,基本实现点菜的全过程。 二、基本的设计思路或程序流程图描述: 基于MVC勺设计模式,将程序分成三大独立的部分:模型(逻辑)部分、视图部分、控制部分。这三大部分的关系如下:

程序总流程图:

百度文库-让每个人平等地提升自我 初始化程序, 打开启动画面线程 关闭线程 点菜结束按钮 判断消息 类型 判断操 作类型 判断单 击内容 判断控 件类型 判断该菜单条目 的 状态,进行相应的逻 辑和视图更新 本人负责: 打开线程 界面控件 翻页按钮 加载菜单数据 显示启动动 画 键盘消息 显示点菜结束 画面和总价 程序 菜单条目 进行菜单的上下 滚动 关闭按钮 单击 拉动 重置逻辑数 据,显示最初 的点菜界面 关闭启动画面线程, 显示点菜画面 显示程序结束画 面 进行菜单的翻页 等待系统消息 触摸屏消息 、视图部分:

微型计算机系统技术课程设计书

一、设计目的 为了进一步巩固学习的理论知识,增强学生对所学知识的实际应用能力和运用所学的知识解决实际问题的能力,开始为期两周的课程设计。通过设计使学生在巩固所学知识的基础之上具有初步的单片机系统设计与应用能力。 1、通过本设计,使学生综合运用《微型计算机技术》、《C 语言程序设计》以及《数字电路》、《模拟电路》等课程的内容,为以后从事电子产品设计、软件编程、系统控制等工作奠定一定的基础。 2、学会使用KEIL C 和PROTEUS 等软件,用C 语言或汇编语言编写一个较完整的实用程序,并仿真运行,保证设计的正确性。 3、了解单片机接口应用开发的全过程:分析需求、设计原理图、选用元器件、布线、编程、调试、撰写报告等。 二、设计内容 该实践训练环节要求学生能够运用所学知识,在老师的引导下完成课程设计题目,达到相应的训练要求。 通过实验进一步学习D/A 转换器的基本原理以及在单片机系统中扩展D/A 转换器的方法。用D/A 完成锯齿波输出,用PROTEUS 内带的示波器查看波形。 三、问题分析、方案的提出、设计思路及原因 首先根据锯齿波的图形构建基本框架,输出的电压值以一定的增量逐步增加,达到最大值后再回到初始值然后再次循环。 本设计要求利用数字量/模拟量(D/A )转换来完成锯齿波的输出。数/模转换器(DAC )是一种把数字信号转换成模拟信号的器件。计算机输出的数字信号首先传送到数据锁存器中,然后由模拟电子开关把数字信号的高低电平变成对应的电子开关状态。 1、系统方案的比较 方案一:采用函数信号发生器ICL8038集成模拟芯片,(如图2-1)它是一种可以同时产生方波、三角波、正弦波的专用集成电路。但是这种模块产生的波形都不是纯净的波形,会寄生一些高次谐波分量,采用其他的措施虽可滤除一些,但不能完全滤除掉。 方案二:采用分立元件实现非稳态的多谐振振荡器,然后根据需要加入积分电路等构成正弦、矩形、三角等波形发生器。这种信号发生器输出频率范围窄,而 图2-1方案一方框图 D/A 键 盘 单片机 ICL8038 运算电 路 显 示 D/A 输出

华中科技大学HUST类MIPS单周期微处理器设计实验报告

类MIPS单周期微处理器设计 实验报告 专业: 班级: 学号: 姓名:

一、微处理器各模块设计 各模块的框图结构如上图所示。由图可知,该处理器包含指令存储器、数据存储器、寄存器组、ALU单元、符号数扩张、控制器、ALU控制译码以及多路复用器等。图中还忽略了一个单元:时钟信号产生器,而且以上各个部件必须在时钟信号的控制下协调工作。 1.指令存储器的设计 指令寄存器为ROM类型的存储器,为单一输出指令的存储器。因此其对外的接口为clk、存储器地址输入信号(指令指针)以及数据输出信号(指令)。 (1)在IP wizard 中配置ROM,分配128个字的存储空间,字长为32位宽。 (2)选择输入具有地址寄存功能,只有当时钟上升沿有效时,才进行数据的输出。 (3)配置ROM内存空间的初始化COE文件。最后单击Generate按钮生成IROM模块。

2.数据存储器的设计 数据存储器为RAM类型的存储器,并且需要独立的读写控制信号。因此其对外的接口输入信号为clk、we、datain、addr;输出信号为dataout。 数据存储器基本建立过程同ROM的建立。 3.寄存器组设计 寄存器组是指令操作的主要对象,MIPS中一共有32个32位寄存器。在指令的操作过程中需要区分Rs、Rt、Rd的地址和数据,并且Rd的数据只有在寄存器写信号有效时才能写入,因此该模块的输入为clk、RegWriteAddr、RegWriteData、RegWriteEn、RsAddr、RtAddr、reset;输出信号为RsData、RtData。 由于$0一直输出0,因此当RsAddr、RtAddr为0时,RsData以及RtData 必须输出0,否则输出相应地址寄存器的值。另外,当RegWriteEn有效时,数据应该写入RegWriteAddr寄存器。并且每次复位时所有寄存器都清零。 代码如下: module regFile( input clk, input reset, input [31:0] regWriteData, input [4:0] regWriteAddr, input regWriteEn, output [31:0] RsData, output [31:0] RtData, input [4:0] RsAddr, input [4:0] RtAddr

微型计算机技术及应用课程设计

微型计算机技术及应用 课程设计 课程题目:跑马灯的设计与实现 院系: 专业: 姓名: 学号: 指导老师: 完成日期:

跑马灯的设计与实现 一实验目的 1.巩固和加深课堂所学知识;熟悉各种指令的应用及条件; 2.深入了解与掌握8086微处理器、8255A、74ls154 和74LS273的工作原理 3.通过走马灯的设计与制作,深入了解与掌握利用可编程8255A进行开关量控制的原理与方法。 二实验要求 1.产生6种彩灯(8位LED)的走马灯花样; 2.键控(或拨码开关控制)发光实验。通过按下不同的开关来控制灯的不同的走向。 三实验内容 1.进行走马灯的系统电路设计,掌握基本原理; 2.利用PROTEUS软件画出电路原理图; 3.进行走马灯的控制程序设计(采用ASM语言); 4.将程序导入8086中进行仿真,完成4种不同的走向。 四程序流程图

Y N 五.设计原理与硬件电路 开始 系统初始化 8255初始化 按下开关 判断1-6的哪种 方式 选择发光方式 结束 熄灭LED 灯

1.功能分析 此次课程设计具体功能为: (1)采用不同的开关作为输入信号,8个LED灯作为输出信号。 (2)当按下不同的开关时(每次只能按下一个开关,不能同时按下多个开关)LED灯会出现不同的闪烁方式。当开关段开始,LED灯自动熄灭。 2.实验原理(系统连接图的设计) 8255A是一种通过可编程并行I/O接口芯片。广泛用于几乎所有系列的微机系统中,8255A具有三个带锁存或缓冲的数据端口,可与外设并行进行数据交换,8255A有多种操作方式,通用性较强,可为CPU与外设之间提供输入/输出通道。8255A和各端口内具有中断控制逻辑,在外设与CPU之间可用中断方式进行信息交换,使用条件传输方式时可用“联络”线进行控制。在实验中,我们运用8255为CPU与外设之间提供输入输出输出通道来实现对走马灯花样变换的控制。 8086微处理器,选择最小工作模式,所有的总线控制信号均由8086产生;8086CPU的地址\数据总线AD15-AD0和地址\状态总线A16/S3-A19/S6是复用的,必须通过地址锁存器把地址总线和数据总线分离。 走马灯模拟电路原理如图1所示。模块包括8个LED彩灯、三个74LS273、一个74LS154和若干电阻及开关。用LED可以观测在不同按键输入下,走马灯花样的变化效果。 如图1所示我们利用软件输入信号,通过8255端口扩展芯片和74LS273芯片,调节输出端口的电平变化,来控制共阴极的LED灯的亮与灭,实现走马灯花样变化。

《微处理器原理与接口》

单片机课程设计密码锁

1.设计内容及意义.........................................................................2. 2.整体设计原理及方案 (2) 3.硬件电路图 (3) 4.程序设计流程图 (6) 5.实验结果及数据 (7) 6.问题及心得 (7) 7.完整程序 (8)

1.设计内容及意义 1.1设计内容 ①密码通过键盘输入,若密码正确,则将锁打开。②报警、锁定键盘功能。密码输入错误数码显示器会出现错误提示,若密码输入错误次数超过 3 次锁定键盘。电子密码锁的设计主要由三部分组成:4×4 矩阵键盘接口电路、密码锁的控制电路、输出八段显示电路。另外系统还有LED 提示灯。密码锁设计的关键问题是实现密码的输入、清除、更改、开锁等功能:①密码输入功能:按下一个数字键,一个“-”就显示在最右边的数码管上,同时将先前输入的所有“-”向左移动一位。②密码清除功能:当按下清除键时,清除前面输入的所有值,并清除所有显示。③开锁功能:当按下开锁键,系统将输入与密码进行检查核对,如果正确锁打开,否则不打开。 1.2 设计意义 随着经济的发展,人们对日常生活质量的要求也越来越高,从工作、学习、出行、购物等的各个方面,人们也对现代安全设施提出来更高的要求。在安全技术防范领域,具有防盗报警功能的电子密码锁逐渐代替传统,克服了机械式密码锁密码量少、安全性能差的缺点,使密码锁无论在技术上还是在性能上都大大提高一步。密码锁具有安全性高、成本低、功耗低、易操作等优点,同时还引入了智能化管理、专家分析系统等功能,从而使密码锁具有很高的安全性、可靠性,应用日益广泛。 2.整体设计原理及方案 2.1 整体设计原理 本设计主要由单片机、4*4矩阵键盘、LED和密码存储等部分组成。其中矩阵键盘用于输入数字密码和进行各种功能的实现。由用户通过连接单片机的矩阵键盘输入密码,后经过单片机对用户输入的密码与自己保存的密码进行比较,从而判断密码是否正确,然后控制引脚的高低电平传到开锁电路或者报警电路控制开锁还是报警。 2.2 整体设计方案 在单片机的外围电路外接输入键盘用于密码的输入和一些功能的控制,外接LED数码管用于显示作用,连线时LED1接P1.1,LED2接P1.2,LED3接P1.3。当用户需要开锁时,先按键盘的数字键任意输入密码,密码输完后按下确认键,若输入正确则开门;不正确

EDA实验_简单微处理器设计

XXXX大学计算机科学学院 实验/上机报告 一、实验目的 1、通过简单微处理器的设计,理解可编程逻辑系统设计中的自顶向下设计思想; 2、进一步巩固利用状态机实现同步时序系统的知识; 二、实验环境 硬件:PC机、便携式EDA/SOPCDSP实验系统 软件:Quartus II 7.0 开发系统 三、实验内容 完成简单微处理器设计; 四、实验过程 设计思想: 分析CPU工作原理,可得如下运行流程: 程序计数器PC到数据总线,通过总线到地址寄存器MAR →MAR将PC传过来的数据信息送到只读内存ROM(在具体实验中用RAM、MDR表示)→ROM通过总线将地址送入指令寄存器IR →IR将操作码送入控制器,同时再将指令地址信息送入总线,通过数据总线将指令地址信息再次送入MAR →MAR再将信息送入ROM,ROM通过总线将地址信息送入寄存器A和B →A、B再送入逻辑运算元件,通过ALU运算后将结果通过总线送入寄存器A →A再将结果通过总线送入输出接口 因此,可将CPU模型分为ALU、CONC、MAR、RAM、MDR、IR、PC、ACC等八个模块,其中CONC为CPU模块核心,通过ASM图对CONC进行状态确定,如下所示:

根据ASM状态转换图,可确定状态S0、S1、S2、S3、S4、S5、S6、S7、S8等九个状态,对各部分模块进行具体设计。 实验步骤: 1、ALU设计: LIBRARY ieee; USE ieee.std_logic_1164.ALL; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all; ENTITY alu IS PORT ( clk,add,sub:in std_logic; a:in std_logic_vector(7 downto 0); b:in std_logic_vector(7 downto 0); c:out std_logic_vector(7 downto 0) ); END alu; ARCHITECTURE behave OF alu IS begin process(clk) begin if rising_edge(clk) then if(add='1')then c<=a+b; elsif(sub='1')then c<=a-b; end if; end if; end process; end behave; 2、CONC设计: LIBRARY ieee; USE ieee.std_logic_1164.ALL; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all;

相关文档
最新文档