⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cu.v

📁 cup 的设计源代码
💻 V
字号:
`timescale 1ns / 1ps//////////////////////////////////////////////////////////////////////////////// Company: // Engineer://// Create Date:    15:25:55 10/15/08// Design Name:    // Module Name:    cu// Project Name:   // Target Device:  // Tool versions:  // Description://// Dependencies:// // Revision:// Revision 0.01 - File Created// Additional Comments:// ////////////////////////////////////////////////////////////////////////////////module CU(CLE, ZLE, ACLE, HACLE, IRLE, MULLE, DIVLE, C_SEL, MUL_SEL, DIV_SEL,              AB_SEL, DB_SEL, SPIE, SPDE, PCCE, CS, READ, WRITE, ALU_OP,PCLE, ARLE,              GR_ADDRESS, IR_OUT, C_OUT, Z_OUT, CLK, RST,AR_OUT,GRLE);    output CLE;	   reg  CLE;			//CLE ?1b,C?????    output ZLE;		reg  ZLE;	      output ACLE;		reg  ACLE;    output HACLE;		reg  HACLE;    output IRLE;		reg  IRLE;    output MULLE;		reg  MULLE;    output DIVLE;		reg  DIVLE;	 output PCLE;	reg PCLE;	 output ARLE;	reg ARLE;    output [1:0] C_SEL;		 reg  [1:0] C_SEL;	    output MUL_SEL;			 reg  MUL_SEL;    output [1:0] DIV_SEL;	 reg  [1:0] DIV_SEL;    output [1:0] AB_SEL;	 reg  [1:0] AB_SEL;    output [3:0] DB_SEL;	 reg  [3:0] DB_SEL;    output SPIE;				 reg  SPIE;    output SPDE;				 reg  SPDE;    output PCCE;				 reg  PCCE;    output CS;					 reg  CS;    output READ;				 reg  READ;    output WRITE;				 reg  WRITE;    output [4:0] ALU_OP;		reg  [4:0] ALU_OP;    output [2:0] GR_ADDRESS;	  reg   [2:0] GR_ADDRESS;	 output GRLE;			reg GRLE;    input [7:0] IR_OUT;		     input C_OUT;    input Z_OUT;    input CLK;    input RST;	 input [7:0] AR_OUT;  //? AR ?????parameter  FIRST ='b000,SECOND ='b001,THIRD = 'b010,HALT = 'b011,FORTH = 'b100,FIFTH='b101;parameter SP_START='b1111_1111;	//????????reg [2:0] state;  //????always @ (posedge CLK  or  negedge RST)	//???begin	if(!RST)		state <=FIFTH;	else  	begin			case(state)				FIRST:	state <=SECOND;				SECOND:	state <=THIRD;				THIRD :	state <=FORTH;				FORTH : state <=FIFTH;				FIFTH :				begin					if(IR_OUT[7:3]=='b01000)						state <= HALT;					else						state <= FIRST;				end				HALT:	state <= HALT;			endcase	endendalways @ (state or C_OUT or Z_OUT or IR_OUT or AR_OUT)begin	ZLE = 'b0;	ALU_OP =	'b0;	ACLE = 'b0;	GR_ADDRESS = 'b0;	GRLE = 'b0;	IRLE = 'b0;	ARLE = 'b0;	PCLE = 'b0;	PCCE = 'b0;	HACLE = 'b0;	MULLE = 'b0;	DIVLE = 'b0;	C_SEL ='b0;	MUL_SEL = 'b0;	DIV_SEL ='b0;	AB_SEL = 'b0;	DB_SEL = 'b0;	SPIE = 'b0;	SPDE = 'b0;	PCCE = 'b0;	CS = 'b0;			 //?????	READ ='b0;			 //?????	WRITE ='b1;			 //?????	ALU_OP = 'b0;	GR_ADDRESS = 'b0;
	case(state)	FIRST:		begin			CS ='b0;			AB_SEL = 'b10;			DB_SEL = 'b0101;			IRLE = 'b1;			PCCE = 'b1;		end	SECOND:		begin				if(IR_OUT[7:3] =='b00010||IR_OUT[7:3]=='b00011)		begin
				CS = 'b1;		   	if(IR_OUT[7:3] =='b00010)		   	begin		   	   DB_SEL='b0100;		   	   ACLE ='b1;		   	end		   	if(IR_OUT[7:3]=='b00011)		   	begin		   	   DB_SEL='b0000;		   	   HACLE='b1;		   	end		end		else		begin		if(IR_OUT[7:6]=='b01)		begin	
				CS = 'b1;						if(IR_OUT[7:3]!='b01000&&IR_OUT[7:3]!='b01111)				begin								ALU_OP = IR_OUT[7:3];					DB_SEL = 'b0001;					ACLE = 'b1;					CLE = 'b1;					ZLE = 'b1;					if(IR_OUT[7:3]=='b01010)//SHCR						C_SEL = 'b01;					if(IR_OUT[7:3]=='b01100)//SHCL						C_SEL = 'b10;				end				if(IR_OUT[7:3]=='b01111) //RET					SPIE = 'b1;		end		else		begin				if(IR_OUT[7:3]=='b10011||IR_OUT[7:3]=='b10100||IR_OUT[7:3]=='b10101)		//JMP JNC JNZ				begin            		if(IR_OUT[7:3]=='b10100&&C_OUT!='b0||IR_OUT[7:3]=='b10101&&Z_OUT!='b0)					begin	
						CS = 'b1;						 						PCCE = 'b1;					end					else					begin						CS ='b0;						AB_SEL = 'b10;						DB_SEL = 'b0101;						PCLE = 'b1;					end				end				else				begin				   CS ='b0;               AB_SEL = 'b10;               DB_SEL = 'b0101;               PCCE = 'b1;               ARLE = 'b1;											if(IR_OUT[7:3]=='b10001||IR_OUT[2:0]== 'b10111||IR_OUT[2:0]== 'b11001)	  //POP  POPAC POPHAC					begin						SPIE = 'b1;					end				end											end		end		end	THIRD:		begin				if(IR_OUT[7:3]=='b00000||IR_OUT[7:3]=='b00001) 		  //LOAD  STORE			begin				if(IR_OUT[2:0]=='b001)		 //??驞LOAD 2?驞

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -