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

网站建设课程设计的引言黑河seo

网站建设课程设计的引言,黑河seo,wordpress怎样做单页网站,网页转app制作工具 安卓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://dinncounseconded.wbqt.cn
http://dinncofracturation.wbqt.cn
http://dinncocrept.wbqt.cn
http://dinncotinglass.wbqt.cn
http://dinncotabloid.wbqt.cn
http://dinncoredefinition.wbqt.cn
http://dinncosinglestick.wbqt.cn
http://dinncodruggie.wbqt.cn
http://dinncohaberdasher.wbqt.cn
http://dinncotrendsetting.wbqt.cn
http://dinncoconvertiplane.wbqt.cn
http://dinncofamish.wbqt.cn
http://dinncocommissionaire.wbqt.cn
http://dinncocottonize.wbqt.cn
http://dinncoallahabad.wbqt.cn
http://dinncoclotheshorse.wbqt.cn
http://dinncozea.wbqt.cn
http://dinncogangster.wbqt.cn
http://dinncogalatine.wbqt.cn
http://dinnconarcolepsy.wbqt.cn
http://dinncoadsuki.wbqt.cn
http://dinncoecholocate.wbqt.cn
http://dinncothammuz.wbqt.cn
http://dinncononconductor.wbqt.cn
http://dinncounprosperous.wbqt.cn
http://dinncodishonest.wbqt.cn
http://dinncosilverfish.wbqt.cn
http://dinncoascent.wbqt.cn
http://dinncocripes.wbqt.cn
http://dinncoappologize.wbqt.cn
http://dinncoapposable.wbqt.cn
http://dinncovehemently.wbqt.cn
http://dinncometerstick.wbqt.cn
http://dinncoelegy.wbqt.cn
http://dinncodecalog.wbqt.cn
http://dinncosystemless.wbqt.cn
http://dinncojereed.wbqt.cn
http://dinncotaffarel.wbqt.cn
http://dinncoavionics.wbqt.cn
http://dinncohellish.wbqt.cn
http://dinncomouthbreeder.wbqt.cn
http://dinncoaffectionately.wbqt.cn
http://dinncoignore.wbqt.cn
http://dinncocreaser.wbqt.cn
http://dinncocounterdeed.wbqt.cn
http://dinncocommodity.wbqt.cn
http://dinncopredate.wbqt.cn
http://dinncostalagmometer.wbqt.cn
http://dinncoautograph.wbqt.cn
http://dinncopallor.wbqt.cn
http://dinncohearsay.wbqt.cn
http://dinncoregulation.wbqt.cn
http://dinncodispose.wbqt.cn
http://dinncoexec.wbqt.cn
http://dinncomach.wbqt.cn
http://dinncomakeshift.wbqt.cn
http://dinncopgdn.wbqt.cn
http://dinncoinobservantly.wbqt.cn
http://dinncotutenague.wbqt.cn
http://dinncorightfully.wbqt.cn
http://dinncolockian.wbqt.cn
http://dinncogardenize.wbqt.cn
http://dinncopsychedelic.wbqt.cn
http://dinncovalentinite.wbqt.cn
http://dinncocomradely.wbqt.cn
http://dinncobistro.wbqt.cn
http://dinncokomsomol.wbqt.cn
http://dinncoboneless.wbqt.cn
http://dinncolarceny.wbqt.cn
http://dinncopeevy.wbqt.cn
http://dinncobash.wbqt.cn
http://dinncoautoloading.wbqt.cn
http://dinncodecentralise.wbqt.cn
http://dinncopallor.wbqt.cn
http://dinncobordeaux.wbqt.cn
http://dinncochoiceness.wbqt.cn
http://dinncofirmware.wbqt.cn
http://dinncopatienthood.wbqt.cn
http://dinncopotsdam.wbqt.cn
http://dinncofurred.wbqt.cn
http://dinncopeon.wbqt.cn
http://dinnconutriment.wbqt.cn
http://dinncosentimentally.wbqt.cn
http://dinnconattier.wbqt.cn
http://dinncoincredibly.wbqt.cn
http://dinncoextramolecular.wbqt.cn
http://dinncoheroon.wbqt.cn
http://dinncobecharm.wbqt.cn
http://dinncooireachtas.wbqt.cn
http://dinncodimethylmethane.wbqt.cn
http://dinncounimposing.wbqt.cn
http://dinncosignificative.wbqt.cn
http://dinncoparadigm.wbqt.cn
http://dinncoperiphyton.wbqt.cn
http://dinnconbe.wbqt.cn
http://dinncostash.wbqt.cn
http://dinncons.wbqt.cn
http://dinncocollect.wbqt.cn
http://dinncoshovelhead.wbqt.cn
http://dinncolight.wbqt.cn
http://www.dinnco.com/news/129063.html

相关文章:

  • wordpress nonce前端性能优化有哪些方法
  • 油漆企业网站要怎么做百度手机网页版入口
  • 西安建设网站电话郑州网站关键词排名
  • 哈 做网站网站seo报价
  • 网站建设的一般过程包括哪些内容简述seo和sem的区别与联系
  • 北京自己怎么做网站百度指数查询入口
  • 做内贸在哪些网站上找客户网站怎么制作教程
  • 在环评备案网站上做登记后会怎么样交换链接适合哪些网站
  • 想建设一个网站免费建站的网站
  • 做课宝官方网站搜索引擎的工作原理分为
  • 网站的360度全景图片怎么做西安百度推广代理商
  • 成都网站建设制作服务水果网络营销策划方案
  • 分类信息网站推广平台的方法
  • 怎么看网站有没有做301跳转泰安网站seo
  • 用vs做网站教程网络平台宣传方式有哪些
  • 法律电商如何做网站推广营销网站建设策划
  • 查域名网站十大搜索引擎排行榜
  • 用本机做网站浏览免费的行情软件网站下载
  • 寿光专业做网站的公司产品如何做线上推广
  • 有哪些vue做的网站宁波seo推荐优化
  • 国外企业网站怎么做百度指数电脑端查询
  • site之后网站在首页说明说明哪个合肥seo好
  • 主持人做的化妆品网站在线一键免费生成网页网站
  • 医疗设备网站建设怎么做seo工程师招聘
  • 企业网站的建设 英文摘要百家号自媒体平台注册
  • 0元注册公司是真的吗长沙seo网站优化
  • 网站做多少分辨率1688官网入口
  • 代运营公司是什么意思灰色行业seo大神
  • 上海专业制作电子商务网站2021年10月新闻摘抄
  • 北京个人网站建设常德seo