亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? alu.v

?? 用verilog寫的很好的cpu core
?? V
字號:
//////////////////////////////////////////////////////////////////////
//// 								  ////
//// alu for 8051 Core 						  ////
//// 								  ////
//// This file is part of the 8051 cores project 		  ////
//// http://www.opencores.org/cores/8051/ 			  ////
//// 								  ////
//// Description 						  ////
//// Implementation of aritmetic unit  according to 		  ////
//// 8051 IP core specification document. Uses divide.v and 	  ////
//// multiply.v							  ////
//// 								  ////
//// To Do: 							  ////
////  pc signed add                                               ////
//// 								  ////
//// Author(s): 						  ////
//// - Simon Teran, simont@opencores.org 			  ////
//// 								  ////
//////////////////////////////////////////////////////////////////////
//// 								  ////
//// Copyright (C) 2001 Authors and OPENCORES.ORG 		  ////
//// 								  ////
//// This source file may be used and distributed without 	  ////
//// restriction provided that this copyright statement is not 	  ////
//// removed from the file and that any derivative work contains  ////
//// the original copyright notice and the associated disclaimer. ////
//// 								  ////
//// This source file is free software; you can redistribute it   ////
//// and/or modify it under the terms of the GNU Lesser General   ////
//// Public License as published by the Free Software Foundation; ////
//// either version 2.1 of the License, or (at your option) any   ////
//// later version. 						  ////
//// 								  ////
//// This source is distributed in the hope that it will be 	  ////
//// useful, but WITHOUT ANY WARRANTY; without even the implied   ////
//// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 	  ////
//// PURPOSE. See the GNU Lesser General Public License for more  ////
//// details. 							  ////
//// 								  ////
//// You should have received a copy of the GNU Lesser General 	  ////
//// Public License along with this source; if not, download it   ////
//// from http://www.opencores.org/lgpl.shtml 			  ////
//// 								  ////
//////////////////////////////////////////////////////////////////////
//
// ver: 1
//


module alu (op_code, src1, src2, src3, srcCy, srcAc, des1, des2, desCy, desAc, desOv, bit_in);

input srcCy, srcAc, bit_in; input [3:0] op_code; input [7:0] src1, src2, src3;
output des1, des2, desCy, desAc, desOv;

  reg desCy, desAc, desOv;
  reg [7:0] des1, des2;
//
//add
//
  reg [4:0] add1, add2, add3, add4; reg [3:0] add5, add6, add7, add8; reg [1:0] add9, adda, addb, addc;

//
//sub
//
  reg [4:0] sub1, sub2, sub3, sub4; reg [3:0] sub5, sub6, sub7, sub8; reg [1:0] sub9, suba, subb, subc;

//
//mul
//
  wire [7:0] mulsrc1, mulsrc2;
  wire mulOv;

//
//div
//
wire [7:0] divsrc1,divsrc2;
wire divOv;

//
//da
//
reg [8:0] da1;

multiply mul1(.src1(src1), .src2(src2), .des1(mulsrc1), .des2(mulsrc2), .desOv(mulOv));
divide div1(.src1(src1), .src2(src2), .des1(divsrc1), .des2(divsrc2), .desOv(divOv));

always @(op_code or src1 or src2 or srcCy or srcAc or bit_in or src3)
begin

  case (op_code)
//operation add
    `ALU_ADD: begin
      add1= {1'b0,src1[3:0]};
      add2= {1'b0,src2[3:0]};
      add3= {3'b000,srcCy};
      add4= add1+add2+add3;

      add5={1'b0,src1[6:4]};
      add6={1'b0,src2[6:4]};
      add7={1'b0,1'b0,1'b0,add4[4]};
      add8=add5+add6+add7;

      add9={1'b0,src1[7]};
      adda={1'b0,src2[7]};
      addb={1'b0,add8[3]};
      addc=add9+adda+addb;

      des1={addc[0],add8[2:0],add4[3:0]};
      des2=src3+addc[1];  ///ti , tole se ni uredu...
      desCy=addc[1];
      desAc=add4[4];
      desOv=addc[1] ^ add8[3];

    end
//operation subtract
    `ALU_SUB: begin

      sub1={1'b1,src1[3:0]};
      sub2={1'b0,src2[3:0]};
      sub3={1'b0,1'b0,1'b0,srcCy};
      sub4=sub1-sub2-sub3;

      sub5={1'b1,src1[6:4]};
      sub6={1'b0,src2[6:4]};
      sub7={1'b0,1'b0,1'b0, !sub4[4]};
      sub8=sub5-sub6-sub7;

      sub9={1'b1,src1[7]};
      suba={1'b0,src2[7]};
      subb={1'b0,!sub8[3]};
      subc=sub9-suba-subb;

      des1={subc[0],sub8[2:0],sub4[3:0]};
      des2=8'bxxxx_xxxx;
      desCy=!subc[1];
      desAc=!sub4[4];
      desOv=!subc[1] ^ sub8[3];

    end
//operation multiply
    `ALU_MUL: begin
      des1=mulsrc2;
      des2=mulsrc1;
      desOv = mulOv;
      desCy = 1'b0;
      desAc = 1'bx;
    end
//operation divide
    `ALU_DIV: begin
      des1=divsrc2;
      des2=divsrc1;
      desOv=divOv;
      desAc=1'bx;
      desCy=1'b0;
    end
//operation decimal adjustment
    `ALU_DA: begin
      da1= {1'b0, src1};
      if (srcAc==1'b1 | da1[3:0]>4'b1001) da1= da1+ 9'b0_0000_0110;

      da1[8]= da1[8] | srcCy;

      if (da1[8]==1'b1) da1=da1+ 9'b0_0110_0000;
      des1=da1[7:0];
      des2=8'bxxxx_xxxx;
      desCy=da1[8];
      desAc=1'bx;
      desOv=1'bx;
    end
//operation not
// bit operation not
    `ALU_NOT: begin
      des1 = ~src1;
      des2=8'bxxxx_xxxx;
      desCy=!srcCy;
      desAc=1'bx;
      desOv=1'bx;
    end
//operation and
//bit operation and
    `ALU_AND: begin
      des1 = src1 & src2;
      des2=8'bxxxx_xxxx;
      desCy= srcCy & bit_in;
      desAc=1'bx;
      desOv=1'bx;
    end
//operation xor
// bit operation xor
    `ALU_XOR: begin
      des1 = src1 ^ src2;
      des2=8'bxxxx_xxxx;
      desCy= srcCy ^ bit_in;
      desAc=1'bx;
      desOv=1'bx;
    end
//operation or
// bit operation or
    `ALU_OR: begin
      des1 = src1 | src2;
      des2=8'bxxxx_xxxx;
      desCy= srcCy | bit_in;
      desAc=1'bx;
      desOv=1'bx;
    end
//operation rotate left
// bit operation cy= cy or (not ram)
    `ALU_RL: begin
      des1 = {src1[6:0], src1[7]};
      des2=8'bxxxx_xxxx;
      desCy= srcCy | !bit_in;
      desAc=1'bx;
      desOv=1'bx;
    end
//operation rotate left with carry and swap nibbles
    `ALU_RLC: begin
      des1 = {src1[6:0], srcCy};
      des2= {src1[3:0], src1[7:4]};
      desCy=src1[7];
      desAc=1'bx;
      desOv=1'bx;
    end
//operation rotate right
    `ALU_RR: begin
      des1 = {src1[0], src1[7:1]};
      des2=8'bxxxx_xxxx;
      desCy= srcCy & !bit_in;
      desAc=1'bx;
      desOv=1'bx;
    end
//operation rotate right with carry
    `ALU_RRC: begin
      des1 = {srcCy, src1[7:1]};
      des2=8'bxxxx_xxxx;
      desCy=src1[0];
      desAc=1'bx;
      desOv=1'bx;
    end
//operation pcs Add
    `ALU_PCS: begin
      {des1, des2}={src3,src2}+src1;
      desCy=1'bx;
      desAc=1'bx;
      desOv=1'bx;
    end
//operation exchange
//if carry = 0 exchange low order digit
    `ALU_XCH: begin
      if (srcCy)
      begin
        des1=src2;
        des2=src1;
      end else begin
        des1={src1[7:4],src2[3:0]};
        des2={src2[7:4],src1[3:0]};
      end
      desCy=1'bx;
      desAc=1'bx;
      desOv=1'bx;
    end
    default: begin
      des1=src1;
      des2=src2;
      desCy=srcCy;
      desAc=srcAc;
      desOv=1'bx;
    end
  endcase

end

//initial $monitor("time ",$time," sub1 ", sub1," sub2 ", sub2," sub3 ", sub3," sub4 ", sub4," sub5 ", sub5," sub6 ", sub6," sub7 ", sub7," sub8 ", sub8," sub9 ", sub9," suba ", suba," subb ", subb," subc ", subc, " des1 ",des1 );
//initial $monitor("time ",$time," des1 %h", des1, " src1 %h", src1, " src2 %h", src2, " alu_op ", op_code, " srcCy ", srcCy);


endmodule

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美r级在线观看| 青青草国产成人99久久| 午夜电影一区二区三区| 国产麻豆视频一区| 2024国产精品| 一区二区三区四区蜜桃| 国产精品综合在线视频| 正在播放亚洲一区| 自拍视频在线观看一区二区| 九九国产精品视频| 欧美日韩一区二区不卡| 国产精品人人做人人爽人人添 | 一区视频在线播放| 免费成人性网站| 一本大道综合伊人精品热热 | 国产一区二区三区免费播放| 欧美丝袜丝nylons| 中文字幕一区三区| 国产麻豆一精品一av一免费 | 欧美高清视频一二三区 | 国产精品免费久久久久| 狠狠v欧美v日韩v亚洲ⅴ| 91.麻豆视频| 丝袜诱惑亚洲看片| 欧美精品免费视频| 亚洲国产婷婷综合在线精品| 色综合天天在线| 一区二区三区精品在线观看| 成人国产精品免费网站| 国产欧美一区视频| 亚洲视频你懂的| 波多野结衣亚洲一区| 国产精品全国免费观看高清 | 欧美精品国产精品| 亚洲成人高清在线| 欧美图片一区二区三区| 亚洲高清视频在线| 91精品久久久久久久91蜜桃| 人人爽香蕉精品| ww亚洲ww在线观看国产| 国产精品123| |精品福利一区二区三区| 97精品国产露脸对白| 一区二区激情视频| 88在线观看91蜜桃国自产| 日本色综合中文字幕| 精品国产亚洲一区二区三区在线观看| 日本不卡一区二区三区| 精品国产区一区| 国产精品1区二区.| 亚洲激情av在线| 日韩精品一区二区三区蜜臀| 国产麻豆午夜三级精品| 亚洲品质自拍视频| 69堂成人精品免费视频| 激情综合一区二区三区| 国产精品久久久久一区二区三区 | 久久久久久免费毛片精品| 国产91对白在线观看九色| 亚洲色图视频免费播放| 欧美久久久久久久久| 国产精品一区二区不卡| 亚洲免费在线观看视频| 91精品国产美女浴室洗澡无遮挡| 国产一区在线观看麻豆| 亚洲精品你懂的| 日韩午夜激情视频| 99re热这里只有精品视频| 丝袜诱惑亚洲看片| 国产精品成人免费| 欧美一区二区日韩| 波多野结衣91| 日本vs亚洲vs韩国一区三区| 国产精品久久国产精麻豆99网站| 精品视频在线免费看| 国产传媒欧美日韩成人| 午夜伦理一区二区| 成人免费一区二区三区在线观看| 欧美一级久久久久久久大片| 99re视频精品| 国产凹凸在线观看一区二区| 午夜精品在线视频一区| 国产精品成人在线观看| 精品成人免费观看| 欧美一区二区在线视频| 91极品美女在线| 国产91丝袜在线播放0| 日本麻豆一区二区三区视频| 亚洲欧美精品午睡沙发| 国产精品蜜臀在线观看| www精品美女久久久tv| 欧美欧美欧美欧美| 色婷婷国产精品| 91麻豆精品在线观看| 成人午夜短视频| 国产原创一区二区| 久久99精品视频| 男男视频亚洲欧美| 男男成人高潮片免费网站| 午夜久久久久久| 天天色天天爱天天射综合| 亚洲一区二区在线免费观看视频| 亚洲欧洲99久久| 中文字幕一区二区三区在线播放| 久久综合色婷婷| 亚洲精品一线二线三线| 日韩一二三区视频| 日韩欧美在线1卡| 欧美精品乱码久久久久久| 欧美色网一区二区| 欧美剧情电影在线观看完整版免费励志电影 | 久久蜜桃av一区精品变态类天堂| 制服丝袜亚洲网站| 欧美一级午夜免费电影| 337p亚洲精品色噜噜噜| 欧美一区二区三区成人| 日韩欧美不卡在线观看视频| 日韩精品资源二区在线| 欧美一级xxx| 久久精品欧美一区二区三区不卡| 久久久久久久久久久黄色| 国产视频一区二区三区在线观看 | 亚洲一区二区三区四区五区黄| 依依成人综合视频| 亚洲国产精品天堂| 日本三级韩国三级欧美三级| 久久精品二区亚洲w码| 国产精品99久久久久久有的能看| 国产伦精品一区二区三区免费| 国产成人午夜精品影院观看视频| 成人免费视频网站在线观看| 91天堂素人约啪| 欧美日韩高清不卡| 精品捆绑美女sm三区| 中文字幕一区二区三区乱码在线 | 亚洲小说欧美激情另类| 婷婷中文字幕一区三区| 免费成人在线网站| 成人午夜视频在线观看| 日本高清免费不卡视频| 日韩一级片在线观看| 国产精品理论片| 亚洲狠狠爱一区二区三区| 久久国产精品免费| 99久久久免费精品国产一区二区| 欧美三级在线视频| 久久亚洲综合av| 亚洲一区在线电影| 国产精品一区二区黑丝| 欧美视频在线不卡| 久久久久久电影| 亚洲123区在线观看| 国产福利视频一区二区三区| 欧美午夜视频网站| 日本一区二区久久| 日韩福利视频导航| 波多野结衣精品在线| 欧美一激情一区二区三区| 亚洲日本在线视频观看| 久久国产精品72免费观看| 色综合久久综合中文综合网| 制服视频三区第一页精品| 最新久久zyz资源站| 毛片基地黄久久久久久天堂| 91丨国产丨九色丨pron| 26uuu色噜噜精品一区| 天堂蜜桃91精品| 色哟哟一区二区在线观看| 久久亚洲一区二区三区四区| 亚洲一区自拍偷拍| 91免费视频网址| 国产精品私房写真福利视频| 麻豆免费看一区二区三区| 91久久精品日日躁夜夜躁欧美| 久久人人97超碰com| 日韩高清一级片| 精品视频免费看| 亚洲人成网站色在线观看| 成人精品电影在线观看| 久久女同性恋中文字幕| 久久精品免费观看| 6080国产精品一区二区| 夜夜揉揉日日人人青青一国产精品 | 色综合久久88色综合天天6| 久久精品亚洲国产奇米99| 日韩精品电影一区亚洲| 欧美丝袜丝交足nylons| 亚洲自拍与偷拍| 色婷婷亚洲婷婷| 亚洲免费色视频| 91麻豆国产精品久久| 1024成人网色www| 97精品超碰一区二区三区| 国产精品福利影院| 99视频一区二区| 亚洲品质自拍视频网站| 欧美性大战久久| 日本午夜一区二区| 欧美不卡一区二区三区| 久久99精品国产麻豆不卡|