#1
module top_module(
input a,
input b,
output wire out_assign,
output reg out_alwaysblock
);
assign out_assign = a & b;
always @(*) begin
out_alwaysblock = a & b;
end
endmodule
#2
// synthesis verilog_input_version verilog_2001
module top_module(
input clk,
input a,
input b,
output wire out_assign,
output reg out_always_comb,
output reg out_always_ff );
assign out_assign = a ^ b;
always @(*) begin
out_always_comb = a ^ b;
end
always @(posedge clk) begin
out_always_ff <= a ^ b;
end
endmodule
#3
// synthesis verilog_input_version verilog_2001
module top_module(
input a,
input b,
input sel_b1,
input sel_b2,
output wire out_assign,
output reg out_always );
assign out_assign = (sel_b1 && sel_b2) ? b : a;
always @(*) begin
if((sel_b1 && sel_b2) == 'd1) begin
out_always = b;
end
else begin
out_always = a;
end
end
endmodule
#4
// synthesis verilog_input_version verilog_2001
module top_module (
input cpu_overheated,
output reg shut_off_computer,
input arrived,
input gas_tank_empty,
output reg keep_driving ); //
always @(*) begin
if (cpu_overheated)
shut_off_computer = 1;
else
shut_off_computer = 0;
end
always @(*) begin
if (~arrived)
keep_driving = ~gas_tank_empty;
else
keep_driving = 0;
end
endmodule
#5
// synthesis verilog_input_version verilog_2001
module top_module (
input [2:0] sel,
input [3:0] data0,
input [3:0] data1,
input [3:0] data2,
input [3:0] data3,
input [3:0] data4,
input [3:0] data5,
output reg [3:0] out );//
always@(*) begin // This is a combinational circuit
case(sel)
'd0:
out <= data0;
'd1:
out <= data1;
'd2:
out <= data2;
'd3:
out <= data3;
'd4:
out <= data4;
'd5:
out <= data5;
default: out <= 'd0;
endcase
end
endmodule
#6
// synthesis verilog_input_version verilog_2001
module top_module (
input [3:0] in,
output reg [1:0] pos );
always @(*) begin
case(in)
4'b0001,4'b0011,4'b0101,4'b1001,4'b0111,4'b1101,4'b1111,4'b1011:
pos = 'd0;
4'b0010,4'b0110,4'b1010,4'b1110:
pos = 'd1;
4'b0100,4'b1100:
pos = 'd2;
4'b1000:
pos = 'd3;
default: pos = 'd0;
endcase
end
endmodule
#7
// synthesis verilog_input_version verilog_2001
module top_module (
input [7:0] in,
output reg [2:0] pos );
always @(*) begin
casez(in)
8'bzzzzzzz1:
pos = 'd0;
8'bzzzzzz1z:
pos = 'd1;
8'bzzzzz1zz:
pos = 'd2;
8'bzzzz1zzz:
pos = 'd3;
8'bzzz1zzzz:
pos = 'd4;
8'bzz1zzzzz:
pos = 'd5;
8'bz1zzzzzz:
pos = 'd6;
8'b1zzzzzzz:
pos = 'd7;
default: pos = 'd0;
endcase
end
endmodule
#8
// synthesis verilog_input_version verilog_2001
module top_module (
input [15:0] scancode,
output reg left,
output reg down,
output reg right,
output reg up );
always @(*) begin
if(scancode == 16'he06b) begin
left <= 'd1;
up <= 'd0;
right <= 'd0;
down <= 'd0;
end
else if(scancode == 16'he072) begin
down <= 'd1;
left <= 'd0;
up <= 'd0;
right <= 'd0;
end
else if(scancode == 16'he074) begin
right <= 'd1;
down <= 'd0;
left <= 'd0;
up <= 'd0;
end
else if(scancode == 16'he075) begin
up <= 'd1;
right <= 'd0;
down <= 'd0;
left <= 'd0;
end
else begin
up <= 'd0;
right <= 'd0;
down <= 'd0;
left <= 'd0;
end
end
endmodule