mirror of https://github.com/YosysHQ/yosys.git
213 lines
2.9 KiB
Plaintext
213 lines
2.9 KiB
Plaintext
read_verilog << EOT
|
|
|
|
module top(input [3:0] a, input en, output [7:0] d);
|
|
|
|
always @*
|
|
if (en)
|
|
case(a)
|
|
4'h0: d <= 8'h12;
|
|
4'h1: d <= 8'h34;
|
|
4'h2: d <= 8'h56;
|
|
4'h3: d <= 8'h78;
|
|
4'h4: d <= 8'h9a;
|
|
4'h5: d <= 8'hbc;
|
|
4'h6: d <= 8'hde;
|
|
4'h7: d <= 8'hff;
|
|
4'h8: d <= 8'h61;
|
|
4'h9: d <= 8'h49;
|
|
4'ha: d <= 8'h36;
|
|
4'hb: d <= 8'h81;
|
|
4'hc: d <= 8'h8c;
|
|
4'hd: d <= 8'ha9;
|
|
4'he: d <= 8'h99;
|
|
4'hf: d <= 8'h51;
|
|
endcase
|
|
else
|
|
d <= 0;
|
|
|
|
endmodule
|
|
|
|
EOT
|
|
|
|
hierarchy -auto-top
|
|
|
|
design -save orig
|
|
proc
|
|
select -assert-count 1 t:$memrd_v2 a:src %i
|
|
memory
|
|
opt_dff
|
|
design -stash postopt
|
|
design -load orig
|
|
proc -norom
|
|
design -stash preopt
|
|
|
|
equiv_opt -assert -run prepare: dummy
|
|
|
|
|
|
|
|
design -reset
|
|
|
|
read_verilog << EOT
|
|
|
|
module top(input [3:0] a, input en, output [7:0] d);
|
|
|
|
always @*
|
|
if (en)
|
|
case(a)
|
|
4'h0: d <= 8'h12;
|
|
4'h1: d <= 8'h34;
|
|
4'h2: d <= 8'h56;
|
|
4'h3: d <= 8'h78;
|
|
4'h4: d <= 8'h9a;
|
|
4'h5: d <= 8'hbc;
|
|
4'h6: d <= 8'hde;
|
|
4'h7: d <= 8'hff;
|
|
4'h8: d <= 8'h61;
|
|
4'h9: d <= 8'h49;
|
|
4'ha: d <= 8'h36;
|
|
4'hb: d <= 8'h81;
|
|
4'hc: d <= 8'h8c;
|
|
default: d <= 8'h11;
|
|
endcase
|
|
else
|
|
d <= 0;
|
|
|
|
endmodule
|
|
|
|
EOT
|
|
|
|
hierarchy -auto-top
|
|
|
|
design -save orig
|
|
proc
|
|
select -assert-count 1 t:$memrd_v2 a:src %i
|
|
memory
|
|
opt_dff
|
|
design -stash postopt
|
|
design -load orig
|
|
proc -norom
|
|
design -stash preopt
|
|
|
|
equiv_opt -assert -run prepare: dummy
|
|
|
|
|
|
|
|
design -reset
|
|
|
|
read_verilog << EOT
|
|
|
|
module top(input [31:0] a, input en, output [7:0] d);
|
|
|
|
always @*
|
|
if (en)
|
|
case(a)
|
|
0: d <= 8'h12;
|
|
1: d <= 8'h34;
|
|
2: d <= 8'h56;
|
|
3: d <= 8'h78;
|
|
4: d <= 8'h9a;
|
|
5: d <= 8'hbc;
|
|
6: d <= 8'hde;
|
|
7: d <= 8'hff;
|
|
8: d <= 8'h61;
|
|
9: d <= 8'h49;
|
|
10: d <= 8'h36;
|
|
11: d <= 8'h81;
|
|
12: d <= 8'h8c;
|
|
default: d <= 8'h11;
|
|
endcase
|
|
else
|
|
d <= 0;
|
|
|
|
endmodule
|
|
|
|
EOT
|
|
|
|
hierarchy -auto-top
|
|
|
|
design -save orig
|
|
proc
|
|
select -assert-count 1 t:$memrd_v2 a:src %i
|
|
memory
|
|
opt_dff
|
|
design -stash postopt
|
|
design -load orig
|
|
proc -norom
|
|
design -stash preopt
|
|
|
|
equiv_opt -assert -run prepare: dummy
|
|
|
|
|
|
design -reset
|
|
|
|
read_verilog << EOT
|
|
|
|
module top(input [3:0] a, input en, output [7:0] d);
|
|
|
|
always @*
|
|
if (en)
|
|
case(a)
|
|
'h0: d <= 8'h12;
|
|
'h1: d <= 8'h34;
|
|
'h2: d <= 8'h56;
|
|
'h3: d <= 8'h78;
|
|
'h4: d <= 8'h9a;
|
|
'h5: d <= 8'hbc;
|
|
'h6: d <= 8'hde;
|
|
'h7: d <= 8'hff;
|
|
'h8: d <= 8'h61;
|
|
'h9: d <= 8'h49;
|
|
'ha: d <= 8'h36;
|
|
'hb: d <= 8'h81;
|
|
'hc: d <= 8'h8c;
|
|
'hd: d <= 8'ha9;
|
|
'he: d <= 8'h99;
|
|
'hf: d <= 8'h51;
|
|
endcase
|
|
else
|
|
d <= 0;
|
|
|
|
endmodule
|
|
|
|
EOT
|
|
|
|
hierarchy -auto-top
|
|
|
|
design -save orig
|
|
proc
|
|
select -assert-count 1 t:$memrd_v2 a:src %i
|
|
memory
|
|
opt_dff
|
|
design -stash postopt
|
|
design -load orig
|
|
proc -norom
|
|
design -stash preopt
|
|
|
|
equiv_opt -assert -run prepare: dummy
|
|
|
|
|
|
design -reset
|
|
|
|
read_rtlil <<EOT
|
|
|
|
module \m
|
|
wire width 3 input 1 \a
|
|
|
|
process \p
|
|
switch \a
|
|
case 3'000
|
|
case 3'001
|
|
case 3'010
|
|
case 3'011
|
|
case 3'100
|
|
case 3'101
|
|
case 3'110
|
|
case 3'111
|
|
end
|
|
end
|
|
end
|
|
|
|
EOT
|
|
|
|
proc_rom
|