前言

模型机是本学期电子电路课程的综合设计实验作业,主要利用数字电路逻辑部分的知识完成一个能实现多个指令的模型机,使用Verilog语言实现各个部件并完成最终的部件连接及验证。
        在实现这个模型机的过程中,虽然各个部件的Verilog实现和最后的组成都很顺利的搞定了,但其中有很多问题和疑惑其实是在整个模型机完成后才解决的。回想起整个过程,一开始接触模型机,在对组成和功能实现都不够清晰的情况下确实是很难动手的。因此趁假期开始但还对模型机相关内容比较清楚,记录整个模型机的一部分部件实现和需要注意的细节,希望能对后续完成这项综合实验的同学有所帮助。

目录

一.模型机结构与Verilog语言
二.指令译码器与ALU
三.多路复用器和移位逻辑
四.控制信号发生器
五.时序部件
六.模型机设计(VERILOG)-连接与验证

模型机设计(VERILOG)-模型机结构与Verilog语言

一.Verilog语言

在电子电路课程Quarters中设计电路,主要使用两种方式进行电路设计。一种是通过原理图进行设计(新建原理图,调出各个模块和需要的部件进行端口连接),另一种是使用硬件描述语言设计电路,quarters会根据代码进行电路的生成。硬件描述语言Verilog HDL和VHDL都可使用。本模型机设计使用了较为简单的Verilog语言。

1.模块声明
        使用Verilog语言编写模块需要先进行模块声明,需要注意的是,模块名应该与工程文件名相同。
2.端口声明
        对端口的类型进行声明。类型为输入Input和输出Output。
3.数据类型声明
        直接连接的类型wire,通常声明可以省略,用于组合电路。
        寄存器类型reg,通常用于时序电路。(可能在前期实现部件时,还未学习寄存器。可以暂时只知道寄存器可以保存数据,在需要修改更新数据的时候对数据进行修改即可。)
        常量类型parameter,例parameter A=2'b01表示令A为两位二进制数01。
4.功能描述
        功能描述可以使用assign持续赋值实现,如assign a=b,则任何时刻都有a=b。通常用于组合逻辑的设计。也可以使用过程赋值语句always实现,当敏感信号发生变化时进行赋值。

简单的4选1多路复用器的例子:

module Mux4_1(a,b,c,d,s,f);                //模块声明input [1..0]s;                         //两位的选择信号input a,b,c,d;                         //四个数据选一个输出output f;                              parameter A=2'b00,B=2'b01,C=2'b10,D=2'b11;//都使用直接连接,wire类型,省略wire的数据类型声明//always过程赋值always@(s)                            //敏感信号是选择信号beginif(s==A) f=a;else if(s==B) f=b;else if(s==C) f=c;else f=d;end
endmodule

Verilog编写模块大体上是这样的结构,具体的时序电路和组合电路中的编写之后介绍。语法和一些编写注意点在此时应该在课程中已经有过介绍了。

二.模型机结构

1.整体结构
        模型机的整体结构如下:

可以大致将整个模型机分为三部分
(1)指令存储和取出
        指令在模型机中存储在RAM当中,每一个指令所在的单元都有一个地址编号,例如第一  个单元可以存储一个转移指令,第二个单元可以存储一个运算指令....。而从哪个单元取出指令是由传入RAM的一个地址决定的,如传入00000001,那么下一次读指令就会从第一号单元取出指令。指令地址或数据通过选择器得到,有三个途径:从指令计数器得到指令地址;从寄存器组的S口得到地址;从寄存器的D口得到地址。
        执行转移类指令时,选择器选择通用寄存器的S口或D口的地址数据;其他情况从指令计数器得到地址。
        指令计数器在执行正常指令时是将存储的地址逐个+1传给RAM,也就是将地址1,2,3...传给RAM,顺序执行RAM中存储的指令。执行转移指令时读取总线上的数据,下一个指令的地址就是传入计数器的这个数据。(转移类指令是指将数据在RAM和寄存器或者寄存器之间转移的指令,转移指令是指令地址的转移。例如:当前计数器PC存储的数据是4,执行指令后+1变为5,下一次传给RAM应该取出单元5的指令,但是我们想要在执行单元4的指令之后去执行单元32的指令,那么使用一个转移指令,将PC指令计数器中的数据改写为32,这样下一次取指就是取出单元32中存储的指令并执行。)
(2)指令译码和执行
       
在取出指令后,要对指令进行译码,并将译码结果(即执行哪条指令)传给控制信号发生器,发出所有的控制信号,完成指令的执行和数据传输。
        从总线上读取的指令编码会暂时保存在指令寄存器当中。SM控制读取指令和执行指令的时间,当SM为0时会读取指令,指令译码器得到放在指令寄存器中的指令,并译码传输给控制信号发生器。SM为1时,控制信号会发出对应的控制信号,执行这个指令。
(3)数据通路
    
    通用寄存器组和函数发生器ALU,移位逻辑共同构成数据通路。在控制信号的控制下,通用寄存器可以读出或写入数据,数据可以经过函数发生器和移位逻辑,进行运算和移位等操作。

2.指令表
       
指令编码对应指令,共有16条。编码和指令的对应关系是可以自己设定的,只要整个设计中保持一致就可以,如果同时参考了不同来源的指令编码表,需要注意这些编码表可能是不同的。

        这里R1,R2指的是寄存器,前一个是目的寄存器(D),后一个是源寄存器(S)。例如:MOV R1 R2指将R2的数据写入R1,ADD R1 R2指将R1和R2的数据相加写入R1。
        需要注意的是转移指令JZ,JC,这两个指令的执行成功是有条件的,结果为0或有进位是指上一次运算结果为0或有进位,如果符合条件,那么指令计数器指令地址会变成转移到的地址(address),否则指令计数器正常+1,RAM顺序读出下一单元的指令。

3.控制信号 
        根据每一条指令需要的控制信号,控制信号发生器会发出一些控制信号,使指令正确执行。

        详细的指令和控制信号的关系留到后面单独写一篇。

模型机设计(VERILOG)-模型机结构与Verilog语言相关推荐

  1. 服务器网页版上位机设计 - 03 - 上位机 (完结)

    服务器网页版上位机设计 03 上位机 (完结) 本设计主要涉及三个方面: 服务器,网页版,上位机. 书接上回,介绍完网页页面的设计,现在来说说上位机的功能设计. 也就是js文件的内容编写. 1.获取h ...

  2. 计算机组成原理课程设计:基于FPGA的Verilog模型机设计。

    理解简单模型机的工作原理,理解程序计数器,算数逻辑运算单元,控制单元,的工作原理.学会设计以及使用指令完成一定的功能,并将程序写入FPGA开发板并结合led灯数码管予以显示. 通过模型机设计可以掌握用 ...

  3. 湖南大学_数电实验_模型机设计_CPU设计_verilog_课程实验报告

    本学期的数电课程实验就是模型机设计,由四次小实验构成,最后一次实验验收要求使用quartus做出一个模型机. 该实验的重要性:该实验的核心在于基于实验指导书设计CPU,从而帮我们理解CPU的工作原理. ...

  4. 计算机系统 cpu课程,片上计算机系统课程设计CPU模型机设计.docx

    片上计算机系统课程设计CPU模型机设计.docx 哈尔滨理工大学 软件学院 课程设计报告 课 题 班 专 学 学 程片上计算机系统 目CPU模型机设计 级集成14-2班 业集成电路设计与集成系统 生 ...

  5. 计算机组成原理复杂机实验总结,计算机组成原理复杂模型机设计_课程设计报告.doc...

    成绩: 计算机组成原理课程设计实验报告 复杂模型机设计 姓 名 _ 曾凯杨 班 级 _ 计算机102 学 号 _ 40 实验地点 _ 计算机实验室四楼 实验时间 _ 3月6日 指导教师 刘晶 概述 这 ...

  6. 计算机组成原理复杂模型机设计思路,计算机组成原理实验报告基本模型机和复杂模型机的设计...

    计算机组成原理实验报告基本模型机和复杂模型机的设计 基本模型机设计一设计目的1在掌握部件单元电路实验的基础上,进一步将其组成系统构造一台稍微复杂的模型计算机:2为其定义5条机器指令,并编写相应的微程序 ...

  7. 样机模型尺寸怎么改_土耳其五代机全尺寸样机模型首次亮相巴黎航展,这不是玩票,是一架认真设计的五代机!...

    2019年6月17日,第五十三届巴黎航展迎来了本届航展上的重量级明星展品--土耳其航空航天公司研制的土耳其第五代战斗机TF-X,虽然本次展出的仅为一比一的全尺寸样机模型,但该模型细节清晰十分逼真,与真 ...

  8. 设计一个模型计算机的原理,计算机组成原理——基本模型机设计与实现

    一.实验目的与要求 (一).实验目的 1.在掌握部件单元电路实验的基础上,将微程序控制器模块与运算器模块.存储器模块组合成一起,组成一台基本模型计算机. 2.用微程序控制器来控制模型机的数据通道. 3 ...

  9. 计算机模型机设计实验报告,基本模型机设计与实现 实验报告

    <基本模型机设计与实现 实验报告>由会员分享,可在线阅读,更多相关<基本模型机设计与实现 实验报告(3页珍藏版)>请在人人文库网上搜索. 1.____学院____专业_____ ...

最新文章

  1. Ubuntu(Linux) 下 unzip 命令使用详解
  2. 错误602,未能在sysindexes中找到数据库 的解决办法
  3. capture one 20 pro中文版
  4. Redis进阶 - Redis主从工作原理详解
  5. html语言中括号怎么打,HTML语言中括号(尖括号)的字符编码
  6. python数据结构算法 北京大学_北京大学公开课《数据结构与算法Python版》
  7. 函数式编程 -- 测试题集
  8. 自动改变文字大小和颜色的javascript效果
  9. 自学it18大数据笔记-第二阶段Hive-day4——会持续更新……
  10. IBM X3650优盘启动
  11. 专题地图符号设计与构图
  12. 木门代理商利用微信营销让自己的事业更上一层楼
  13. 聊聊旷厂黑科技 | 更真切感受影像世界的美好,旷视实时双超AI算法还原你的“夏日回忆”...
  14. 网上车管所办理驾驶证补证换证
  15. 计算机进入安全模式的原因,电脑只能进入安全模式的原因及处理方法
  16. Android AdMob教程
  17. 技能高考计算机专业考什么,2016年技能高考计算机专业考试总结.pdf
  18. Xilinx HLS 学习笔记1
  19. python中len是什么函数_总结Python中len()函数的使用实例
  20. python的turtle的等边等角三角形的经典简洁画法

热门文章

  1. 一文看懂推荐系统:排序01:多目标模型
  2. 计算机集中控制系统结构上和DCS基本一致,集散控制系统与现场总线试题习题及答案全解.doc...
  3. logo设计的经典色彩搭配
  4. android 通知 锁屏,NotificationCompat 的使用(锁屏通知栏显示)
  5. 自适应滤波算法(LMS算法)
  6. 实用软件分享|盘点那些你不知道的,超好用配音神器,短视频制作必备
  7. 使用百度UNIT配置智能对话机器人的注意事项,开发者必看!
  8. 【project1】对数据读取处理和写入
  9. Linux/CentOS7搭建泰拉瑞亚原版/mod服务器教程
  10. Memblaze与南大通用签署战略合作,共推闪存数据库一体机方案