resrcshr.v

来自「多个Verilog和vhdl程序例子」· Verilog 代码 · 共 42 行

V
42
字号
// Without resource sharing you
// get an 8-bit adder and a 8-bit subtractor feeding a mux
module add_sub1(result, a, b, add_sub);
output [7:0] result;
input [7:0] a, b;
input add_sub;
reg [7:0] result;

always @(a or b or add_sub)
begin 
	if (add_sub)
		result = a + b;
	else
		result = a - b;
end

endmodule

// With manual resource sharing you 
// get less logic:
// 8 inverters feeding a mux feeding an 8-bit adder
module add_sub2(result, a, b, add_sub);
output [7:0] result;
input [7:0] a, b;
input add_sub;
reg [7:0] result;

always @(a or b or add_sub)
begin: label
	// If you label your always block, you can have local
	// declarations. I declared temp.
	reg [7:0] temp;
	if (add_sub)
		temp = b;
	else
		temp = ~b;
	result = a + temp + !add_sub;
end

endmodule

⌨️ 快捷键说明

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