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