mirror of https://github.com/YosysHQ/yosys.git
41 lines
959 B
Systemverilog
41 lines
959 B
Systemverilog
|
module sub_mod(input i_in, output o_out);
|
||
|
assign o_out = i_in;
|
||
|
endmodule
|
||
|
|
||
|
module test(i_clk, i_reg, o_reg, o_wire);
|
||
|
input i_clk;
|
||
|
input i_reg;
|
||
|
output o_reg;
|
||
|
output o_wire;
|
||
|
|
||
|
// Enable this to see how it doesn't fail on yosys although it should
|
||
|
//reg o_wire;
|
||
|
// Enable this instead of the above to see how logic can be mapped to a wire
|
||
|
logic o_wire;
|
||
|
// Enable this to see how it doesn't fail on yosys although it should
|
||
|
//reg i_reg;
|
||
|
// Disable this to see how it doesn't fail on yosys although it should
|
||
|
reg o_reg;
|
||
|
|
||
|
logic l_reg;
|
||
|
|
||
|
// Enable this to tst if logic-turne-reg will catch assignments even if done before it turned into a reg
|
||
|
//assign l_reg = !o_reg;
|
||
|
initial o_reg = 1'b0;
|
||
|
always @(posedge i_clk)
|
||
|
begin
|
||
|
o_reg <= !o_reg;
|
||
|
l_reg <= !o_reg;
|
||
|
end
|
||
|
|
||
|
assign o_wire = !o_reg;
|
||
|
// Uncomment this to see how a logic already turned intoa reg can be freely assigned on yosys
|
||
|
//assign l_reg = !o_reg;
|
||
|
|
||
|
sub_mod sm_inst (
|
||
|
.i_in(1'b1),
|
||
|
.o_out(o_reg)
|
||
|
);
|
||
|
endmodule
|
||
|
|