加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長(zhǎng)期合作伙伴
立即加入
  • 正文
    • 4.8  典型實(shí)例8:使用函數(shù)實(shí)現(xiàn)簡(jiǎn)單的處理器
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

硬件描述語(yǔ)言Verilog HDL設(shè)計(jì)進(jìn)階之:使用函數(shù)實(shí)現(xiàn)簡(jiǎn)單的處理器

2013/08/26
閱讀需 8 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

4.8  典型實(shí)例8:使用函數(shù)實(shí)現(xiàn)簡(jiǎn)單的處理器

4.8.1  實(shí)例的內(nèi)容及目標(biāo)

1.實(shí)例內(nèi)容

本實(shí)例使用Verilog HDL設(shè)計(jì)一個(gè)簡(jiǎn)單8位處理器,可以實(shí)現(xiàn)兩個(gè)8位操作數(shù)的4種操作。在設(shè)計(jì)過(guò)程中,使用了函數(shù)調(diào)用的設(shè)計(jì)方法。

2.實(shí)例目標(biāo)

通過(guò)本實(shí)例,讀者應(yīng)達(dá)到下面的一些目的。

·  掌握使用Verilog函數(shù)設(shè)計(jì)的方法。

·  掌握Verilog設(shè)計(jì)的一般方法。

4.8.2  原理簡(jiǎn)介

處理器發(fā)展到現(xiàn)在,已經(jīng)變成一個(gè)功能極其強(qiáng)大,設(shè)計(jì)也極為復(fù)雜的單元?,F(xiàn)在一顆小小的CPU的運(yùn)算能力遠(yuǎn)遠(yuǎn)的超過(guò)了以前的超級(jí)計(jì)算機(jī)的能力。雖然處理器處理能力的提高和很多方面的因素有關(guān),可是處理器最終要完成的目標(biāo)還是早期CPU設(shè)計(jì)時(shí)的那個(gè)目標(biāo),那就是使用操作碼實(shí)現(xiàn)對(duì)操作數(shù)的控制和計(jì)算。

在本實(shí)例中,實(shí)現(xiàn)的處理器是一個(gè)8位處理器,只實(shí)現(xiàn)簡(jiǎn)單的4種操作:相加、相減、操作數(shù)減1和操作數(shù)加1。通過(guò)這4種操作向讀者展示如何使用Verilog語(yǔ)言設(shè)計(jì)看似復(fù)雜的CPU單元。

當(dāng)然,這個(gè)處理器只是一個(gè)算術(shù)單元,處理器還包括很多其他的功能,在此不進(jìn)行介紹,感興趣的讀者可以查閱相關(guān)的書(shū)籍,按照本實(shí)例提供的設(shè)計(jì)方向補(bǔ)充和完善這個(gè)處理器。

4.8.3  代碼分析 

下面給出這個(gè)處理器的Verilog源代碼,讀者可以將此處理器模塊實(shí)例化至自己的工程設(shè)計(jì)中。

module mpc(instr,out);
          //端口說(shuō)明
          input[17:0] instr;               //輸入指令
          output[8:0] out;           //輸出結(jié)果
          //內(nèi)部信號(hào)說(shuō)明
          reg[8:0] out;
          reg func;                     //指令中提取出的操作碼的內(nèi)部變量
          reg[7:0] op1,op2;        //從指令中提取的兩個(gè)操作數(shù)
          //函數(shù)聲明
          function[16:0] code_add;  //函數(shù)的定義,返回一個(gè)17位的指令
            input[17:0] instr;       //函數(shù)的輸入,采用與模塊輸入同樣的命名,可不同
            //函數(shù)內(nèi)部信號(hào)說(shuō)明
            reg add_func;             //函數(shù)內(nèi)部的操作碼變量
            reg[2:0] code;          //操作碼
            reg[7:0] opr1,opr2;    //兩個(gè)操作數(shù)
           
            begin
                 code=instr[17:16]; //輸入指令instr的高2位為操作碼code
                 opr1=instr[7:0];   //輸入指令instr的低8位為操作數(shù)opr1
                 //通過(guò)case語(yǔ)句判斷操作碼的類型,獲得操作數(shù)opr2
                 case(code)
                       2'b00: begin
                             add_func=1;
                             opr2=instr[15:8]; //從instr中取第二個(gè)操作數(shù)
                             end
                       2'b01: begin
                             add_func=0;
                             opr2=instr[15:8]; //從instr中取第二個(gè)操作數(shù)
                             end
                       2'b10: begin
                             add_func=1;
                             opr2=8'd1;           //第二個(gè)操作數(shù)取為1,實(shí)現(xiàn)+1操作
                             end
                       2'b11: begin
                             add_func=0;
                             opr2=8'd1;           //實(shí)現(xiàn)-1操作
                             end
                       endcase
                       code_add={add_func,opr2,opr1}; //函數(shù)的返回值
            end
            endfunction
            //函數(shù)調(diào)用模塊
            always @(instr) begin
              {func,op2,op1}=code_add(instr);   //調(diào)用函數(shù)
              if(func==1)
                      out=op1+op2;                  //實(shí)現(xiàn)兩數(shù)相加或操作數(shù)1加1操作
              else
                      out=op1-op2;                  //實(shí)現(xiàn)兩數(shù)相減或操作數(shù)1減1操作
              end
endmodule

相關(guān)推薦

電子產(chǎn)業(yè)圖譜

華清遠(yuǎn)見(jiàn)(www.farsight.com.cn)是國(guó)內(nèi)領(lǐng)先嵌入師培訓(xùn)機(jī)構(gòu),2004年注冊(cè)于中國(guó)北京海淀高科技園區(qū),除北京總部外,上海、深圳、成都、南京、武漢、西安、廣州均有直營(yíng)分公司。華清遠(yuǎn)見(jiàn)除提供嵌入式相關(guān)的長(zhǎng)期就業(yè)培訓(xùn)、短期高端培訓(xùn)、師資培訓(xùn)及企業(yè)員工內(nèi)訓(xùn)等業(yè)務(wù)外,其下屬研發(fā)中心還負(fù)責(zé)嵌入式、Android及物聯(lián)網(wǎng)方向的教學(xué)實(shí)驗(yàn)平臺(tái)的研發(fā)及培訓(xùn)教材的出版,截止目前為止已公開(kāi)出版70余本嵌入式/移動(dòng)開(kāi)發(fā)/物聯(lián)網(wǎng)相關(guān)圖書(shū)。企業(yè)理念:專業(yè)始于專注 卓識(shí)源于遠(yuǎn)見(jiàn)。企業(yè)價(jià)值觀:做良心教育、做專業(yè)教育,更要做受人尊敬的職業(yè)教育。