基于vhdl的8位模型计算机的设计与实现学士学位论文(编辑修改稿)内容摘要:

实现 : ( 1) 建立文件。 单击 ―File‖菜单下的 ―New‖命令或者使用快捷键 Ctrl+N,弹出 ―New‖对话框。 在 ―Device Design Files‖页面下双击 ―VHDL File‖选项(或选中该项后单击 ―OK‖按钮)后建立新文件。 理工大学学士学位论文 7 ( 2) 输入程序。 在程序编辑区内编写程序。 ( 3) 保存文件。 单击保存文件按钮,弹出对话框将输入的 VHDL 语言程序保存为vhd 文件 ,注意后缀名是 .vhd,名字与实体名相同,单击 ―保存 ‖按钮即可保存文件。 ( 4) 编译工程。 单击水平工具条上的编译按钮或选择菜单 Processing 下的 Start Complilation,开始编译,并伴随着进度不断地变化,编译完成后出现信息窗口。 如果编译过程出现错误,要将错误改正,保存后再次编译,直到编译无错误为止。 设计仿真的目的就是在软件环境下,验证电路的行为和思想是否一致。 仿真分为功能仿真和时序仿真。 功能仿真是在设计输入之后,综合和布局布线之前的仿真,不考虑电路的逻辑和门 电路的时间延时,着重考虑电路在理想环境下的行为和预期设计效果的一致性。 时序仿真是在综合、布局布线后,也即电路已经映射到特定的工艺环境后,考虑器件延时的情况下对布局布线的网络表文件进行的一种仿真,其中器件延时信息通过反向标注时序延时信息实现的。 ( 1) 仿真文件的生成。 1) 建立矢量波形文件。 单击 ―File‖菜单下的 ―New‖命令,在弹出的 ―New‖对话框中选择 ―Other Files‖页面,选择 ―Vector Waveform File‖后单击 ―OK‖按钮,弹出矢量波形编辑窗口。 2) 添加引脚或节点。 左键双击 ―Name‖下方空白处,弹出 ―Insert Node or Bus‖对话框。 单击对话框 ―Node Finder‖按钮后,弹出 ―Node Finder‖对话框,在 ―Filter‖后面的方框里选择 ―Pin: all‖,然后单击 ―List‖按钮,在 ―Node Found‖栏中列出了设计中的所有的输入 /输出引脚号,选择需要的引脚。 3) 编辑输入信号并保存文件。 ( 2) 功能仿真。 功能仿真是忽略延时的仿真,是理想的仿真。 接下来我们一起来进行设计的功能仿真。 首先单击 ―Assignments‖菜单 下的 ―Settings‖命令,单击左侧标题栏中的 ―Simulator‖选项后,在右侧的 ―Simulation mode‖的下拉菜单中选择 ―Functional‖选项即可(软件默认的是 ―Timing‖选项),单击 ―OK‖按钮后完成设置。 后需要生成功能仿真网络表。 单击 ―Processing‖菜单下的 ―Generate Functional Netlist‖命令后会自动创建功能仿真网络表。 理工大学学士学位论文 8 本课题基于 Quartus II 的设计流程 确 定 整 体 设 计 要 求设 计 整 机 逻 辑 框 图设 计 指 令 系 统设 计 指 令 执 行 流 程设 计 微 操 作 控 制 信 号顶 层 设 计 原 理 图编 写 v h d l源 程 序调 试 仿 真 图 8 位模型计算机的设计流程 理工大学学士学位论文 9 3 基于 VHDL8 位模型机的原理与设计 模型计算机的原理 所谓模型计算机就是一计算机实际结构为基础,将其简化,能对输入的信息进行处理运算,更便于分析设计。 随着微电子技术的进步,现代计算机主要由运算器,控制器,存储器,输入设备,输出设备五大部分组成。 计算机能完成用户要求是按照提前设计好的指令进行的,指令是计算机执行具体操作的命令。 一条指令就是机器语言的一个语句,用它来说明机器硬件应完成什么样的基本操作。 在本课题中把模型机划分了十个模块分别是 存储器,时钟信号源,节拍发生器,操作控制器,程序计数器,地址寄存器, 累加器,算术逻辑单元,指令寄存器和指令译码器。 让预设指令在这些部件中按顺序执行达到预期目的。 计算机执行一条指令分为三步进行: 第 1 步是取指令,将要执行的指令从内存取到控制器中; 第 2 步是分析指令,对所取的指令通过译码器进行分析判断,判断该指令要完成的操作; 第 3 步是执行指令,根据分析结果向各部件发出操作信息,执行该指令相应的操作功能。 模型机的总体设计要求 要设计一个模型计算机,它由十个功能部件组成,具体是存储器,时钟信号源,节拍发生器,操作控制器,程序计数器,地址寄存器,累加器,算术逻辑 单元,指令寄存器和指令译码器。 设计要求为: 1)总线结构:单总线,数据总线位数 8 位,地址总线 3 位 2)存储器:存储容量 5*8 位 3)操作控制器:实现指令操作码所需的操作控制信号 4)运算器:一个累加器,实现加法操作 5)指令系统规模: 3 指令 理工大学学士学位论文 10 模型机逻辑框图的设计 图 8 位模型机逻辑框图 模型机的 指令系统设计 模型计算机可完成两个立即数相加,并将相加结果送入累加器。 指令系统规模为 3条指令,为了方便描述以“ 6+0”为例,设计 3 条 指令,具体如下: 1) LD A , 6 ; A←6 ,把 6 送入累加器 A,操作码是 00111110; 2) ADD A, 0 ; A← A+0,把 A 中 6 与 0 相加,结果送入累加器 A,操作码是 11000110; 3) HALT ;运算完毕,停机,操作码是 01110110; 指 令 寄 存 器( I R ) 和 指令 译 码 器累 加 器( A )程 序 计 数 器( P C )存 储 器( M )操 作 控 制 器地 址 寄 存 器( M A R )数 据 寄 存 器( D R )节 拍 发 生 器时 钟 信 号 源内 部 数 据 总 线d b u s外 部 数 据 总 线D B U S地 址 线A B U S控 制 信 号E S U MI S U MA L UC L KI I RE AI AI P CI M A RE D RI D R„ „ „..理工大学学士学位论文 11 模型机的指令执行流程设计 根据模型机的结构框图,可设计指令系统中每条指令的执行流程。 一条指令从主存中取出到执行完,需要若干个机器周期,任何指令的第一个机器周期都是“取指令周期”,一条指令一共需要几个机器周期,取决于指 令在机内实现的复杂程度。 本模型机的指令流程如下: 1)第一条指令 LD A , 6 ;将立即数 6 送入 A。 T0: (PC)→MAR→ABUS,IMAR=0 T1: DBUS→DR,IDR=1 T2: (PC)+1→PC,IPC=1 (DR)→IR,IIR=0 , LD=1 T3: (PC)→MAR→ABUS,IMAR=0 T4: DBUS→DR,IDR=1 T5: (PC)+1→PC,IPC=1 T6: dbus→A,I A=0 T7:空 2)第二条指令 ADD A, 0 ;把 A 中 6 与立即数 0 相加,结果 6 送入累加器 A。 T0: (PC)→MAR→ABUS,IMAR=0 T1: DBUS→DR,IDR=1 T2: (PC)+1→PC,IPC=1 (DR)→IR,IIR=0 , ADD=1 T3: (PC)→MAR→ABUS,IMAR=0 T4: DBUS→DR,IDR=1 T5: (PC)+1→PC,IPC=1 A+0→ SR,ISUM=0 T6: SR→ dbus, ESUM=0 dbus→A,IA=0 ,EDR=1 T7:空 理工大学学士学位论文 12 3)第三条指令 HALT ;运算完毕,停机。 T0: (PC)→MAR→ABUS,IMAR=0 T1: DBUS→DR,IDR=1 T2: (PC)+1→PC,IPC=1 (DR)→IR,IIR=0 , HALT=1 基于 VHDL8 位模型机各模块的设计与实现 算术逻辑单元 ALU模 块 说明:此模块用于实现加法运算 图 算术逻辑运算单元程序流程图 开 始Isu m = 0两 数 相 加输 出 结 果E su m = 0结 束YYNN理工大学学士学位论文 13 说明: ALU 功能部件,有两个控制信号,分别是加法运算控制信号 ISUM 和输出控制信号 ESUM,当 ISUM=0 时,在 CLK 作用下将两数相加,当输出控制命令 ESUM=0时,将相加结果读入到内部数据总线上。 LIBRARY IEEE。 USE。 USE。 USE。 ENTITY ALU IS PORT(AC,DR:IN STD_LOGIC_VECTOR(7 DOWNTO 0)。 ISUM:IN STD_LOGIC。 ESUM:IN STD_LOGIC。 ALU_OUT:OUT STD_LOGIC_VECTOR(7 DOWNTO 0)。 )。 END ALU。 ARCHITECTURE A OF ALU IS SIGNAL:ALU_TEMP:STD_LOGIC_VECTOR(7 DOWNTO 0)。 BEGIN ALU_TEMP=AC+DR WHEN ISUM =’0’。 ALU_OUT=ALU_TEMP。 END A。 理工大学学士学位论文 14 图 ALU 功能仿真 波形分析:两个输入信号 AC, DR,一个输出信号 ALU_OUT 和两个控制命令信号ISUM,ESUM。 在仿真设置中将 AC 值设为从 00000000 逐一递增到 11111111,而 DR值为了方便观察设为 00000000,两个控制命令信号全部设为 0 即即时相加即时输出,运行后如图所示,输出结果也是从 00000000 到 11111111 由于截图大小有限只截到00001000,功能仿真成功。 累加 器模块 说明:实现 8 位模型机的累加器 理工大学学士学位论文 15 开 始C lk (时 钟 )发 生 且为 上 升 沿Ia = 0YR e g q = d a ta _ inYE a = 0D a ta _ o u t= re g qY结 束NNN 图 累加器 ACC 程序流程图 说明:设置一个中间信号 REGQ,输入信号是 DATA_IN,输出信号时 DATA_OUT,两个控制信号分别是 IA 输入控制信号和 EA输出控制信号。 当输入控制信号 IA=0 时,将输入数据 DATA_IN 存入到 REGQ 中,当输出控制信号 EA=0 是将以存到 REGQ 中的输入数据赋与输出数据 DATA_OUT 输出。 LIBRARY IEEE。 USE。 理工大学学士学位论文 16 ENTITY ACC IS PORT(DATA_IN:IN STD_LOGIC_VECTOR(7 DOWNTO 0)。 IA:IN STD_LOGIC。 EA:IN STD_LOGIC。 CLK:IN STD_LOGIC。 DATA_OUT:OUT STD_LOGIC_VECTOR(7 DOWNTO 0))。 END ACC。 ARCHITECTURE A OF ACC IS SIGNAL REGQ:STD_LOGIC_VECTOR(7 DOWNTO 0)。 BEGIN PROCESS(IA,EA,CLK) BEGIN IF(CLK’EVENT AND CLK=’1’) THEN IF(IA=39。 039。 ) THEN REGQ=DATA_IN。 END IF。 END IF。 END PROCESS。 DATA_OUT= REGQ WHEN EA=39。 039。 ELSE 39。 39。 ZZZZZZZZ39。 39。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。