k0b0's record.

Computer Engineering, Arts and Books

Introduction to SystemVerilog. Comparator, Multiplier

比較器、乗算器

 SystemVerilogで比較器、乗算器を記述してみる。

Comparator(比較器)

比較器(comparater.sv)

 比較器の記述。入力信号a、bを比較してその結果を出力信号として出力している。

/* comparater */
module comparater #(parameter WIDTH = 4)
                   (input [WIDTH-1:0] a, b,
		    output            eq,enq,lt,lte,gt,gte);

assign eq  = (a == b);
assign enq = (a != b);
assign lt  = (a < b);
assign lte = (a <= b);
assign gt  = (a > b);
assign gte = (a >= b);
endmodule

Multiplier(乗算器)

符号なし乗算器(multiplier.sv)

 Nbit符号なし乗算器の記述。SystemVerilogでは信号はデフォルトでは”符号なし”である。

/* multiplier.sv */
module multiplier #(parameter WIDTH   = 8,
                    parameter WIDTH_D = WIDTH*2)
                   (input  [WIDTH-1:0]   a, b,
		    output [WIDTH_D-1:0] y);

assign y = a * b;
endmodule

符号付き乗算器(multiplier_sig.sv)

 Nbit符号付き乗算器の記述。SystemVerilogでは符号を取り扱う場合は信号にsigned修飾子をつける。

/* multiplier_sig.sv */
module multiplier_sig #(parameter WIDTH   = 8,
                        parameter WIDTH_D = WIDTH * 2)
                       (input  signed [WIDTH-1:0] a, b,
		        output signed [WIDTH-1:0] y);

assign y = a * b;
endmodule