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

📄 acc.v

📁 一个嵌入式RISC CPU 的Verilog 设计源码
💻 V
字号:
/****************************************************************************************
 MODULE:		Sub Level Accumulator Block

 FILE NAME:	acc.v
 VERSION:	1.0
 DATE:		September 28th, 2001
 AUTHOR:		Hossein Amidi
 COMPANY:	California Unique Electrical Co.
 CODE TYPE:	Register Transfer Level

 Instantiations:
 
 DESCRIPTION:
 Sub Level RTL Accumulator block, with zero & negetive flags

 Hossein Amidi
 (C) September 2001
 California Unique Electric

***************************************************************************************/
 
`timescale 1ns / 1ps

module	 ACC(	// Input
					clock,
					reset,
					ACCInEn,
					ACCDataIn,
					// Output
					ACCNeg,
					ACCZero,
					ACCDataOut
					);


// Parameter
parameter DataWidth = 32;

// Input
input  clock;
input  reset;
input	 ACCInEn;
input  [DataWidth - 1 : 0] ACCDataIn;

// Output
output  ACCNeg;
output  ACCZero;
output [DataWidth - 1 : 0] ACCDataOut;

// Signal Declerations
reg [DataWidth - 1 : 0]rACCDataOut;

// Assignments
assign ACCDataOut = rACCDataOut;
assign ACCNeg = rACCDataOut[31]; 
assign ACCZero = ~((((((((((((((((ACCDataOut[0]  | ACCDataOut[1])   |
										 (ACCDataOut[2]  | ACCDataOut[3]))  |
										 (ACCDataOut[4]  | ACCDataOut[5]))  |
								 		 (ACCDataOut[6]  | ACCDataOut[7]))  |
								 		 (ACCDataOut[8]  | ACCDataOut[9]))  |
								 		 (ACCDataOut[10] | ACCDataOut[11])) |
								 		 (ACCDataOut[12] | ACCDataOut[13])) |
								 		 (ACCDataOut[14] | ACCDataOut[15])) |
										 (ACCDataOut[16] | ACCDataOut[17])) |
										 (ACCDataOut[18] | ACCDataOut[19])) |
										 (ACCDataOut[20] | ACCDataOut[21])) |
										 (ACCDataOut[22] | ACCDataOut[23])) |
										 (ACCDataOut[24] | ACCDataOut[25])) |
										 (ACCDataOut[26] | ACCDataOut[27])) |
										 (ACCDataOut[28] | ACCDataOut[29])) |
										 (ACCDataOut[30] | ACCDataOut[31])) ;



always @(posedge reset or negedge clock)
begin
	if(reset == 1'b1)
		rACCDataOut <= 32'h0000;
	else
	if(ACCInEn == 1'b1)
		rACCDataOut <= ACCDataIn;
	else
		rACCDataOut <= rACCDataOut;
end
endmodule

⌨️ 快捷键说明

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