处理器与MIPS简单介绍&Verilog硬件描述语言

看了CSAPP之后不得不感慨能设计出计算机的人真的很伟大,最近刚刚把链接部分看完,想多了解了解就搜了点资料。

架构与指令集

IBM为了让自己的一系列计算机能使用相同的软件,免去复杂编写软件的痛苦,在他的System/360计算机中引入了指令集架构(ISA)的概念,将编程所需要了解的硬件信息从硬件系统中抽象出来,这样软件人员就可以面向ISA进行编程。

从软件人员的角度来看,ISA包括一套指令集和一些寄存器,知道他们就可以编写程序了。

与ISA对应的一个概念是微架构,后者是前者的一个实现。

CISC与RISC

从大的方面,根据ISA的不同可以将计算机分成两类:复杂指令集计算机(CISC)和精简指令集计算机(RISC)。她们的区别主要是,CISC的每条指令对应0、1编码串长度不一,而RISC的每条指令对应的0、1编码串长度是固定的。

几种重要的ISA

X86(CISC)

ARM(RISC)

SPARC(RISC)

POWER(RISC)

MIPS(RISC)

MIPS的简单介绍

MIPS的含义是无内锁流水线微处理器

设计理念:使用相对简单的指令,结合优秀的编译器以及采用流水线执行指令的硬件,就可以用更少的晶元面积生产更快的处理器。

寄存器

RISC的一大特点是大量使用寄存器,这是因为寄存器的存取可以在一个时钟周期内完成,同时也简化了寻址方式。MIPS32的指令中除加载/存储指令外,都是使用寄存器或立即数作为操作数。

MIPS的寄存器分为两类:通用寄存器,特殊寄存器

通用寄存器:
MIPS32架构定义了32个通用寄存器,使用$0、$1~$31表示,都是32位,其中$0一般用作常量0。

这里虽然在硬件上没有强制指定寄存器的使用规则,但是在实习使用中每个寄存器的用法都遵循一系列约定,这里约定用法就不过多介绍了。

指令格式

MIPS32架构的所有指令都是32位

有三种指令格式(其中op是指令码,func是功能码)

 (1)R类型:具体操作由op、func结合指定,rs和rt是源寄存器的编号,rd是目的寄存器的编号。sa只有在移位指令中使用,用来指定移位位数。

(2)I类型:具体操作由op指定,指令的低16位是立即数,运算时要扩展至32位,作为源操作数参与运算

(3)J类型:具体操作由op指定,指令的低26位是字地址,此指令一般是跳转指令。

指令集

1、逻辑操作指令:and、andi、or、ori、xor、xori、nor、lui

2、移位操作指令:sll、sllv、sra、srav、srl、srlv

3、移动操作指令:movn、movz、mfhi、mthi、mflo、mtlo

4、算术操作指令:实现加法、减法、比较、乘法、乘累加、除法

5、转移指令:jr、jalr、j、jal、b、bal、beq、bgez、bgzal、bgtz、blez、bltz、vltzal、bne

6、加载存储指令:lb、lbu、lh、lhu、ll、lw、lwl、lwr、sb、sc、sh、sw、swl、swr

7、协处理器访问指令:mtc0、mfc0

8、异常相关指令:包括十二条自陷指令(teq、tge、tgeu、tlt、tltu、tne、teqi、tgei、tgeiu、tlti、tltiu、tnei),系统调用指令(syscall),异常返回指令(eret)

9、其余指令:nop、ssnop、sync、pref

寻址方式

寄存器寻址、立即数寻址、寄存器相对寻址、PC相对寻址

Verilog HDL 硬件描述语言

设计流程

Verilog 的设计流程,一般包括以下几个步骤:

需求分析

工作人员需要对用户提出的功能要求进行分析理解,做出电路系统的整体规划,形成详细的技术指标,确定初步方案。例如,要设计一个电子屏,需要考虑供电方式、工作频率、产品体积、成本、功耗等,电路实现采用 ASIC 还是选用 FPGA/CPLD 器件等。

功能划分

正确地分析了用户的电路需求后,就可以进行逻辑功能的总体设计,设计整个电路的功能、接口和总体结构,考虑功能模块的划分和设计思路,各子模块的接口和时序(包括接口时序和内部信号的时序)等,向项目组成员合理分配子模块设计任务。

文本描述

可以用任意的文本编辑器,也可以用专用的 HDL 编辑环境,对所需求的数字电路进行设计建模,保存为 .v 文件。

功能仿真(前仿真)

对建模文件进行编译,对模型电路进行功能上的仿真验证,查找设计的错误并修正。

此时的仿真验证并没有考虑到信号的延迟等一些 timing 因素,只是验证逻辑上的正确性。

逻辑综合

综合(synthesize),就是在标准单元库和特定的设计约束的基础上,将设计的高层次描述(Verilog 建模)转换为门级网表的过程。逻辑综合的目的是产生物理电路门级结构,并在逻辑、时序上进行一定程度的优化,寻求逻辑、面积、功耗的平衡,增强电路的可测试性。

但不是所有的 Verilog 语句都是可以综合成逻辑单元的,例如时延语句。

布局布线

根据逻辑综合出的网表与约束文件,利用厂家提供的各种基本标准单元库,对门级电路进行布局布线。至此,已经将 Verilog 设计的数字电路,设计成由标准单元库组成的数字电路。 

时序仿真(后仿真)

布局布线后,电路模型中已经包含了时延信息。利用在布局布线中获得的精确参数,用仿真软件验证电路的时序。单元器件的不同、布局布线方案都会给电路的时序造成影响,严重时会出现错误。出错后可能就需要重新修改 RTL(寄存器传输级描述,即 Verilog 初版描述),重复后面的步骤。这样的过程可能反复多次,直至错误完全排除。

FPGA/CPLD 下载或 ASIC 制造工艺生产​​​​​​​

完成上面所有步骤后,就可以通过开发工具将设计的数字电路目标文件下载到 FPGA/CPLD 芯片中,然后在电路板上进行调试、验证。

如果要在 ASIC 上实现,则需要制造芯片。一般芯片制造时,也需要先在 FPGA 板卡上进行逻辑功能的验证。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值