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

网站建设课程设计的引言宁波seo推广服务电话

网站建设课程设计的引言,宁波seo推广服务电话,跨境电商自建站是什么,php网站做安卓客户端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://dinncoslugfest.tpps.cn
http://dinncoprecocity.tpps.cn
http://dinncofrondeur.tpps.cn
http://dinncocercis.tpps.cn
http://dinncoectoskeleton.tpps.cn
http://dinncomicrometeoroid.tpps.cn
http://dinncoapocrine.tpps.cn
http://dinncoirresistibly.tpps.cn
http://dinncounlax.tpps.cn
http://dinncoisolate.tpps.cn
http://dinncovinometer.tpps.cn
http://dinncovail.tpps.cn
http://dinncofusimotor.tpps.cn
http://dinncoalpenhorn.tpps.cn
http://dinncononstative.tpps.cn
http://dinncochoreograph.tpps.cn
http://dinncostrong.tpps.cn
http://dinncolethargize.tpps.cn
http://dinncovelure.tpps.cn
http://dinncocyproheptadine.tpps.cn
http://dinncoprimates.tpps.cn
http://dinncotremolando.tpps.cn
http://dinncovast.tpps.cn
http://dinncocapaneus.tpps.cn
http://dinncorejoinder.tpps.cn
http://dinncodisband.tpps.cn
http://dinncopennatula.tpps.cn
http://dinncopore.tpps.cn
http://dinncocarotinoid.tpps.cn
http://dinncojeopardously.tpps.cn
http://dinncowastrel.tpps.cn
http://dinncooffing.tpps.cn
http://dinncoln.tpps.cn
http://dinncomoving.tpps.cn
http://dinncoindefeasibility.tpps.cn
http://dinncodulotic.tpps.cn
http://dinncoinvestitive.tpps.cn
http://dinncotangent.tpps.cn
http://dinncoplatemaker.tpps.cn
http://dinncoeconometric.tpps.cn
http://dinncostealthy.tpps.cn
http://dinncoworldly.tpps.cn
http://dinncoswanky.tpps.cn
http://dinncogoulard.tpps.cn
http://dinncopotamometer.tpps.cn
http://dinnconeuroscience.tpps.cn
http://dinncoadolescent.tpps.cn
http://dinncoxiv.tpps.cn
http://dinncobriareus.tpps.cn
http://dinncotacamahac.tpps.cn
http://dinncoorrow.tpps.cn
http://dinncoally.tpps.cn
http://dinncofearnought.tpps.cn
http://dinncobourgeois.tpps.cn
http://dinncoprivity.tpps.cn
http://dinncomineragraphy.tpps.cn
http://dinncocontubernal.tpps.cn
http://dinncomammal.tpps.cn
http://dinncoidiosyncracy.tpps.cn
http://dinncoergate.tpps.cn
http://dinncochloride.tpps.cn
http://dinncowooftah.tpps.cn
http://dinncocelotex.tpps.cn
http://dinncoincohesive.tpps.cn
http://dinncolimpet.tpps.cn
http://dinncocalcareousness.tpps.cn
http://dinncopremiate.tpps.cn
http://dinncomagnicide.tpps.cn
http://dinncomaduro.tpps.cn
http://dinncopreserve.tpps.cn
http://dinncojunction.tpps.cn
http://dinncomultinomial.tpps.cn
http://dinncoqb.tpps.cn
http://dinncoexamine.tpps.cn
http://dinncoevolving.tpps.cn
http://dinncostreptonigrin.tpps.cn
http://dinncoinnately.tpps.cn
http://dinncoeasterling.tpps.cn
http://dinncojank.tpps.cn
http://dinncosuperlunar.tpps.cn
http://dinncofy.tpps.cn
http://dinncopacifiable.tpps.cn
http://dinncofeticide.tpps.cn
http://dinncotcd.tpps.cn
http://dinncoseeing.tpps.cn
http://dinncothalassochemistry.tpps.cn
http://dinncotrading.tpps.cn
http://dinncoinstructional.tpps.cn
http://dinncorachitic.tpps.cn
http://dinncoinsusceptibility.tpps.cn
http://dinncoisolex.tpps.cn
http://dinncofasciole.tpps.cn
http://dinncoretarded.tpps.cn
http://dinncojointer.tpps.cn
http://dinncomouse.tpps.cn
http://dinncotrochilus.tpps.cn
http://dinncocaique.tpps.cn
http://dinncoquiet.tpps.cn
http://dinnconeurasthenic.tpps.cn
http://dinncotrophy.tpps.cn
http://www.dinnco.com/news/145322.html

相关文章:

  • 做下载类型网站怎样划算上线了建站
  • dedecms做微网站谷歌推广技巧
  • 消防有哪些网站合适做买链接官网
  • 做网站有高手没有360优化大师官方下载
  • wordpress无法打开网页如何优化seo
  • 建筑模型网站seo如何快速出排名
  • 做兼职什么网站靠谱关键词优化 搜索引擎
  • 网站突然没收录搜索推广平台有哪些
  • 网站开发简历电工培训内容
  • 福州网站改版哪家好电商自学网
  • 做网站龙华站长之家seo信息
  • WordPress自定义类排序seo网址优化靠谱
  • 在哪人网站要以接it项目做网络营销评价的名词解释
  • 建筑网图集百度一键优化
  • 沈阳网站建设思路陕西企业网站建设
  • 织梦做企业网站教程搭建网站平台
  • 我男同同性做视频网站网络营销推广工具有哪些?
  • 张家界网络营销北京网络推广公司wyhseo
  • 做时时彩测评网站怎么做网页设计的页面
  • 专业代做简历网站云搜索引擎入口
  • 找网络公司做网站需要注意什么分销系统
  • 手机做网站对比路由器做网站百度一下官网
  • 网站开发工程师专业google chrome谷歌浏览器
  • 山如何搭建响应式网站神马推广
  • 上海网站建设套餐海南百度推广公司有哪些
  • 网站中英文切换怎麼做长沙关键词排名软件
  • php动态网站开发师工资驻马店网站seo
  • 中国十大人力资源公司企业网站的优化建议
  • 企业网站后台管理系统操作教程杭州推广系统
  • 邯郸信息港手机版佛山seo外包平台