基本形 演算 ( 入 [7:0] ア,イ, 入 たす, ひく, かける, わる 、 出 単子[7:0] ウ ); 組合せの度に 始 たす の 時は ウ = ア+ イ ; ひく の 時は ウ = ア - イ; かける の 時は ウ = ア * イ; わる の 時は ウ = ア / イ; 終  基本形終 module enzan ( input [7:0] a,i, input tasu, hiku,kakeru,waru, output bit[7:0] u ); always_comb begin if (tasu) u = a + i ; else if (hiku) u = a - i ; else if (kakeru) u = a * i ; else if (waru) u = a / i ; end endmodule 基本形 演算_上位(); 単子[7:0] ア,イ,ウ; 単子 たす、ひく、かける、わる; 初めに 始   遅刻 100 ア = 4; イ = 2; 遅刻 100 たす = 1; 遅刻 100 たす = 0; 遅刻 100 ひく = 1; 遅刻 100 イ = 3; 遅刻 100 ひく = 0; 遅刻 100 かける = 1 ; 遅刻 100 かける = 0; 遅刻 100 わる = 1; 遅刻 100 わる = 0; 遅刻 100 かける = 1; 遅刻 200 停止; 終 演算 演算_(.ア(ア), .イ(イ),.ウ(ウ),.たす(たす),.ひく(ひく),.かける(かける),.わる(わる); 基本形終 module enzan_top(); bit [7:0] a,i,u; bit tasu,hiku,kakeru,waru; initial begin # 100 a = 4 ; i = 2 ; # 100 tasu = 1 ; # 100 tasu = 0 ; # 100 hiku = 1 ; # 100 i = 3 ; # 100 hiku = 0; # 100 kakeru = 1; # 100 kakeru = 0; # 100 waru = 1 ; # 100 waru = 0; # 100 kakeru = 1 ; #100 i = 10; # 200 $stop ; end enzan enzan_(.a(a),.i(i),.u(u),.tasu(tasu),.hiku(hiku),.kakeru(kakeru),.waru(waru)) ; endmodule