12.两段式描述 对图写代码
Module fsm2(out,comp_in,clk,clr)
Input comp_in,clk,clr;
Output out;
Reg[2:0] out;
Reg[2:0] CS, NS;
Parameter stateA=3’b000, stateB=3’b001, stateC=3’b010, stateD=3’b100;
Always@(poseedge clk or negedge clr)
Begin If(!clr)
CS <=stateA;
Else
CS<=NS;
End
always@(CS or comp_in)
Begin NS=3’bx;
case(CS)
stateA:
begin
if(!comp_in)
begin
CS = stateA;
Out = 3’b001;
End
Else
Begin
CS = stateB;
Out = 3’b010;
End
End
stateB:
begin
if(!comp_in)
begin
CS = stateB;
Out = 3’b010;
End
Else
Begin
CS = stateC;
Out = 3’b100;
End
End
stateC:
begin
if(!comp_in)
begin
CS = stateC;
Out = 3’b100;
End
Else
Begin
CS = stateD;
Out = 3’b111;
End
End
stateD:
begin
if(!comp_in)
begin
CS = stateD;
Out = 3’b111;
End
Else
Begin
CS = stateA;
Out = 3’b001;
End
End
Endcase
End
Endmodule
13.逻辑分析仪 调试
与采样信号多少有关
与触发级数多少有关
采样时钟选用电路中最快的全局时钟
14.设计CPU 模块、位宽、指令(描述) 外设接口的引入
在时序电路用使用非阻塞赋值<=
在组合电路使用阻塞赋值=
指令格式声明:
III XXX YYY,
III 表示指令, XXX 表示Rx寄存器, YYY 表示Ry寄存器,
Miv指令后跟随输入数据是16位立即数D。
CPU 位宽:16 位
指令格式声明:
III XXX YYY,
III 表示指令,
XXX 表示 Rx 寄存器,
YYY 表示 Ry 寄存器,
Miv 指令后跟随输入数据是 16 位立即数 D。
指令编码表:
000: mv Rx,Ry // Rx <- [Ry]
001: mvi Rx,#D // Rx <- D
010: add Rx, Ry // Rx <- [Rx] + [Ry]
011: sub Rx, Ry // Rx <- [Rx] - [Ry]
port:
DIN, BusWires, Resetn, Clock, Run, Done
block:
alu(addsub), controler, regn, mux, upcount, dec3to8
增加外设:
七段码管 seg7_scroll
拨键开关 regne
个人收获和理解:
1、学会模块调用方法
一个模块就像一个黑盒子,有输入,有输出,这之中的过程是封装起来的,合理的调用模块,
配合时钟,就可以完成 CPU 的设计。
2、设计思路
首先确定需要那些模块,模块完成什么功能,然后确定模块的输入输出,以及输入输出的连
接,那些是需要存储的,那些是时序模块,那些是逻辑模块,确定后,通过时钟和一些信号量对
他们的行为进行控制。
15.汇编解释
指令编码表:
000: mv Rx,Ry // Rx <- [Ry]
001: mvi Rx,#D // Rx <- D
010: add Rx, Ry // Rx <- [Rx] + [Ry]
011: sub Rx, Ry // Rx <- [Rx] - [Ry]
100: ld Rx,[Ry] : Rx <- [Ry]
101: st Rx,[Ry] : Rx -> [Ry]
110: mvnz Rx,Ry : if G != 0, Rx <- Ry
1.数制转换
3AB.11 二进制1110101011.00010001 十进制939.06640625
111.101二进制转十进制 7.625
215十进制转二进制 11010111
3AB 十六进制转二进制 1110101011
各进制缩写(B D H)
HEX表示十六进制
DEC表示十进制
BIN表示二进制
逻辑代数化简
真值表
表达式
逻辑电路
卡诺图
波形图
RISC、ClSC区别、分别是什么
结构特征 | CISC | RISC |
指令系统规模与指令格式 | 指令系统庞大,指令格式可变 | 指令系统小,指令格式固定,大部分以寄存器为基础 |
寻址方式 | 12~24种 | 限制3~5种 |
通用寄存器与高速缓存设计 | 通用寄存器9~24个,基本上使用合一的指令与数据高速缓存 | 基本上使用分开的指令与数据高速缓存,通用寄存器个数多 |
时钟频率与CPI | 钟频较低 | 钟频较高 |
CPU控制 | 大所属使用控制存储器(ROM)实现编码控制,也有使用硬连线控制 | 大多数不用控制存储器,而用硬连线控制 |