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

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

?? thumb_2_nnarm.v

?? 若干VHDL語言的源代碼
?? V
?? 第 1 頁 / 共 2 頁
字號:
 /************************************************************************\
 **************************************************************************
 **************************************************************************
 **************************************************************************
 **************************************************************************
 *******+---------------------------------------------------------+********
 *******|+-------------------------------------------------------+|********
 *******|||                                                     |||********
 *******|||  Project  : nnARM                                   |||********
 *******|||  Module   : thumb_2_nnarm                           |||********
 *******|||  Designer : Mian                                    |||********
 *******|||  Date     : 11 July 2001                            |||********
 *******|||  Abstract : Converts 16 bit Thumb Instructions into |||********
 *******|||             32 Bit nnARM Instructions.              |||********
 *******|||  Ver      : 0.2                                     |||********
 *******|||  Comments :                                         |||********
 *******|||             Long Branches are not supported         |||********
 *******|||             For Undefined Inst,cond field is 4'b1111|||********
 *******|||                                                     |||********
 *******|+-------------------------------------------------------+|********
 *******+---------------------------------------------------------+********
 **************************************************************************
 **************************************************************************
 **************************************************************************
 **************************************************************************
 \************************************************************************/

module thumb_2_nnarm (
 
		//INPUTS
		in_AddressGoWithInstruction,
		cti                   , //Current THUMB Instruction
		reset                 ,
		clock                 , 

		//OUTPUTS
		out_ClearBit1,	//ssy add 2001 7 19
		out_AddressOfFirstHalf,//half word align, so bit 0 will be use to indicate whether there is a long branch with link
		arm_inst,
		//clear internal state
		in_ChangePC,
		in_MEMChangePC
		);// nnARM Instruction

//-----------------------------------------------------------//
//                      INPUTS                               //
//-----------------------------------------------------------//
input	[`AddressBusWidth-1:0]	in_AddressGoWithInstruction;
input [15:0] cti                         ;
input        clock                       ;
input        reset                       ;
input	in_ChangePC,in_MEMChangePC;

//-----------------------------------------------------------//
//                      OUTPUTS                              //
//-----------------------------------------------------------//
output	[`AddressBusWidth-1:0]	out_AddressOfFirstHalf;
output		out_ClearBit1;	//ssy add 2001 7 19
output [31:0] arm_inst                   ;

//-----------------------------------------------------------//
//                    REGISTERS & WIRES                      //
//-----------------------------------------------------------//

reg	ClearBit1;		//ssy add 2001 7 19
reg  [27:0] t2a                          ;
reg  [3:0]  cond                         ;
reg         wb_check                     ;


wire [1:0]  op0                          ;
wire        op1                          ;
wire        l_bit                        ;
wire        select_bit                   ;


//long branch with link state
//ssy add 2001 7 20
reg	[10:0]	LongBranchWithLinkOff;
//next state of LongBranchWithLinkOff
reg	[10:0]	Next_LongBranchWithLinkOff;

reg	[`AddressBusWidth-1:0]	AddressOfFirstHalf;
reg	[`AddressBusWidth-1:0]	Next_AddressOfFirstHalf;

assign	out_ClearBit1=ClearBit1;	//ssy add 2001 7 19
assign	out_AddressOfFirstHalf=AddressOfFirstHalf;

//-----------------------------------------------------------//
//                          CONDITION                        // 
//-----------------------------------------------------------//

always@(cti) //if async block is required 
/*always@(posedge clock or negedge reset) //if sync block is required                    
 if(reset)
  cond <= 4'b0000                                         ;

 else */ if(cti[15:12] == 4'b1101)  //Conditional Branches
    begin
      if(cti[11:8] == 4'b1111)	//SSY NOTE: SWI instruction
         cond <= 4'b1110                                  ;
      else if(cti[11:8] == 4'b1110)	//SSY NOTE: never be use
         cond <= 4'b1111                                  ;
      else
         cond <= cti[11:8]                                ; 
    end

                    //+++++++++++++++++++++//

  else if((cti[15:13] == 3'b010) & (~(| cti[12:11]) & cti[10]) ) //format 5.5 SSY NOTE:Hi reg operation or BX
     begin
       if(cti[9] & cti[8])	//SSY NOTE:BX
         cond <= {3'b111,cti[7]} 			                         ;//SSY NOTE: in this case cti[7] is always 1'b0,means ALWAYS run this instruction
       else			//SSY NOTE:Hi reg operation
         cond <= {3'b111,( ~( cti[7] | cti[6] ))}         ;	// SSY NOTE:~(cti[6] | cti[7]) is always 0, so ALWAYS Run
     end
  
                    //+++++++++++++++++++++//
  else
    cond <= 4'b1110                                       ; //ALWAYS


                    

//-----------------------------------------------------------//
//                          OpCode                           // 
//-----------------------------------------------------------//

assign op0        = ~( cti[12:11]       )                 ;
assign op1        = ~( cti[12] | cti[11])                 ;//SSY NOTE: 12 and 11 is 00
assign l_bit      =  ( cti[11] | cti[10])                 ;//SSY NOTE: 11 and 10 is 11 10 01 means load when cti is a compressed load/store sign data
assign select_bit =  (~l_bit   | cti[11])                 ;//SSY NOTE  11 and 10 is 00 10 11

always@(cti) //for multiple load write back only when base is
             //not in list
             //changed in ver 0.2
   begin
      case(cti[10:8])
          3'b000 : wb_check <= ~cti[0];
          3'b001 : wb_check <= ~cti[1];
          3'b010 : wb_check <= ~cti[2];
          3'b011 : wb_check <= ~cti[3];
          3'b100 : wb_check <= ~cti[4];
          3'b101 : wb_check <= ~cti[5];
          3'b110 : wb_check <= ~cti[6];
          3'b111 : wb_check <= ~cti[7];
          endcase
   end




always@(cti or op0 or op1 or l_bit or select_bit or wb_check) //if async block
/*always@(posedge clock or negedge reset) //if sync block
if(reset)
   t2a <= 28'b0;                                          ;

else */
begin
   
   //to prevent latch infer
   ClearBit1=1'b0;	//ssy add 2001 7 19
   Next_LongBranchWithLinkOff=11'b0000_0000_000;//ssy add 2001 7 20
   Next_AddressOfFirstHalf=`AddressBusZero;//ssy add 2001 7 20
   
   case(cti[15:13])

   3'b000  : begin    

		if(cti[12] & cti[11]) //Add/Subtract	

		t2a <= {2'b00,		//ARM data processing instruction [27:26] is always 00
			cti[10],		//Immediate value
			1'b0,~cti[9],cti[9],1'b0,//opcode 0010 is sub , 0100 is add
			1'b1,			//set condition code
			1'b0,cti[5:3],		//Rn -- first operand
			1'b0,cti[2:0],		//Rd -- second operand
			9'b000000000,cti[8:6]};	//3 bits extend to 12 bit offset

		else  //Move Shifted Register

		t2a <= {2'b00,			//ARM data processing instruction [27:26] is always 00
			1'b0,			//op2 is from register
			4'b1101,		//mov 
			1'b1,			//set condition code
			4'b0000, 		//op1 that do not use here
			1'b0,cti[2:0],		//destination register
			cti[10:6],		//shift ammount
			cti[12:11],		//shift type
			1'b0,			//no use here
			1'b0,cti[5:3]};		//the op2
		end
  
                    //+++++++++++++++++++++//

   3'b001  : begin   //Move/Compare/Add/Subtract immediate  
               case(cti[12:11])
		//move
                2'b00 : t2a <= {2'b00,		//ARM data processing instruction [27:26] is always 00
                		1'b1,		//immediate value
                		op0,cti[11],op1,//1101 is mov
                		1'b1,		//set condition code
                               4'b0000,		//op1 do not use here
                               1'b0,cti[10:8],	//target register
                               4'b0000,cti[7:0]};//extend  8bit imm to 12 bits
		//cmp
                2'b01 : t2a <= {2'b00,		//ARM data processing instruction [27:26] is always 00
                		1'b1,		//immediate value
                		op0,cti[11],op1,//1010 is cmp
                		1'b1,		//set condition code
                           	1'b0,cti[10:8],	//op1
                           	4'b0000,	//no target
                           	4'b0000,cti[7:0]};//extend  8bit imm to 12 bits
		//add
                2'b10 : t2a <= {2'b00,		//ARM data processing instruction [27:26] is always 00
                		1'b1,		//immediate value
                		op0,cti[11],op1,//0100 is add
                		1'b1,		//set condition code
                    		1'b0,cti[10:8],	//op1
                    		1'b0,cti[10:8],	//target register
                    		4'b0000,cti[7:0]};//extend 8 bits to 12 bits 
		//sub
                2'b11 : t2a <= {2'b00,		//ARM data processing instruction [27:26] is always 00
                		1'b1,		//immediate value
                		op0,cti[11],op1,//0010 is sub
                		1'b1,		//set condition code
                    		1'b0,cti[10:8],	//op1
                    		1'b0,cti[10:8],	//target register
                    		4'b0000,cti[7:0]};//extend 8 bits imm to 12 bits

               endcase
             end
  
                    //+++++++++++++++++++++//

   3'b010  : begin
              if(cti[12]==1'b1)

               begin
                if(cti[9]==1'b1)  // Load/Store sign-extended byte/halfword  

                  t2a <= {3'b000,	//half word and sign data transfer always have [27:25] as 000
                  	1'b1,		//pre index, add/sub offset and then transfer
                  	1'b1,		//add offset to base
                  	1'b0,		//no use here, always is 1'b0
                  	1'b0,		//do not write back address
                  	l_bit,		//1 means load,else store
                  	1'b0,cti[5:3],	//base register
                  	1'b0,cti[2:0],	//target register
			5'b00001,	//no use here, always is this value
			cti[10],	//S bit
			select_bit,	//excellent code about H and S bit ,Mian: the code reqired is (~cti[10] | cti[11]).
			1'b1,		//always this value
			1'b0,cti[8:6]};	//offset register

                else        //Load/Store with Register Offset   

                  t2a <= {2'b01,	//always 01
                  	1'b1,		//offset is a register
                  	1'b1,		//pre index
                  	1'b1,		//up , add offset to base
                  	cti[10],	//byte or word
                  	1'b0,		// do not need write back
                  	cti[11],	//load
                  	1'b0,cti[5:3],	//base register
			1'b0,cti[2:0],	//target register
			8'h00,		//no use here
			1'b0,cti[8:6]}; 	//offset register
               end 
          
                            //\/\/\/\/\/\/\\

              else if(cti[11]==1'b1) // PC-Relative Load    
              begin
                 t2a <= {2'b01,		//always 01	
                 	1'b0,		//offset is immediate value
                 	1'b1,		//pre index
                 	1'b1,		//up, add offset to base
                 	1'b0,		//transfer word
                 	1'b0,		//do not need write back
                 	1'b1,		//load
                 	4'b1111,	//PC use as base
                 	1'b0,cti[10:8],	//target register
                 	2'b00,cti[7:0],2'b00};//offset extend to 
                 	
                 ClearBit1=1'b1;	//ssy add 2001 7 19
              end
          
                            //\/\/\/\/\/\/\\

              else if(cti[10]==1'b1) // Hi Register Operations/Branch Exchange    
                 case(cti[9:8])
                 	//add
                   2'b00 : t2a <= {2'b00,		//always 00
                   		1'b0,			//op2 is a register
                   		4'b0100,		//add op
                   		1'b0,			//do not set condition code
                   		cti[7],cti[2:0],	//op1 and target

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲乱码日产精品bd| 国产成都精品91一区二区三| 亚洲欧美一区二区久久| 国产清纯白嫩初高生在线观看91 | 国产又黄又大久久| 免费日本视频一区| 美女视频黄 久久| 久久国产精品无码网站| 精品制服美女丁香| 国产美女主播视频一区| 国产91精品在线观看| 成人手机在线视频| 白白色亚洲国产精品| 色综合天天综合网天天看片| 成人国产在线观看| 色婷婷亚洲婷婷| 欧美在线一区二区| 欧美一区二区三区四区高清| 日韩视频免费观看高清完整版在线观看| 欧美一区二区三区思思人| 精品国产一区久久| 国产精品视频九色porn| 亚洲欧美日韩电影| 日韩精品一级中文字幕精品视频免费观看 | 制服丝袜亚洲播放| 日韩欧美高清在线| 国产日韩av一区二区| 亚洲视频网在线直播| 亚洲国产精品综合小说图片区| 天天色图综合网| 开心九九激情九九欧美日韩精美视频电影 | 久久免费视频一区| 国产精品国产三级国产普通话蜜臀 | 91毛片在线观看| 欧美精品黑人性xxxx| 精品国产免费一区二区三区香蕉| 欧美国产禁国产网站cc| 亚洲最快最全在线视频| 美日韩黄色大片| 大白屁股一区二区视频| 欧美日韩免费不卡视频一区二区三区 | 欧美一区二区在线播放| 国产亚洲欧美日韩俺去了| 亚洲伦理在线精品| 精品在线一区二区三区| 94色蜜桃网一区二区三区| 在线不卡免费欧美| 国产欧美日韩激情| 亚洲国产精品影院| 国产夫妻精品视频| 欧美精品乱码久久久久久按摩 | 一个色综合网站| 国内精品视频一区二区三区八戒| 97久久精品人人澡人人爽| 3d动漫精品啪啪| 日韩毛片在线免费观看| 久久精品久久精品| 91成人在线免费观看| 久久蜜桃av一区二区天堂| 午夜精品在线视频一区| 成人黄色免费短视频| 日韩视频一区二区三区在线播放| 最新日韩av在线| 狠狠狠色丁香婷婷综合激情| 欧美又粗又大又爽| 国产精品久久久久久久岛一牛影视 | 国产一区999| 欧美日韩三级视频| 中文字幕一区二区三| 国产一区二区免费在线| 欧美色涩在线第一页| 中文字幕制服丝袜一区二区三区 | 洋洋av久久久久久久一区| 国产精品一二三区在线| 日韩一区二区三区精品视频| 一区二区三区精密机械公司| 国产 欧美在线| 精品人在线二区三区| 日韩黄色片在线观看| 日本道精品一区二区三区| 国产精品三级久久久久三级| 极品尤物av久久免费看| 日韩一级完整毛片| 五月天中文字幕一区二区| 日本久久一区二区三区| 看国产成人h片视频| 欧美午夜电影网| 亚洲色图制服丝袜| 9i看片成人免费高清| 欧美国产日韩a欧美在线观看| 激情国产一区二区| 精品国产电影一区二区| 久久电影网站中文字幕| 日韩三级精品电影久久久| 香蕉加勒比综合久久| 欧美色窝79yyyycom| 亚洲激情男女视频| 色综合色综合色综合色综合色综合| 国产精品网曝门| 成人精品鲁一区一区二区| 国产精品人人做人人爽人人添 | 久久久久久久久99精品| 久久爱另类一区二区小说| 日韩午夜在线影院| 极品销魂美女一区二区三区| 精品久久久久久无| 国产精品一区二区久久不卡 | 欧美激情一区二区在线| 国产91综合网| 国产精品久久久久久久蜜臀 | 日韩欧美第一区| 精东粉嫩av免费一区二区三区| 精品久久人人做人人爰| 国产成人精品亚洲日本在线桃色 | 亚洲乱码国产乱码精品精可以看| 91视频.com| 亚洲影院理伦片| 欧美一区二区精品在线| 久久99热99| 国产精品免费丝袜| 日本韩国欧美在线| 日韩成人av影视| 精品日产卡一卡二卡麻豆| 国产成人免费在线观看| 日韩毛片精品高清免费| 欧洲一区二区av| 免费在线观看视频一区| 国产喷白浆一区二区三区| 99久久久久免费精品国产| 一区二区欧美精品| 91精品国产综合久久久久久久久久| 精品在线你懂的| 亚洲欧洲精品一区二区三区| 在线免费观看日韩欧美| 麻豆精品视频在线观看免费| 国产无一区二区| 欧美最猛黑人xxxxx猛交| 麻豆国产一区二区| 国产精品传媒入口麻豆| 欧美精品色一区二区三区| 国内久久精品视频| 亚洲乱码国产乱码精品精98午夜| 欧美日韩国产综合草草| 国产成人在线免费观看| 亚洲精品菠萝久久久久久久| 日韩一区二区在线播放| 成人av影视在线观看| 日韩影视精彩在线| 国产精品女主播在线观看| 欧美日韩中文字幕一区| 国产精品一区二区不卡| 亚洲高清中文字幕| 欧美国产亚洲另类动漫| 538prom精品视频线放| 成人h动漫精品一区二| 日本欧美大码aⅴ在线播放| 欧美国产乱子伦| 欧美肥大bbwbbw高潮| 91丨九色porny丨蝌蚪| 久久精品99国产精品日本| 一区二区三区资源| 久久精品亚洲麻豆av一区二区 | 色婷婷综合久久久中文一区二区| 蜜臀久久99精品久久久久宅男 | 久久久国产精品麻豆| 欧美天天综合网| 福利一区福利二区| 日本欧美在线观看| 亚洲免费观看高清在线观看| 精品国内二区三区| 欧美日韩免费高清一区色橹橹| 成人av电影在线观看| 精品一区二区日韩| 亚洲va韩国va欧美va精品| 中文字幕亚洲区| 久久久99精品久久| 欧美一级免费大片| 欧美午夜在线一二页| 97精品视频在线观看自产线路二| 狠狠狠色丁香婷婷综合激情| 午夜激情一区二区三区| 亚洲精品国产品国语在线app| 国产精品污污网站在线观看| 欧美tickling网站挠脚心| 欧美日韩一级黄| 日本韩国欧美在线| av午夜一区麻豆| 国产成人免费在线观看不卡| 国产在线视频不卡二| 青青草视频一区| 天堂一区二区在线| 亚洲高清视频的网址| 亚洲欧美日韩一区| 日韩理论在线观看| 国产精品久久久久婷婷| 中文字幕乱码日本亚洲一区二区| 精品国产露脸精彩对白| 精品国产乱码久久久久久1区2区| 欧美一区二区日韩| 91精品国产91久久综合桃花|