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

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

?? arm10.v

?? arm10_verilog.rar是基于arm10的verilog代碼
?? V
?? 第 1 頁 / 共 5 頁
字號:
			psr_dest[0] = 3'h0;			psr_valid[0]= 1'b1;		    end		end	    end	endtask	//UMULL, UMLAL, SMULL, & SMLAL,  Instructions	task mull;	    reg [31:0] op1;			//Multiplicand	    reg [31:0] op2;			//Multiplier	    reg [63:0] acc;			//Accumulate Value	    reg [31:0] temp;			//used to get bits of a reg	    reg [31:0] tmp_psr;			//copy of CPSR	    reg [63:0] m_res;			//64-bit result	    reg s1, s2;				//Sign Bits	    begin	//Read the Operand Values from Rm & Rs		op1 = reg_decode(map(Rs));		op2 = reg_decode(map(Rm));		acc[63:32] = reg_decode(map(Rn));		acc[31:0] = reg_decode(map(Rd));	//Set the Sign Bits		s1 = op1[31] ? 1'b1 : 1'b0;		s2 = op2[31] ? 1'b1 : 1'b0;				//Setup the Operands for Signed Multiply		if (ir[22] == 1'b1) begin	 		    op1 = op1[31] ? (~op1 + 1) : op1;		    op2 = op2[31] ? (~op2 + 1) : op2;		end	//Read the CPSR		tmp_psr = CPSR;	//Perform the Multiplication		m_res = op1*op2;        	//Convert to Negative if Signed and Signs were different        		if ((s1 != s2) && (ir[22] == 1'b1))                    m_res = ~m_res + 1;	//Add on the Acc Value for UMLAL & SMLAL		if (ir[21] == 1'b1)		    m_res = m_res + acc;		inst_result[0] = m_res[31:0];		result_dest[0] = map(Rd);		result_valid[0] = 1'b1;		inst_result[1] = m_res[63:32];		result_dest[1] = map(Rn);		result_valid[1] = 1'b1;	//Set Flags					if (S == 1'b1) begin		    if (m_res == 64'h0000000000000000)			psr_result[0] = {2'b01, tmp_psr[29:0]};		    else 			psr_result[0] = {m_res[63], 1'b0, tmp_psr[29:0]};		    psr_dest[0] = 3'h0;		    psr_valid[0]= 1'b1;		end	    end	endtask	//ALU Operations	task alu;	    reg [31:0] op1;            reg [31:0] shifted_op2;	    reg [31:0] alu_op2;            reg [31:0] tmp_psr;                reg [31:0] logic_result;	    reg [32:0] arith_result;            reg        shift_c_out;	    reg        oflow;            begin                //Store temp copy of CPSR;                tmp_psr = CPSR;                		//Assign the first Operand		if ((ir[4] == 1'b1) && (ir[25] == 1'b0) && (Rn == 4'hF))		    op1 = reg_decode(map(Rn)) + 4;		else		    op1 = reg_decode(map(Rn));                //Perform the Shift                if (ir[25] == 1'b1)                    {shift_c_out, shifted_op2} = shift({{24{1'b0}},ir[7:0]});		else                    {shift_c_out, shifted_op2} = shift(reg_decode(map(Rm)));		//Perform the proper operation		case (ir[24:21])		    `AND: begin			logic_result = op1 & shifted_op2;			inst_result[0] = logic_result;			result_dest[0] = map(Rd);			result_valid[0] = 1'b1;			 //Set the Flags if necessary        	        if (S == 1'b1) begin                	    if (logic_result == 32'h00000000)				psr_result[0] = {2'b01, shift_c_out, tmp_psr[28:0]};                    	    else 				psr_result[0] = {logic_result[31], 1'b0, shift_c_out, tmp_psr[28:0]}; 			 	psr_dest[0] = 3'h0;				psr_valid[0]= 1'b1;                        end		    end		    `EOR: begin			logic_result = op1 ^ shifted_op2;			inst_result[0] = logic_result;			result_dest[0] = map(Rd);			result_valid[0] = 1'b1;                                    	//Set the Flags                	if (S == 1'b1) begin                    	    if (logic_result == 32'h00000000)				psr_result[0] = {2'b01, shift_c_out, tmp_psr[28:0]};                    	    else 				psr_result[0] = {logic_result[31], 1'b0, shift_c_out, tmp_psr[28:0]};                        end            	    end		    `SUB: begin			alu_op2 = ~(shifted_op2);			arith_result = {1'b0,op1} + {1'b0,alu_op2} + 1;			oflow = op1[31] ^ alu_op2[31] 				^ arith_result[31] ^ arith_result[32];			inst_result[0] = arith_result[31:0];			result_dest[0] = map(Rd);			result_valid[0] = 1'b1;                        //Set the Flags if necessary                        if (S == 1'b1) begin                            if (arith_result[31:0] == 32'h00000000)				psr_result[0] = {2'b01, arith_result[32], oflow, tmp_psr[27:0]};                            else				psr_result[0] = {arith_result[31], 1'b0, arith_result[32],						oflow, tmp_psr[27:0]};                        end                    end		    `RSB: begin			alu_op2 = ~op1;                        arith_result = {1'b0,shifted_op2} + {1'b0,alu_op2} + 1;                        oflow = shifted_op2[31] ^ alu_op2[31]                                ^ arith_result[31] ^ arith_result[32];			inst_result[0] = arith_result[31:0];			result_dest[0] = map(Rd);			result_valid[0] = 1'b1;                                                 //Set the Flags if necessary                        if (S == 1'b1) begin                            if (arith_result[31:0] == 32'h00000000)				psr_result[0] = {2'b01, arith_result[32], oflow, tmp_psr[27:0]};                            else				psr_result[0] = {arith_result[31], 1'b0, arith_result[32],						oflow, tmp_psr[27:0]};                        end                    end		    `ADD: begin			alu_op2 = shifted_op2;                        arith_result = {1'b0,op1} + {1'b0,alu_op2};                        oflow = op1[31] ^ alu_op2[31]                                ^ arith_result[31] ^ arith_result[32];			inst_result[0] = arith_result[31:0];			result_dest[0] = map(Rd);			result_valid[0] = 1'b1;                        //Set the Flags if necessary                        if (S == 1'b1) begin                            if (arith_result[31:0] == 32'h00000000)				psr_result[0] = {2'b01, arith_result[32], oflow, tmp_psr[27:0]};                            else				psr_result[0] = {arith_result[31], 1'b0, arith_result[32],						oflow, tmp_psr[27:0]};                        end                    end		    `ADC: begin			alu_op2 = shifted_op2;                        arith_result = {1'b0,op1} + {1'b0,alu_op2} + C;                            oflow = op1[31] ^ alu_op2[31]                                ^ arith_result[31] ^ arith_result[32];			inst_result[0] = arith_result[31:0];			result_dest[0] = map(Rd);			result_valid[0] = 1'b1;                                            //Set the Flags if necessary                        if (S == 1'b1) begin                            if (arith_result[31:0] == 32'h00000000)				psr_result[0] = {2'b01, arith_result[32], oflow, tmp_psr[27:0]};                            else				psr_result[0] = {arith_result[31], 1'b0, arith_result[32],						oflow, tmp_psr[27:0]};                        end                    end		    `SBC: begin			alu_op2 = ~shifted_op2;                        arith_result = {1'b0,op1} + {1'b0,alu_op2} + C;                        oflow = op1[31] ^ alu_op2[31]                                ^ arith_result[31] ^ arith_result[32];			inst_result[0] = arith_result[31:0];			result_dest[0] = map(Rd);			result_valid[0] = 1'b1;                        //Set the Flags if necessary                        if (S == 1'b1) begin                            if (arith_result[31:0] == 32'h00000000)				psr_result[0] = {2'b01, arith_result[32], oflow, tmp_psr[27:0]};                            else				psr_result[0] = {arith_result[31], 1'b0, arith_result[32],						oflow, tmp_psr[27:0]};                        end                    end		    `RSC: begin			alu_op2 = ~op1;                        arith_result = {1'b0,shifted_op2} + {1'b0,alu_op2} + C;                        oflow = shifted_op2[31] ^ alu_op2[31]                                ^ arith_result[31] ^ arith_result[32];			inst_result[0] = arith_result[31:0];			result_dest[0] = map(Rd);			result_valid[0] = 1'b1;                                                        //Set the Flags if necessary                        if (S == 1'b1) begin                            if (arith_result[31:0] == 32'h00000000)				psr_result[0] = {2'b01, arith_result[32], oflow, tmp_psr[27:0]};                            else				psr_result[0] = {arith_result[31], 1'b0, arith_result[32],						oflow, tmp_psr[27:0]};                        end                    end		    `TST: begin                        logic_result = op1 & shifted_op2;                                                 //Set the Flags if necessary                        if (S == 1'b1) begin                            if (logic_result == 32'h00000000)				psr_result[0] = {2'b01, shift_c_out, tmp_psr[28:0]};                            else    				psr_result[0] = {logic_result[31], 1'b0, shift_c_out, tmp_psr[28:0]};                        end                    end                       		    `TEQ: begin                        logic_result = op1 ^ shifted_op2;                                               //Set the Flags                        if (S == 1'b1) begin                            if (logic_result == 32'h00000000)				psr_result[0] = {2'b01, shift_c_out, tmp_psr[28:0]};                            else				psr_result[0] = {logic_result[31], 1'b0, shift_c_out, tmp_psr[28:0]};                        end                    end		    `CMP: begin			alu_op2 = ~shifted_op2;                        arith_result = {1'b0,op1} + {1'b0,alu_op2} + 1;                        oflow = op1[31] ^ alu_op2[31]                                ^ arith_result[31] ^ arith_result[32];                                                        //Set the Flags if necessary                        if (S == 1'b1) begin                            if (arith_result[31:0] == 32'h00000000)				psr_result[0] = {2'b01, arith_result[32], oflow, tmp_psr[27:0]};                            else				psr_result[0] = {arith_result[31], 1'b0, arith_result[32],						oflow, tmp_psr[27:0]};                        end                    end		    `CMN: begin			alu_op2 = shifted_op2;                        arith_result = {1'b0,op1} + {1'b0,alu_op2};                        oflow = op1[31] ^ alu_op2[31]                                ^ arith_result[31] ^ arith_result[32];                                                        //Set the Flags if necessary                        if (S == 1'b1) begin                            if (arith_result[31:0] == 32'h00000000)				psr_result[0] = {2'b01, arith_result[32], oflow, tmp_psr[27:0]};                            else				psr_result[0] = {arith_result[31], 1'b0, arith_result[32],						oflow, tmp_psr[27:0]};                        end                    end		    `ORR: begin                        logic_result = op1 | shifted_op2;			inst_result[0] = logic_result;			result_dest[0] = map(Rd);			result_valid[0] = 1'b1;                        //Set the Flags                         if (S == 1'b1) begin                            if (logic_result == 32'h00000000)				psr_result[0] = {2'b01, shift_c_out, tmp_psr[28:0]};                            else				psr_result[0] = {logic_result[31], 1'b0, shift_c_out, tmp_psr[28:0]};                        end                    end		    `MOV: begin			logic_result = shifted_op2;			inst_result[0] = logic_result;			result_dest[0] = map(Rd);			result_valid[0] = 1'b1;                        //Set the Flags                        if (S == 1'b1) begin                            if (logic_result == 32'h00000000)   				psr_result[0] = {2'b01, shift_c_out, tmp_psr[28:0]};                            else				psr_result[0] = {logic_result[31], 1'b0, shift_c_out, tmp_psr[28:0]};                        end                    end			    `BIC: begin                        logic_result = op1 & (~(shifted_op2));			inst_result[0] = logic_result;			result_dest[0] = map(Rd);			result_valid[0] = 1'b1;                        //Set the Flags                        if (S == 1'b1) begin                            if (logic_result == 32'h00000000)				psr_result[0] = {2'b01, shift_c_out, tmp_psr[28:0]};                            else				psr_result[0] = {logic_result[31], 1'b0, shift_c_out, tmp_psr[28:0]};                        end                    end		    `MVN: begin                         logic_result = ~(shifted_op2);			inst_result[0] = logic_result;			result_dest[0] = map(Rd);			result_valid[0] = 1'b1;                                                //Set the Flags                        if (S == 1'b1) begin                            if (logic_result == 32'h00000000)				psr_result[0] = {2'b01, shift_c_out, tmp_psr[28:0]};                            else				psr_result[0] = {logic_result[31], 1'b0, shift_c_out, tmp_psr[28:0]};                        end                    end		endcase		psr_dest[0] = 3'h0;		if (S == 1'b1)		    psr_valid[0] = 1'b1;	    end	endtask	//Coprocessor Instructions	//This is just a basic interface, but does not	//even come close to handling Coprocessor instructions.	//Once it becomes time to include a Coprocessor, I'll	//spice this up.	task cop;	    reg keep_looping;	    reg first;	    begin		keep_looping = 1'b1;		first = 1'b1;			//If Handshakes indicate ABSENT,		//take Undefined Instruction trap		if ((CHSD == 2'b10) || (CHSE == 2'b10))			undefined;		else begin		    while (keep_looping == 1'b1) begin			@(negedge GCLK) begin			if (first == 1'b1) begin			    //WAIT			    if (CHSD == 2'b00) begin				first = 1'b1;				next_pc = PC;				pc_touched = 1'b1;				end			    //LAST			    else if (CHSD == 2'b11) begin				first = 1'b0;				keep_looping = 1'b0;			        end			    //GO			    else begin				first = 1'b0;				next_pc = PC;				pc_touched = 1'b1;				end			end			else begin			    //LAST			    if (CHSE == 2'b11)				keep_looping = 1'b0;			    else begin				next_pc = PC;				pc_touched = 1'b1;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品初高中害羞小美女文| 欧美一区二区三区喷汁尤物| 日日摸夜夜添夜夜添国产精品 | 《视频一区视频二区| 欧美日韩免费一区二区三区| 国产成人av电影在线观看| 亚洲图片自拍偷拍| 国产精品久久久久久亚洲伦| 日韩精品在线一区二区| 91免费观看视频在线| 国内精品自线一区二区三区视频| 亚洲午夜电影在线| 中文字幕一区二区不卡| 久久久久国产精品麻豆ai换脸 | 国产精品一区二区视频| 五月开心婷婷久久| 亚洲日本丝袜连裤袜办公室| 久久综合九色综合久久久精品综合| 亚洲日本在线视频观看| 日韩欧美三级在线| 51久久夜色精品国产麻豆| 色天使色偷偷av一区二区 | 欧美乱妇23p| 91在线国产观看| 国产高清精品久久久久| 久久er99精品| 麻豆精品一区二区综合av| 亚洲国产va精品久久久不卡综合| 自拍视频在线观看一区二区| 国产精品久久久久三级| 国产日韩欧美亚洲| 国产亚洲欧美激情| 久久一区二区三区国产精品| 欧美一级理论片| 欧美精品一级二级| 精品视频999| 精品视频在线免费观看| 欧洲精品一区二区三区在线观看| 在线视频一区二区三区| 在线观看一区二区视频| 色哟哟一区二区在线观看 | 成人精品视频一区| 国产mv日韩mv欧美| 国产成人精品免费| 高清久久久久久| k8久久久一区二区三区| 成人动漫av在线| 91尤物视频在线观看| 91网站在线播放| 欧洲亚洲精品在线| 日韩精品资源二区在线| 欧美日韩美少妇| 欧美一区二区三区免费在线看 | 2023国产精华国产精品| 久久久久久久久久电影| 国产精品色噜噜| 亚洲欧美日韩中文字幕一区二区三区| 亚洲欧洲综合另类| 亚洲成人久久影院| 日本成人在线看| 狠狠色狠狠色综合| 成人免费看的视频| 色天天综合久久久久综合片| 欧美巨大另类极品videosbest | 亚洲精品欧美综合四区| 午夜电影一区二区三区| 另类调教123区 | 99精品视频在线观看免费| 一本久道久久综合中文字幕| 欧美色图免费看| 日韩欧美一区在线| 中文字幕不卡在线播放| 一区二区三区四区视频精品免费| 亚洲妇女屁股眼交7| 久久精品国产久精国产| 成人黄色av电影| 欧美人xxxx| 久久先锋影音av鲁色资源网| 最近日韩中文字幕| 蜜桃视频免费观看一区| 成人妖精视频yjsp地址| 欧美日本一区二区在线观看| 精品国产网站在线观看| 亚洲乱码国产乱码精品精可以看| 日韩专区在线视频| 高清日韩电视剧大全免费| 欧美日韩免费在线视频| 国产精品视频免费| 日韩二区三区在线观看| 不卡av免费在线观看| 91精品国产一区二区人妖| 国产精品久久久久桃色tv| 免费成人在线影院| 色婷婷综合久久久| 亚洲成av人在线观看| 国产成人精品影视| 91麻豆精品国产91久久久更新时间| 日本一二三四高清不卡| 午夜精品一区二区三区三上悠亚| 成人在线视频一区二区| 欧美一级艳片视频免费观看| 一区二区三区中文免费| 国产v日产∨综合v精品视频| 日韩亚洲欧美中文三级| 亚洲在线成人精品| 成人av网站在线| 日韩一区二区在线看片| 亚洲自拍偷拍麻豆| zzijzzij亚洲日本少妇熟睡| 欧美精品一区二区精品网| 亚洲观看高清完整版在线观看| www.日韩大片| 久久久综合激的五月天| 美女一区二区久久| 欧美日韩国产123区| 亚洲男人天堂av网| 粉嫩av一区二区三区在线播放| 91麻豆精品91久久久久久清纯| 亚洲裸体在线观看| 成人av在线资源网站| 国产亚洲人成网站| 国产一区二区三区不卡在线观看 | 综合久久久久综合| 不卡av电影在线播放| 亚洲国产精品av| 国产成人免费视频一区| 精品国产人成亚洲区| 麻豆国产欧美日韩综合精品二区| 欧美高清dvd| 五月综合激情网| 欧美日韩免费观看一区三区| 亚洲与欧洲av电影| 欧美三级一区二区| 亚洲国产精品久久不卡毛片| 欧美亚洲综合一区| 亚洲自拍偷拍欧美| 欧美日韩1234| 免费三级欧美电影| 日韩女优毛片在线| 韩国一区二区在线观看| 久久你懂得1024| 国产精品主播直播| 欧美国产精品劲爆| 成人激情免费视频| 亚洲欧洲www| 在线免费不卡电影| 日韩av电影天堂| 日韩午夜激情av| 黄色日韩网站视频| 国产亚洲精品资源在线26u| 国产69精品久久久久毛片| 国产精品美女久久久久久久久 | 欧美私模裸体表演在线观看| 亚洲成人av在线电影| 4438x亚洲最大成人网| 久久www免费人成看片高清| 久久夜色精品一区| av中文字幕亚洲| 亚洲在线视频网站| 7777女厕盗摄久久久| 精品一区二区三区免费| 欧美—级在线免费片| 色综合激情久久| 免费视频最近日韩| 国产精品素人视频| 欧美视频三区在线播放| 久久超碰97人人做人人爱| 国产精品高潮呻吟| 欧美日韩久久久久久| 国产一区久久久| 亚洲黄色免费网站| 日韩欧美一二三| 成人免费毛片a| 日韩电影在线观看一区| 欧美激情在线看| 91成人网在线| 久久成人免费日本黄色| 亚洲欧美日韩综合aⅴ视频| 69精品人人人人| 成人精品小蝌蚪| 日韩电影在线免费看| 国产精品免费免费| 欧美一区二区大片| jlzzjlzz亚洲日本少妇| 免费在线成人网| 18成人在线视频| 精品嫩草影院久久| 91久久精品一区二区二区| 精品中文字幕一区二区| 亚洲男人都懂的| 久久久久久99久久久精品网站| 欧美在线999| 国产凹凸在线观看一区二区| 日韩精品亚洲专区| 亚洲精品乱码久久久久久黑人| 精品免费99久久| 欧美日韩国产综合一区二区三区| 国产**成人网毛片九色| 久久精品国产精品亚洲综合| 亚洲愉拍自拍另类高清精品|