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

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

?? arm10.v

?? arm10-behavioral的行為仿真代碼verilogHDL
?? 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一区二区三区免费野_久草精品视频
亚洲在线视频免费观看| 91免费看`日韩一区二区| 国产成人在线看| 99re热这里只有精品视频| 久久久久国产精品麻豆ai换脸| 成人欧美一区二区三区1314| 日本成人在线不卡视频| a级高清视频欧美日韩| 精品久久久久99| 夜夜嗨av一区二区三区网页| 国产不卡免费视频| 欧美大片一区二区| 日韩精品乱码免费| 欧美三级乱人伦电影| 国产精品电影院| 狠狠色丁香久久婷婷综合丁香| 欧美视频在线一区| 伊人色综合久久天天| kk眼镜猥琐国模调教系列一区二区| 精品国产凹凸成av人导航| 日本成人在线一区| 欧美剧情片在线观看| 亚洲成人免费观看| 欧美三级中文字| 午夜精品福利一区二区三区av | 中文字幕不卡三区| 久久se精品一区精品二区| 欧美久久一区二区| 亚洲18女电影在线观看| 欧美日韩在线精品一区二区三区激情| 中文字幕一区二区在线观看| 不卡影院免费观看| 国产精品免费观看视频| 成人精品高清在线| 国产精品二三区| 99国产欧美另类久久久精品 | 7777精品久久久大香线蕉| 亚洲尤物在线视频观看| 欧美视频日韩视频在线观看| 亚洲丰满少妇videoshd| 欧美日韩成人在线一区| 免费一区二区视频| 欧美va亚洲va在线观看蝴蝶网| 国产麻豆一精品一av一免费 | 国产一区二区三区在线观看精品| 日韩手机在线导航| 国产一区日韩二区欧美三区| 国产无人区一区二区三区| 成人午夜视频在线观看| 伊人夜夜躁av伊人久久| 在线综合+亚洲+欧美中文字幕| 精品一区二区三区在线播放视频| 2021中文字幕一区亚洲| 不卡一区在线观看| 亚洲成人第一页| 久久久午夜电影| 一本大道综合伊人精品热热| 午夜精品免费在线| 国产午夜精品一区二区三区视频 | 蜜桃av一区二区三区| 2021久久国产精品不只是精品| yourporn久久国产精品| 亚洲小说春色综合另类电影| 日韩一区二区三区免费观看| 成人午夜电影久久影院| 亚洲成av人**亚洲成av**| 精品国产一二三区| 色噜噜狠狠色综合中国| 麻豆国产一区二区| 国产精品成人免费在线| 777欧美精品| 不卡的av网站| 免费成人av在线| 亚洲欧美色图小说| 精品蜜桃在线看| 欧美日韩在线三级| 99v久久综合狠狠综合久久| 免费在线看成人av| 亚洲一区二区视频在线| 日本一区二区三区视频视频| 欧美日韩三级一区二区| 99久久精品情趣| 精品亚洲成av人在线观看| 亚洲自拍偷拍九九九| 日本一区二区成人在线| 欧美成人精品1314www| 在线观看一区不卡| 成人黄色一级视频| 国产美女久久久久| 青草av.久久免费一区| 亚洲一卡二卡三卡四卡| 最新日韩av在线| 国产视频一区二区在线| 日韩欧美国产系列| 欧美日韩免费观看一区三区| 91在线视频官网| 成人av网站大全| 成人小视频免费在线观看| 国产一区三区三区| 美女国产一区二区三区| 亚洲18影院在线观看| 亚洲影视在线观看| 亚洲精品视频自拍| 亚洲欧洲成人精品av97| 国产精品乱子久久久久| 日本一区二区免费在线| 久久精品一区四区| 国产亚洲人成网站| 久久久噜噜噜久久中文字幕色伊伊| 在线播放日韩导航| 91精品婷婷国产综合久久性色| 欧美日韩亚州综合| 制服丝袜亚洲精品中文字幕| 欧美妇女性影城| 欧美一级久久久久久久大片| 欧美日韩午夜在线视频| 欧美精品日日鲁夜夜添| 欧美日韩国产片| 91精品国产91综合久久蜜臀| 欧美一卡二卡三卡| 26uuu精品一区二区在线观看| 欧美变态tickling挠脚心| 久久亚洲影视婷婷| 中文字幕欧美激情| 1024成人网| 亚洲综合在线五月| 日韩成人午夜精品| 国内精品伊人久久久久av影院| 国产一区91精品张津瑜| 成人激情动漫在线观看| 91一区一区三区| 欧美二区乱c少妇| 精品国产一区二区三区忘忧草| 国产欧美综合在线观看第十页| 欧美激情一区二区三区不卡| 亚洲欧美激情视频在线观看一区二区三区| 亚洲免费毛片网站| 亚洲v中文字幕| 精品亚洲porn| 色av成人天堂桃色av| 欧美高清视频不卡网| 久久久国产午夜精品| 中文字幕亚洲区| 日日夜夜精品免费视频| 国产一区二区三区免费看 | 久久久精品免费免费| 1024国产精品| 美女高潮久久久| 色婷婷综合久久久久中文| 欧美videofree性高清杂交| 最近日韩中文字幕| 日日摸夜夜添夜夜添国产精品| 九九**精品视频免费播放| 99视频一区二区三区| 69久久夜色精品国产69蝌蚪网| 久久夜色精品国产噜噜av| 亚洲麻豆国产自偷在线| 免费看日韩精品| 91免费观看视频| 久久人人97超碰com| 亚洲va韩国va欧美va精品| 国产成人在线色| 欧美一区二区三区小说| 一区二区三区四区中文字幕| 国产在线看一区| 欧美久久一二三四区| 亚洲欧洲精品一区二区三区| 久久99国产精品免费| 欧美喷潮久久久xxxxx| 国产精品久久久久久久久久免费看| 日韩电影免费一区| 在线精品视频免费播放| 国产日本一区二区| 麻豆久久久久久| 欧美麻豆精品久久久久久| 亚洲欧美视频在线观看视频| 国内一区二区在线| 日韩午夜在线影院| 天堂资源在线中文精品| 99精品在线免费| 国产欧美精品日韩区二区麻豆天美| 日韩中文字幕麻豆| 欧美四级电影网| 亚洲三级在线播放| 成人高清免费在线播放| 2024国产精品视频| 韩日av一区二区| 日韩一级片在线观看| 偷拍自拍另类欧美| 在线亚洲欧美专区二区| 亚洲日本一区二区三区| av一二三不卡影片| 国产精品国产a| heyzo一本久久综合| 国产精品网友自拍| 99久久综合国产精品| 中文字幕亚洲视频| 色播五月激情综合网| 亚洲精品视频一区| 欧美在线观看18|