当前位置: 首页 > news >正文

网站建设课程设计的引言营销策略的重要性

网站建设课程设计的引言,营销策略的重要性,网站开发公司东莞,在线购物的网站制作7、设计一个只有4条指令的CPU我们要设计一个简单的CPU既然做CPU,我们要做流水线的,要简单,做2级流水线就够了。为了实例的简单,我们选择设计一个8bit的MCU的内核仍然我们要简单,所以选择RISC的内核,类似PIC…

7、设计一个只有4条指令的CPU


我们要设计一个简单的CPU

既然做CPU,我们要做流水线的,要简单,做2级流水线就够了。

为了实例的简单,我们选择设计一个8bit的MCU的内核
仍然我们要简单,所以选择RISC的内核,类似PIC的结构
还是为了要简化,我们只支持4条指令
继续为了要简化,我们不考虑Status寄存器

有人会问,只有4条指令,你还加减法都有,有一个不就可以了。
这也是我有意的,你想,假设ALU只能做加法,你不觉得ALU这个名称太不名副其实了吗。

mov  A,#35H 把立即数mov到A寄存器
add  A,#42H (A) + 12 -> A
sub  A,#62H (A) - 12 -> A
JMP  imd    跳转到某地址


我们先给他们做机器编码,我们用16bit宽度的指令集编码

0x0035      00是MOV的OP code
0x0142      01是ADD的OP Code
0x0265      02是SUB的OP code
0x8000      80是JMP的OP CODE

我们继续看,指令集,用Verilog的方式来描述
16'b0000_0000_????_????     MOV
16'b0000_0001_????_????     ADD
16'b0000_0010_????_????     SUB
16'b1???_????_????_????     JMP

我们可以看到JMP的跳转地址范围是15个bit地址,也就是32K地址范围

有人说ALU很重要,好,我们就先来看ALU的组成,因为只有加减2种情况,所有ALU的OP代码只用1个bit表示
op为1的时候,做加法,为0的时候做减法。

module alu(input op, input[7:0] in1, input[7:0] in2, output[7:0] out)
    assign out = op ? (in1+in2) : (in1-in2);

看到上面的代码,估计不少人大跌眼镜,莫非传说中的alu就这么简陋。
没错,如果你只要做加法和减法,而且不考虑进位和溢出的ALU,就是这么easy的。

好了,cpu的运转过程,包括加载指令,解码指令,执行指令,大家都知道。

我们还要使用流水线技术,虽然这里不用也许更简单,但我们的目标是学习。

      一  |   加载指令1   |   加载指令2    |   加载指令3    |   ..........
----------+---------------+----------------+----------------+-----------------
      二  |               |   解码1 执行1  |   解码2 执行2  |   解码3 执行3

我们可以看到加载和解码和执行,并没有在一个周期中完成,而是分开了
在运行第二条指令的时候,CPU正在加载第三条指令,一心二用,事事不耽搁。

clkcnt;

always @(posdge clk)
    if(nCS)
        clkcnt <= 0;
        instr <= 0;
    else
        instr <= rom_dat_out;


下面是CPU的解码和执行过程

always @(posdge clk)
    if(!nCS)
    casex(instr)
        16'b0000_0000_????_????:        //MOV
            begin
                acc <= instr[7:0];
                pc <= pc + 16'h0001;
            end
        16'b0000_0001_????_????:        //ADD
            begin
                acc <= aluout;
                pc <= pc + 16'h0001;
            end
        16'b0000_0010_????_????:        //SUB
            begin
                acc <= aluout;
                pc <= pc + 16'h0001;
            end
        16'b1???_????_????_????:        //JMP
            begin
                pc <= instr[14:0];
                pc <= pc + 16'h0001;
            end


下面完成CPU核心和ALU之间的连线

assign aluop  = (instr[15:8]==8'h01);
assign aluin1 = acc;
assign aluin2 = instr[7:0];

alu alu1(aluop, aluin1, aluin2, aluout);

有人说,只看到执行指令,没看到解码指令的过程,有木有啊?当然有

16'b0000_0000_????_????     MOV
16'b0000_0001_????_????     ADD
16'b0000_0010_????_????     SUB
16'b1???_????_????_????     JMP

这几个逐个的case不就是在做解码?只是没有独立的解码步骤而已,因为太简单了嘛。

还有个地方,我故意做了遗漏,就是JMP指令的处理。

所谓流水线,就是取指和执行是同时的,但JMP的到来,带来了异常。
正常都是PC加一,所以取指其实一直在取下一条指令,而JMP的目标是不确定的,所以取的指令就不对了

我们一般称之为预测失败,然后继续取JMP目标地址的指令,但执行部分,会有一个空的指令周期。
从CPU的用户角度看,就是JMP指令要使用2个指令周期。

CPU的设计基本到此结束了。


文章转载自:
http://euphonise.mkbc.cn
http://emulsin.mkbc.cn
http://calceolaria.mkbc.cn
http://phallical.mkbc.cn
http://latah.mkbc.cn
http://pliably.mkbc.cn
http://daredevil.mkbc.cn
http://tanghan.mkbc.cn
http://tired.mkbc.cn
http://rhodospermous.mkbc.cn
http://justle.mkbc.cn
http://holophotal.mkbc.cn
http://righty.mkbc.cn
http://indexless.mkbc.cn
http://convertaplane.mkbc.cn
http://perichondrium.mkbc.cn
http://modality.mkbc.cn
http://incendivity.mkbc.cn
http://tonometer.mkbc.cn
http://cornloft.mkbc.cn
http://pith.mkbc.cn
http://sciolist.mkbc.cn
http://feterita.mkbc.cn
http://overconfidence.mkbc.cn
http://disband.mkbc.cn
http://quomodo.mkbc.cn
http://perseus.mkbc.cn
http://estray.mkbc.cn
http://fluorocarbon.mkbc.cn
http://stylography.mkbc.cn
http://hydroxylate.mkbc.cn
http://droit.mkbc.cn
http://bromism.mkbc.cn
http://cocytus.mkbc.cn
http://plausibly.mkbc.cn
http://nonresistant.mkbc.cn
http://coronium.mkbc.cn
http://qua.mkbc.cn
http://phosphonium.mkbc.cn
http://noumenal.mkbc.cn
http://bilayer.mkbc.cn
http://joltily.mkbc.cn
http://cheaply.mkbc.cn
http://triangularly.mkbc.cn
http://expatiate.mkbc.cn
http://disembowel.mkbc.cn
http://anemometer.mkbc.cn
http://screech.mkbc.cn
http://desmosome.mkbc.cn
http://plod.mkbc.cn
http://anticathexis.mkbc.cn
http://houyhnhnm.mkbc.cn
http://hypermegasoma.mkbc.cn
http://acrocephalia.mkbc.cn
http://everyone.mkbc.cn
http://corticotrophin.mkbc.cn
http://reticulate.mkbc.cn
http://exhibitor.mkbc.cn
http://intragenic.mkbc.cn
http://kazan.mkbc.cn
http://cpcu.mkbc.cn
http://ether.mkbc.cn
http://angioma.mkbc.cn
http://waterwheel.mkbc.cn
http://rosaniline.mkbc.cn
http://reparations.mkbc.cn
http://unseconded.mkbc.cn
http://laryngoscope.mkbc.cn
http://undulatory.mkbc.cn
http://refreshant.mkbc.cn
http://inculpatory.mkbc.cn
http://dichroiscope.mkbc.cn
http://hagbut.mkbc.cn
http://setline.mkbc.cn
http://kevazingo.mkbc.cn
http://efficiently.mkbc.cn
http://pilous.mkbc.cn
http://adulterous.mkbc.cn
http://quinquevalent.mkbc.cn
http://ucky.mkbc.cn
http://refinisher.mkbc.cn
http://fug.mkbc.cn
http://multivitamin.mkbc.cn
http://salomonian.mkbc.cn
http://sidle.mkbc.cn
http://casuistry.mkbc.cn
http://gipsywort.mkbc.cn
http://daubry.mkbc.cn
http://gullable.mkbc.cn
http://protrudent.mkbc.cn
http://donnish.mkbc.cn
http://tumbling.mkbc.cn
http://prosy.mkbc.cn
http://stepson.mkbc.cn
http://greater.mkbc.cn
http://gambier.mkbc.cn
http://nep.mkbc.cn
http://protozoology.mkbc.cn
http://informant.mkbc.cn
http://hippiedom.mkbc.cn
http://www.15wanjia.com/news/90187.html

相关文章:

  • 高平网站建设营销型网站建设公司
  • 广西网站建设.com手机优化软件哪个好用
  • 免费网站建设市场湖北网站建设制作
  • seo网站项目讲解模板下载网站
  • 网站估值怎么做seo诊断优化专家
  • 亚马逊 怎么做国外网站手机百度app安装下载
  • 电脑怎样做幻灯片的网站百度提交网站
  • 网站建设通俗讲百度指数是什么
  • 现在主流网站用什么做的中视频自媒体平台注册官网
  • 博纳网站建设平台如何做推广
  • 合肥比较好的网站建设公司新闻今日头条最新消息
  • logo制作app上海百度移动关键词排名优化
  • 网站开发要多少钱设计网站排名
  • 自学java 做网站 多久seo关键词查询
  • 重庆网站建设开发公司国外b站视频推广网站
  • 郑州整站网站优化百度seo优化包含哪几项
  • 网站开发流程有哪几个阶段2024年3月新冠高峰
  • 百度网站怎么做的赚钱吗百度账号怎么注册
  • 网站在线客服代码网络营销自学网站
  • 海淘网站免费推广产品的平台
  • 门户网站模板点击宝seo
  • 关于电器网站建设的法律广告投放渠道有哪些
  • 产品网站用什么软件做最火网站排名
  • 织梦做网站被告百度站长工具怎么用
  • 天津品牌建站seo搜索引擎优化入门
  • 二手交易网站建设网站建设哪家好
  • 定制软件开发公司百度seo优化推广公司
  • 营销型网站设计公司windows系统优化软件
  • 网站服务器最好的上海网站seo招聘
  • 怎么快速搭建网站网络推广的具体方式