mirror of https://github.com/YosysHQ/yosys.git
add tristate buffer and test
This commit is contained in:
parent
9517525224
commit
903f997391
|
@ -302,6 +302,12 @@ module OBUF(output O, input I);
|
||||||
assign O = I;
|
assign O = I;
|
||||||
endmodule
|
endmodule
|
||||||
|
|
||||||
|
module TBUF (O, I, OEN);
|
||||||
|
input I, OEN;
|
||||||
|
output O;
|
||||||
|
assign O = OEN ? I : 1'bz;
|
||||||
|
endmodule
|
||||||
|
|
||||||
module GSR (input GSRI);
|
module GSR (input GSRI);
|
||||||
wire GSRO = GSRI;
|
wire GSRO = GSRI;
|
||||||
endmodule
|
endmodule
|
||||||
|
|
|
@ -174,7 +174,7 @@ struct SynthGowinPass : public ScriptPass
|
||||||
run("synth -run coarse");
|
run("synth -run coarse");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!nobram && check_label("bram", "(skip if -nobram)"))
|
if (!nobram && check_label("bram", "(skip if -nobram)"))
|
||||||
{
|
{
|
||||||
run("memory_bram -rules +/gowin/bram.txt");
|
run("memory_bram -rules +/gowin/bram.txt");
|
||||||
run("techmap -map +/gowin/brams_map.v -map +/gowin/cells_sim.v");
|
run("techmap -map +/gowin/brams_map.v -map +/gowin/cells_sim.v");
|
||||||
|
@ -230,7 +230,7 @@ struct SynthGowinPass : public ScriptPass
|
||||||
run("techmap -map +/gowin/cells_map.v");
|
run("techmap -map +/gowin/cells_map.v");
|
||||||
run("setundef -undriven -params -zero");
|
run("setundef -undriven -params -zero");
|
||||||
run("hilomap -singleton -hicell VCC V -locell GND G");
|
run("hilomap -singleton -hicell VCC V -locell GND G");
|
||||||
run("iopadmap -bits -inpad IBUF O:I -outpad OBUF I:O", "(unless -noiopads)");
|
run("iopadmap -bits -inpad IBUF O:I -outpad OBUF I:O, -toutpad TBUF OEN:I:O", "(unless -noiopads)");
|
||||||
run("dffinit -ff DFF Q INIT");
|
run("dffinit -ff DFF Q INIT");
|
||||||
run("clean");
|
run("clean");
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,13 @@
|
||||||
|
read_verilog ../common/tribuf.v
|
||||||
|
hierarchy -top tristate
|
||||||
|
proc
|
||||||
|
tribuf
|
||||||
|
flatten
|
||||||
|
synth
|
||||||
|
equiv_opt -assert -map +/gowin/cells_sim.v -map +/simcells.v synth_gowin # equivalency check
|
||||||
|
design -load postopt # load the post-opt design (otherwise equiv_opt loads the pre-opt design)
|
||||||
|
cd tristate # Constrain all select calls below inside the top module
|
||||||
|
#Internal cell type used. Need support it.
|
||||||
|
select -assert-count 1 t:TBUF
|
||||||
|
select -assert-count 2 t:IBUF
|
||||||
|
select -assert-none t:TBUF t:IBUF %% t:* %D
|
Loading…
Reference in New Issue