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

📄 add_16_pipe.v

📁 VerilogHDL_advanced_digital_design_code_Ch9 VerilogHDL高级数字设计源码Ch9
💻 V
字号:
module add_16_pipe (c_out, sum, a, b, c_in, clock);
  parameter	size 	= 16;
  parameter	half	= size / 2;
  parameter	double	= 2 * size;
  parameter	triple	= 3 * half;
  parameter	size1 = half -1;		// 7
  parameter	size2 = size -1;    		// 15
  parameter	size3 = half + 1;		// 9	
  parameter 	R1 = 1;			// 1
  parameter	L1 = half;
  parameter	R2 = size3;
  parameter	L2 = size;
  parameter	R3 = size + 1;
  parameter	L3 = size + half;
  parameter	R4 = double - half +1;
  parameter	L4 = double;

  input 	[size2: 0]	a, b;
  input 			c_in, clock;
  output	[size2: 0]	sum;
  output			c_out;

  reg 	[double: 0]	IR;
  reg 	[triple: 0]	PR;
  reg	[size: 0]		OR;

  assign {c_out, sum} = OR;

  always @ (posedge clock) begin

    // Load input register

    IR[0] <= c_in;

    IR[L1:R1] <= a[size1: 0];
    IR[L2:R2] <= b[size1: 0];

    IR[L3:R3] <= a[size2: half];
    IR[L4:R4] <= b[size2: half];
    
  // Load pipeline register

     PR[L3: R3] <=IR[L4: R4];
     PR[L2: R2] <=IR[L3: R3];
     PR[half: 0] <= IR[L2:R2] + IR[L1:R1] + IR[0];
     OR <= {{1'b0,PR[L3: R3]} + {1'b0,PR[L2: R2]} + PR[half], PR[size1: 0]};
  end
endmodule

⌨️ 快捷键说明

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