mirror of https://github.com/YosysHQ/yosys.git
intel_alm: Add IO buffer insertion
Signed-off-by: gatecat <gatecat@ds0.me>
This commit is contained in:
parent
3421979f00
commit
5dba138c87
|
@ -13,6 +13,7 @@ $(eval $(call add_share_file,share/intel_alm/common,techlibs/intel_alm/common/df
|
||||||
$(eval $(call add_share_file,share/intel_alm/common,techlibs/intel_alm/common/dsp_sim.v))
|
$(eval $(call add_share_file,share/intel_alm/common,techlibs/intel_alm/common/dsp_sim.v))
|
||||||
$(eval $(call add_share_file,share/intel_alm/common,techlibs/intel_alm/common/dsp_map.v))
|
$(eval $(call add_share_file,share/intel_alm/common,techlibs/intel_alm/common/dsp_map.v))
|
||||||
$(eval $(call add_share_file,share/intel_alm/common,techlibs/intel_alm/common/mem_sim.v))
|
$(eval $(call add_share_file,share/intel_alm/common,techlibs/intel_alm/common/mem_sim.v))
|
||||||
|
$(eval $(call add_share_file,share/intel_alm/common,techlibs/intel_alm/common/misc_sim.v))
|
||||||
|
|
||||||
$(eval $(call add_share_file,share/intel_alm/cyclonev,techlibs/intel_alm/cyclonev/cells_sim.v))
|
$(eval $(call add_share_file,share/intel_alm/cyclonev,techlibs/intel_alm/cyclonev/cells_sim.v))
|
||||||
|
|
||||||
|
|
|
@ -627,3 +627,38 @@ output [port_b_data_width-1:0] portbdataout;
|
||||||
input clk0, portawe, portbre;
|
input clk0, portawe, portbre;
|
||||||
|
|
||||||
endmodule
|
endmodule
|
||||||
|
|
||||||
|
(* blackbox *)
|
||||||
|
module cyclone10gx_io_ibuf(i, ibar, dynamicterminationcontrol, o);
|
||||||
|
|
||||||
|
parameter differential_mode ="false";
|
||||||
|
parameter bus_hold = "false";
|
||||||
|
parameter simulate_z_as = "Z";
|
||||||
|
parameter lpm_type = "cyclone10gx_io_ibuf";
|
||||||
|
|
||||||
|
(* iopad_external_pin *) input i;
|
||||||
|
(* iopad_external_pin *) input ibar;
|
||||||
|
input dynamicterminationcontrol;
|
||||||
|
output o;
|
||||||
|
|
||||||
|
endmodule
|
||||||
|
|
||||||
|
(* blackbox *)
|
||||||
|
module cyclone10gx_io_obuf(i, oe, dynamicterminationcontrol, seriesterminationcontrol, parallelterminationcontrol, devoe, o, obar);
|
||||||
|
|
||||||
|
parameter open_drain_output = "false";
|
||||||
|
parameter bus_hold = "false";
|
||||||
|
parameter shift_series_termination_control = "false";
|
||||||
|
parameter sim_dynamic_termination_control_is_connected = "false";
|
||||||
|
parameter lpm_type = "cyclone10gx_io_obuf";
|
||||||
|
|
||||||
|
input i;
|
||||||
|
input oe;
|
||||||
|
input devoe;
|
||||||
|
input dynamicterminationcontrol;
|
||||||
|
input [15:0] seriesterminationcontrol;
|
||||||
|
input [15:0] parallelterminationcontrol;
|
||||||
|
(* iopad_external_pin *) output o;
|
||||||
|
(* iopad_external_pin *) output obar;
|
||||||
|
|
||||||
|
endmodule
|
||||||
|
|
|
@ -0,0 +1,12 @@
|
||||||
|
module MISTRAL_IB((* iopad_external_pin *) input PAD, output O);
|
||||||
|
assign O = PAD;
|
||||||
|
endmodule
|
||||||
|
|
||||||
|
module MISTRAL_OB((* iopad_external_pin *) output PAD, input I);
|
||||||
|
assign PAD = I;
|
||||||
|
endmodule
|
||||||
|
|
||||||
|
module MISTRAL_IO((* iopad_external_pin *) inout PAD, input I, input OE, output O);
|
||||||
|
assign PAD = OE ? I : 1'bz;
|
||||||
|
assign O = PAD;
|
||||||
|
endmodule
|
|
@ -2,11 +2,15 @@
|
||||||
`define LCELL cyclonev_lcell_comb
|
`define LCELL cyclonev_lcell_comb
|
||||||
`define MAC cyclonev_mac
|
`define MAC cyclonev_mac
|
||||||
`define MLAB cyclonev_mlab_cell
|
`define MLAB cyclonev_mlab_cell
|
||||||
|
`define IBUF cyclonev_io_ibuf
|
||||||
|
`define OBUF cyclonev_io_obuf
|
||||||
`endif
|
`endif
|
||||||
`ifdef cyclone10gx
|
`ifdef cyclone10gx
|
||||||
`define LCELL cyclone10gx_lcell_comb
|
`define LCELL cyclone10gx_lcell_comb
|
||||||
`define MAC cyclone10gx_mac
|
`define MAC cyclone10gx_mac
|
||||||
`define MLAB cyclone10gx_mlab_cell
|
`define MLAB cyclone10gx_mlab_cell
|
||||||
|
`define IBUF cyclone10gx_io_ibuf
|
||||||
|
`define OBUF cyclone10gx_io_obuf
|
||||||
`endif
|
`endif
|
||||||
|
|
||||||
module __MISTRAL_VCC(output Q);
|
module __MISTRAL_VCC(output Q);
|
||||||
|
@ -233,3 +237,43 @@ parameter B_SIGNED = 1;
|
||||||
);
|
);
|
||||||
|
|
||||||
endmodule
|
endmodule
|
||||||
|
|
||||||
|
module MISTRAL_IB(input PAD, output O);
|
||||||
|
`IBUF #(
|
||||||
|
.bus_hold("false"),
|
||||||
|
.differential_mode("false")
|
||||||
|
) _TECHMAP_REPLACE_ (
|
||||||
|
.i(PAD),
|
||||||
|
.o(O)
|
||||||
|
);
|
||||||
|
endmodule
|
||||||
|
|
||||||
|
module MISTRAL_OB(output PAD, input I, OE);
|
||||||
|
`OBUF #(
|
||||||
|
.bus_hold("false"),
|
||||||
|
.differential_mode("false")
|
||||||
|
) _TECHMAP_REPLACE_ (
|
||||||
|
.i(I),
|
||||||
|
.o(PAD),
|
||||||
|
.oe(OE)
|
||||||
|
);
|
||||||
|
endmodule
|
||||||
|
|
||||||
|
module MISTRAL_IO(output PAD, input I, OE, output O);
|
||||||
|
`IBUF #(
|
||||||
|
.bus_hold("false"),
|
||||||
|
.differential_mode("false")
|
||||||
|
) ibuf (
|
||||||
|
.i(PAD),
|
||||||
|
.o(O)
|
||||||
|
);
|
||||||
|
|
||||||
|
`OBUF #(
|
||||||
|
.bus_hold("false"),
|
||||||
|
.differential_mode("false")
|
||||||
|
) obuf (
|
||||||
|
.i(I),
|
||||||
|
.o(PAD),
|
||||||
|
.oe(OE)
|
||||||
|
);
|
||||||
|
endmodule
|
||||||
|
|
|
@ -26,16 +26,34 @@ endmodule // GND
|
||||||
|
|
||||||
/* Altera Cyclone V devices Input Buffer Primitive */
|
/* Altera Cyclone V devices Input Buffer Primitive */
|
||||||
module cyclonev_io_ibuf
|
module cyclonev_io_ibuf
|
||||||
(output o, input i, input ibar);
|
(output o,
|
||||||
assign ibar = ibar;
|
(* iopad_external_pin *) input i,
|
||||||
|
(* iopad_external_pin *) input ibar,
|
||||||
|
input dynamicterminationcontrol);
|
||||||
|
|
||||||
|
parameter differential_mode = "false";
|
||||||
|
parameter bus_hold = "false";
|
||||||
|
parameter simulate_z_as = "Z";
|
||||||
|
parameter lpm_type = "cyclonev_io_ibuf";
|
||||||
|
|
||||||
assign o = i;
|
assign o = i;
|
||||||
endmodule // cyclonev_io_ibuf
|
endmodule // cyclonev_io_ibuf
|
||||||
|
|
||||||
/* Altera Cyclone V devices Output Buffer Primitive */
|
/* Altera Cyclone V devices Output Buffer Primitive */
|
||||||
module cyclonev_io_obuf
|
module cyclonev_io_obuf
|
||||||
(output o, input i, input oe);
|
((* iopad_external_pin *) output o,
|
||||||
assign o = i;
|
input i, oe, dynamicterminationcontrol,
|
||||||
assign oe = oe;
|
input [15:0] seriesterminationcontrol, parallelterminationcontrol,
|
||||||
|
input devoe,
|
||||||
|
(* iopad_external_pin *) output obar);
|
||||||
|
|
||||||
|
parameter open_drain_output = "false";
|
||||||
|
parameter bus_hold = "false";
|
||||||
|
parameter shift_series_termination_control = "false";
|
||||||
|
parameter sim_dynamic_termination_control_is_connected = "false";
|
||||||
|
parameter lpm_type = "cyclonev_io_obuf";
|
||||||
|
|
||||||
|
assign o = oe ? i : 1'bz;
|
||||||
endmodule // cyclonev_io_obuf
|
endmodule // cyclonev_io_obuf
|
||||||
|
|
||||||
/* Altera Cyclone V LUT Primitive */
|
/* Altera Cyclone V LUT Primitive */
|
||||||
|
|
|
@ -72,13 +72,16 @@ struct SynthIntelALMPass : public ScriptPass {
|
||||||
log(" -nodsp\n");
|
log(" -nodsp\n");
|
||||||
log(" do not map multipliers to MISTRAL_MUL cells\n");
|
log(" do not map multipliers to MISTRAL_MUL cells\n");
|
||||||
log("\n");
|
log("\n");
|
||||||
|
log(" -noiopad\n");
|
||||||
|
log(" do not instantiate IO buffers\n");
|
||||||
|
log("\n");
|
||||||
log("The following commands are executed by this synthesis command:\n");
|
log("The following commands are executed by this synthesis command:\n");
|
||||||
help_script();
|
help_script();
|
||||||
log("\n");
|
log("\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
string top_opt, family_opt, bram_type, vout_file;
|
string top_opt, family_opt, bram_type, vout_file;
|
||||||
bool flatten, quartus, nolutram, nobram, dff, nodsp;
|
bool flatten, quartus, nolutram, nobram, dff, nodsp, noiopad;
|
||||||
|
|
||||||
void clear_flags() override
|
void clear_flags() override
|
||||||
{
|
{
|
||||||
|
@ -92,6 +95,7 @@ struct SynthIntelALMPass : public ScriptPass {
|
||||||
nobram = false;
|
nobram = false;
|
||||||
dff = false;
|
dff = false;
|
||||||
nodsp = false;
|
nodsp = false;
|
||||||
|
noiopad = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void execute(std::vector<std::string> args, RTLIL::Design *design) override
|
void execute(std::vector<std::string> args, RTLIL::Design *design) override
|
||||||
|
@ -146,6 +150,10 @@ struct SynthIntelALMPass : public ScriptPass {
|
||||||
dff = true;
|
dff = true;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
if (args[argidx] == "-noiopad") {
|
||||||
|
noiopad = true;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
extra_args(args, argidx, design);
|
extra_args(args, argidx, design);
|
||||||
|
@ -183,8 +191,8 @@ struct SynthIntelALMPass : public ScriptPass {
|
||||||
run(stringf("read_verilog -specify -lib -D %s +/intel_alm/common/dff_sim.v", family_opt.c_str()));
|
run(stringf("read_verilog -specify -lib -D %s +/intel_alm/common/dff_sim.v", family_opt.c_str()));
|
||||||
run(stringf("read_verilog -specify -lib -D %s +/intel_alm/common/dsp_sim.v", family_opt.c_str()));
|
run(stringf("read_verilog -specify -lib -D %s +/intel_alm/common/dsp_sim.v", family_opt.c_str()));
|
||||||
run(stringf("read_verilog -specify -lib -D %s +/intel_alm/common/mem_sim.v", family_opt.c_str()));
|
run(stringf("read_verilog -specify -lib -D %s +/intel_alm/common/mem_sim.v", family_opt.c_str()));
|
||||||
|
run(stringf("read_verilog -specify -lib -D %s +/intel_alm/common/misc_sim.v", family_opt.c_str()));
|
||||||
run(stringf("read_verilog -specify -lib -D %s -icells +/intel_alm/common/abc9_model.v", family_opt.c_str()));
|
run(stringf("read_verilog -specify -lib -D %s -icells +/intel_alm/common/abc9_model.v", family_opt.c_str()));
|
||||||
|
|
||||||
// Misc and common cells
|
// Misc and common cells
|
||||||
run("read_verilog -lib +/intel/common/altpll_bb.v");
|
run("read_verilog -lib +/intel/common/altpll_bb.v");
|
||||||
run("read_verilog -lib +/intel_alm/common/megafunction_bb.v");
|
run("read_verilog -lib +/intel_alm/common/megafunction_bb.v");
|
||||||
|
@ -231,6 +239,8 @@ struct SynthIntelALMPass : public ScriptPass {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
run("alumacc");
|
run("alumacc");
|
||||||
|
if (!noiopad)
|
||||||
|
run("iopadmap -bits -outpad MISTRAL_OB I:PAD -inpad MISTRAL_IB O:PAD -toutpad MISTRAL_IO OE:O:PAD -tinoutpad MISTRAL_IO OE:O:I:PAD A:top", "(unless -noiopad)");
|
||||||
run("techmap -map +/intel_alm/common/arith_alm_map.v -map +/intel_alm/common/dsp_map.v");
|
run("techmap -map +/intel_alm/common/arith_alm_map.v -map +/intel_alm/common/dsp_map.v");
|
||||||
run("opt");
|
run("opt");
|
||||||
run("memory -nomap");
|
run("memory -nomap");
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
read_verilog ../common/add_sub.v
|
read_verilog ../common/add_sub.v
|
||||||
hierarchy -top top
|
hierarchy -top top
|
||||||
equiv_opt -assert -map +/intel_alm/common/alm_sim.v synth_intel_alm -family cyclonev # equivalency check
|
equiv_opt -assert -map +/intel_alm/common/alm_sim.v synth_intel_alm -family cyclonev -noiopad # equivalency check
|
||||||
design -load postopt # load the post-opt design (otherwise equiv_opt loads the pre-opt design)
|
design -load postopt # load the post-opt design (otherwise equiv_opt loads the pre-opt design)
|
||||||
cd top # Constrain all select calls below inside the top module
|
cd top # Constrain all select calls below inside the top module
|
||||||
stat
|
stat
|
||||||
|
@ -10,7 +10,7 @@ select -assert-none t:MISTRAL_ALUT_ARITH %% t:* %D
|
||||||
design -reset
|
design -reset
|
||||||
read_verilog ../common/add_sub.v
|
read_verilog ../common/add_sub.v
|
||||||
hierarchy -top top
|
hierarchy -top top
|
||||||
equiv_opt -assert -map +/intel_alm/common/alm_sim.v synth_intel_alm -family cyclone10gx # equivalency check
|
equiv_opt -assert -map +/intel_alm/common/alm_sim.v synth_intel_alm -family cyclone10gx -noiopad # equivalency check
|
||||||
design -load postopt # load the post-opt design (otherwise equiv_opt loads the pre-opt design)
|
design -load postopt # load the post-opt design (otherwise equiv_opt loads the pre-opt design)
|
||||||
cd top # Constrain all select calls below inside the top module
|
cd top # Constrain all select calls below inside the top module
|
||||||
stat
|
stat
|
||||||
|
|
|
@ -3,7 +3,7 @@ design -save read
|
||||||
|
|
||||||
hierarchy -top adff
|
hierarchy -top adff
|
||||||
proc
|
proc
|
||||||
equiv_opt -async2sync -assert -map +/intel_alm/common/alm_sim.v -map +/intel_alm/common/dff_sim.v synth_intel_alm -family cyclonev # equivalency check
|
equiv_opt -async2sync -assert -map +/intel_alm/common/alm_sim.v -map +/intel_alm/common/dff_sim.v synth_intel_alm -family cyclonev -noiopad # equivalency check
|
||||||
design -load postopt # load the post-opt design (otherwise equiv_opt loads the pre-opt design)
|
design -load postopt # load the post-opt design (otherwise equiv_opt loads the pre-opt design)
|
||||||
cd adff # Constrain all select calls below inside the top module
|
cd adff # Constrain all select calls below inside the top module
|
||||||
select -assert-count 1 t:MISTRAL_FF
|
select -assert-count 1 t:MISTRAL_FF
|
||||||
|
@ -15,7 +15,7 @@ select -assert-none t:MISTRAL_FF t:MISTRAL_NOT %% t:* %D
|
||||||
design -load read
|
design -load read
|
||||||
hierarchy -top adff
|
hierarchy -top adff
|
||||||
proc
|
proc
|
||||||
equiv_opt -async2sync -assert -map +/intel_alm/common/alm_sim.v -map +/intel_alm/common/dff_sim.v synth_intel_alm -family cyclone10gx # equivalency check
|
equiv_opt -async2sync -assert -map +/intel_alm/common/alm_sim.v -map +/intel_alm/common/dff_sim.v synth_intel_alm -family cyclone10gx -noiopad # equivalency check
|
||||||
design -load postopt # load the post-opt design (otherwise equiv_opt loads the pre-opt design)
|
design -load postopt # load the post-opt design (otherwise equiv_opt loads the pre-opt design)
|
||||||
cd adff # Constrain all select calls below inside the top module
|
cd adff # Constrain all select calls below inside the top module
|
||||||
select -assert-count 1 t:MISTRAL_FF
|
select -assert-count 1 t:MISTRAL_FF
|
||||||
|
@ -27,7 +27,7 @@ select -assert-none t:MISTRAL_FF t:MISTRAL_NOT %% t:* %D
|
||||||
design -load read
|
design -load read
|
||||||
hierarchy -top adffn
|
hierarchy -top adffn
|
||||||
proc
|
proc
|
||||||
equiv_opt -async2sync -assert -map +/intel_alm/common/alm_sim.v -map +/intel_alm/common/dff_sim.v synth_intel_alm -family cyclonev # equivalency check
|
equiv_opt -async2sync -assert -map +/intel_alm/common/alm_sim.v -map +/intel_alm/common/dff_sim.v synth_intel_alm -family cyclonev -noiopad # equivalency check
|
||||||
design -load postopt # load the post-opt design (otherwise equiv_opt loads the pre-opt design)
|
design -load postopt # load the post-opt design (otherwise equiv_opt loads the pre-opt design)
|
||||||
cd adffn # Constrain all select calls below inside the top module
|
cd adffn # Constrain all select calls below inside the top module
|
||||||
select -assert-count 1 t:MISTRAL_FF
|
select -assert-count 1 t:MISTRAL_FF
|
||||||
|
@ -38,7 +38,7 @@ select -assert-none t:MISTRAL_FF %% t:* %D
|
||||||
design -load read
|
design -load read
|
||||||
hierarchy -top adffn
|
hierarchy -top adffn
|
||||||
proc
|
proc
|
||||||
equiv_opt -async2sync -assert -map +/intel_alm/common/alm_sim.v -map +/intel_alm/common/dff_sim.v synth_intel_alm -family cyclone10gx # equivalency check
|
equiv_opt -async2sync -assert -map +/intel_alm/common/alm_sim.v -map +/intel_alm/common/dff_sim.v synth_intel_alm -family cyclone10gx -noiopad # equivalency check
|
||||||
design -load postopt # load the post-opt design (otherwise equiv_opt loads the pre-opt design)
|
design -load postopt # load the post-opt design (otherwise equiv_opt loads the pre-opt design)
|
||||||
cd adffn # Constrain all select calls below inside the top module
|
cd adffn # Constrain all select calls below inside the top module
|
||||||
select -assert-count 1 t:MISTRAL_FF
|
select -assert-count 1 t:MISTRAL_FF
|
||||||
|
@ -49,7 +49,7 @@ select -assert-none t:MISTRAL_FF %% t:* %D
|
||||||
design -load read
|
design -load read
|
||||||
hierarchy -top dffs
|
hierarchy -top dffs
|
||||||
proc
|
proc
|
||||||
equiv_opt -async2sync -assert -map +/intel_alm/common/alm_sim.v -map +/intel_alm/common/dff_sim.v synth_intel_alm -family cyclonev # equivalency check
|
equiv_opt -async2sync -assert -map +/intel_alm/common/alm_sim.v -map +/intel_alm/common/dff_sim.v synth_intel_alm -family cyclonev -noiopad # equivalency check
|
||||||
design -load postopt # load the post-opt design (otherwise equiv_opt loads the pre-opt design)
|
design -load postopt # load the post-opt design (otherwise equiv_opt loads the pre-opt design)
|
||||||
cd dffs # Constrain all select calls below inside the top module
|
cd dffs # Constrain all select calls below inside the top module
|
||||||
select -assert-count 1 t:MISTRAL_FF
|
select -assert-count 1 t:MISTRAL_FF
|
||||||
|
@ -61,7 +61,7 @@ select -assert-none t:MISTRAL_FF t:MISTRAL_ALUT2 %% t:* %D
|
||||||
design -load read
|
design -load read
|
||||||
hierarchy -top dffs
|
hierarchy -top dffs
|
||||||
proc
|
proc
|
||||||
equiv_opt -async2sync -assert -map +/intel_alm/common/alm_sim.v -map +/intel_alm/common/dff_sim.v synth_intel_alm -family cyclone10gx # equivalency check
|
equiv_opt -async2sync -assert -map +/intel_alm/common/alm_sim.v -map +/intel_alm/common/dff_sim.v synth_intel_alm -family cyclone10gx -noiopad # equivalency check
|
||||||
design -load postopt # load the post-opt design (otherwise equiv_opt loads the pre-opt design)
|
design -load postopt # load the post-opt design (otherwise equiv_opt loads the pre-opt design)
|
||||||
cd dffs # Constrain all select calls below inside the top module
|
cd dffs # Constrain all select calls below inside the top module
|
||||||
select -assert-count 1 t:MISTRAL_FF
|
select -assert-count 1 t:MISTRAL_FF
|
||||||
|
@ -73,7 +73,7 @@ select -assert-none t:MISTRAL_FF t:MISTRAL_ALUT2 %% t:* %D
|
||||||
design -load read
|
design -load read
|
||||||
hierarchy -top ndffnr
|
hierarchy -top ndffnr
|
||||||
proc
|
proc
|
||||||
equiv_opt -async2sync -assert -map +/intel_alm/common/alm_sim.v -map +/intel_alm/common/dff_sim.v synth_intel_alm -family cyclonev # equivalency check
|
equiv_opt -async2sync -assert -map +/intel_alm/common/alm_sim.v -map +/intel_alm/common/dff_sim.v synth_intel_alm -family cyclonev -noiopad # equivalency check
|
||||||
design -load postopt # load the post-opt design (otherwise equiv_opt loads the pre-opt design)
|
design -load postopt # load the post-opt design (otherwise equiv_opt loads the pre-opt design)
|
||||||
cd ndffnr # Constrain all select calls below inside the top module
|
cd ndffnr # Constrain all select calls below inside the top module
|
||||||
select -assert-count 1 t:MISTRAL_FF
|
select -assert-count 1 t:MISTRAL_FF
|
||||||
|
@ -85,7 +85,7 @@ select -assert-none t:MISTRAL_FF t:MISTRAL_NOT %% t:* %D
|
||||||
design -load read
|
design -load read
|
||||||
hierarchy -top ndffnr
|
hierarchy -top ndffnr
|
||||||
proc
|
proc
|
||||||
equiv_opt -async2sync -assert -map +/intel_alm/common/alm_sim.v -map +/intel_alm/common/dff_sim.v synth_intel_alm -family cyclone10gx # equivalency check
|
equiv_opt -async2sync -assert -map +/intel_alm/common/alm_sim.v -map +/intel_alm/common/dff_sim.v synth_intel_alm -family cyclone10gx -noiopad # equivalency check
|
||||||
design -load postopt # load the post-opt design (otherwise equiv_opt loads the pre-opt design)
|
design -load postopt # load the post-opt design (otherwise equiv_opt loads the pre-opt design)
|
||||||
cd ndffnr # Constrain all select calls below inside the top module
|
cd ndffnr # Constrain all select calls below inside the top module
|
||||||
select -assert-count 1 t:MISTRAL_FF
|
select -assert-count 1 t:MISTRAL_FF
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
read_verilog ../common/blockram.v
|
read_verilog ../common/blockram.v
|
||||||
chparam -set ADDRESS_WIDTH 10 -set DATA_WIDTH 10 sync_ram_sdp
|
chparam -set ADDRESS_WIDTH 10 -set DATA_WIDTH 10 sync_ram_sdp
|
||||||
synth_intel_alm -family cyclonev
|
synth_intel_alm -family cyclonev -noiopad
|
||||||
cd sync_ram_sdp
|
cd sync_ram_sdp
|
||||||
select -assert-count 1 t:MISTRAL_M10K
|
select -assert-count 1 t:MISTRAL_M10K
|
||||||
select -assert-none t:MISTRAL_M10K %% t:* %D
|
select -assert-none t:MISTRAL_M10K %% t:* %D
|
||||||
|
|
|
@ -2,7 +2,7 @@ read_verilog ../common/counter.v
|
||||||
hierarchy -top top
|
hierarchy -top top
|
||||||
proc
|
proc
|
||||||
flatten
|
flatten
|
||||||
equiv_opt -async2sync -map +/intel_alm/common/alm_sim.v -map +/intel_alm/common/dff_sim.v synth_intel_alm -family cyclonev # equivalency check
|
equiv_opt -async2sync -map +/intel_alm/common/alm_sim.v -map +/intel_alm/common/dff_sim.v synth_intel_alm -family cyclonev -noiopad # equivalency check
|
||||||
design -load postopt # load the post-opt design (otherwise equiv_opt loads the pre-opt design)
|
design -load postopt # load the post-opt design (otherwise equiv_opt loads the pre-opt design)
|
||||||
cd top # Constrain all select calls below inside the top module
|
cd top # Constrain all select calls below inside the top module
|
||||||
|
|
||||||
|
@ -17,7 +17,7 @@ read_verilog ../common/counter.v
|
||||||
hierarchy -top top
|
hierarchy -top top
|
||||||
proc
|
proc
|
||||||
flatten
|
flatten
|
||||||
equiv_opt -async2sync -map +/intel_alm/common/alm_sim.v -map +/intel_alm/common/dff_sim.v synth_intel_alm -family cyclone10gx # equivalency check
|
equiv_opt -async2sync -map +/intel_alm/common/alm_sim.v -map +/intel_alm/common/dff_sim.v synth_intel_alm -family cyclone10gx -noiopad # equivalency check
|
||||||
design -load postopt # load the post-opt design (otherwise equiv_opt loads the pre-opt design)
|
design -load postopt # load the post-opt design (otherwise equiv_opt loads the pre-opt design)
|
||||||
cd top # Constrain all select calls below inside the top module
|
cd top # Constrain all select calls below inside the top module
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,7 @@ design -save read
|
||||||
|
|
||||||
hierarchy -top dff
|
hierarchy -top dff
|
||||||
proc
|
proc
|
||||||
equiv_opt -async2sync -assert -map +/intel_alm/common/alm_sim.v -map +/intel_alm/common/dff_sim.v synth_intel_alm -family cyclonev # equivalency check
|
equiv_opt -async2sync -assert -map +/intel_alm/common/alm_sim.v -map +/intel_alm/common/dff_sim.v synth_intel_alm -family cyclonev -noiopad # equivalency check
|
||||||
design -load postopt # load the post-opt design (otherwise equiv_opt loads the pre-opt design)
|
design -load postopt # load the post-opt design (otherwise equiv_opt loads the pre-opt design)
|
||||||
cd dff # Constrain all select calls below inside the top module
|
cd dff # Constrain all select calls below inside the top module
|
||||||
select -assert-count 1 t:MISTRAL_FF
|
select -assert-count 1 t:MISTRAL_FF
|
||||||
|
@ -13,7 +13,7 @@ select -assert-none t:MISTRAL_FF %% t:* %D
|
||||||
design -load read
|
design -load read
|
||||||
hierarchy -top dff
|
hierarchy -top dff
|
||||||
proc
|
proc
|
||||||
equiv_opt -async2sync -assert -map +/intel_alm/common/alm_sim.v -map +/intel_alm/common/dff_sim.v synth_intel_alm -family cyclone10gx # equivalency check
|
equiv_opt -async2sync -assert -map +/intel_alm/common/alm_sim.v -map +/intel_alm/common/dff_sim.v synth_intel_alm -family cyclone10gx -noiopad # equivalency check
|
||||||
design -load postopt # load the post-opt design (otherwise equiv_opt loads the pre-opt design)
|
design -load postopt # load the post-opt design (otherwise equiv_opt loads the pre-opt design)
|
||||||
cd dff # Constrain all select calls below inside the top module
|
cd dff # Constrain all select calls below inside the top module
|
||||||
select -assert-count 1 t:MISTRAL_FF
|
select -assert-count 1 t:MISTRAL_FF
|
||||||
|
@ -24,7 +24,7 @@ select -assert-none t:MISTRAL_FF %% t:* %D
|
||||||
design -load read
|
design -load read
|
||||||
hierarchy -top dffe
|
hierarchy -top dffe
|
||||||
proc
|
proc
|
||||||
equiv_opt -async2sync -assert -map +/intel_alm/common/alm_sim.v -map +/intel_alm/common/dff_sim.v synth_intel_alm -family cyclonev # equivalency check
|
equiv_opt -async2sync -assert -map +/intel_alm/common/alm_sim.v -map +/intel_alm/common/dff_sim.v synth_intel_alm -family cyclonev -noiopad # equivalency check
|
||||||
design -load postopt # load the post-opt design (otherwise equiv_opt loads the pre-opt design)
|
design -load postopt # load the post-opt design (otherwise equiv_opt loads the pre-opt design)
|
||||||
cd dffe # Constrain all select calls below inside the top module
|
cd dffe # Constrain all select calls below inside the top module
|
||||||
select -assert-count 1 t:MISTRAL_FF
|
select -assert-count 1 t:MISTRAL_FF
|
||||||
|
@ -35,7 +35,7 @@ select -assert-none t:MISTRAL_FF %% t:* %D
|
||||||
design -load read
|
design -load read
|
||||||
hierarchy -top dffe
|
hierarchy -top dffe
|
||||||
proc
|
proc
|
||||||
equiv_opt -async2sync -assert -map +/intel_alm/common/alm_sim.v -map +/intel_alm/common/dff_sim.v synth_intel_alm -family cyclone10gx # equivalency check
|
equiv_opt -async2sync -assert -map +/intel_alm/common/alm_sim.v -map +/intel_alm/common/dff_sim.v synth_intel_alm -family cyclone10gx -noiopad # equivalency check
|
||||||
design -load postopt # load the post-opt design (otherwise equiv_opt loads the pre-opt design)
|
design -load postopt # load the post-opt design (otherwise equiv_opt loads the pre-opt design)
|
||||||
cd dffe # Constrain all select calls below inside the top module
|
cd dffe # Constrain all select calls below inside the top module
|
||||||
select -assert-count 1 t:MISTRAL_FF
|
select -assert-count 1 t:MISTRAL_FF
|
||||||
|
|
|
@ -3,7 +3,7 @@ hierarchy -top fsm
|
||||||
proc
|
proc
|
||||||
flatten
|
flatten
|
||||||
|
|
||||||
equiv_opt -run :prove -map +/intel_alm/common/alm_sim.v -map +/intel_alm/common/dff_sim.v synth_intel_alm -family cyclonev
|
equiv_opt -run :prove -map +/intel_alm/common/alm_sim.v -map +/intel_alm/common/dff_sim.v synth_intel_alm -family cyclonev -noiopad
|
||||||
async2sync
|
async2sync
|
||||||
miter -equiv -make_assert -flatten gold gate miter
|
miter -equiv -make_assert -flatten gold gate miter
|
||||||
sat -verify -prove-asserts -show-public -set-at 1 in_reset 1 -seq 20 -prove-skip 1 miter
|
sat -verify -prove-asserts -show-public -set-at 1 in_reset 1 -seq 20 -prove-skip 1 miter
|
||||||
|
@ -26,7 +26,7 @@ hierarchy -top fsm
|
||||||
proc
|
proc
|
||||||
flatten
|
flatten
|
||||||
|
|
||||||
equiv_opt -run :prove -map +/intel_alm/common/alm_sim.v -map +/intel_alm/common/dff_sim.v synth_intel_alm -family cyclone10gx
|
equiv_opt -run :prove -map +/intel_alm/common/alm_sim.v -map +/intel_alm/common/dff_sim.v synth_intel_alm -family cyclone10gx -noiopad
|
||||||
async2sync
|
async2sync
|
||||||
miter -equiv -make_assert -flatten gold gate miter
|
miter -equiv -make_assert -flatten gold gate miter
|
||||||
sat -verify -prove-asserts -show-public -set-at 1 in_reset 1 -seq 20 -prove-skip 1 miter
|
sat -verify -prove-asserts -show-public -set-at 1 in_reset 1 -seq 20 -prove-skip 1 miter
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
read_verilog ../common/logic.v
|
read_verilog ../common/logic.v
|
||||||
hierarchy -top top
|
hierarchy -top top
|
||||||
proc
|
proc
|
||||||
equiv_opt -assert -map +/intel_alm/common/alm_sim.v synth_intel_alm -family cyclonev # equivalency check
|
equiv_opt -assert -map +/intel_alm/common/alm_sim.v synth_intel_alm -family cyclonev -noiopad # equivalency check
|
||||||
design -load postopt # load the post-opt design (otherwise equiv_opt loads the pre-opt design)
|
design -load postopt # load the post-opt design (otherwise equiv_opt loads the pre-opt design)
|
||||||
cd top # Constrain all select calls below inside the top module
|
cd top # Constrain all select calls below inside the top module
|
||||||
|
|
||||||
|
@ -15,7 +15,7 @@ design -reset
|
||||||
read_verilog ../common/logic.v
|
read_verilog ../common/logic.v
|
||||||
hierarchy -top top
|
hierarchy -top top
|
||||||
proc
|
proc
|
||||||
equiv_opt -assert -map +/intel_alm/common/alm_sim.v synth_intel_alm -family cyclone10gx # equivalency check
|
equiv_opt -assert -map +/intel_alm/common/alm_sim.v synth_intel_alm -family cyclone10gx -noiopad # equivalency check
|
||||||
design -load postopt # load the post-opt design (otherwise equiv_opt loads the pre-opt design)
|
design -load postopt # load the post-opt design (otherwise equiv_opt loads the pre-opt design)
|
||||||
cd top # Constrain all select calls below inside the top module
|
cd top # Constrain all select calls below inside the top module
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@ read_verilog ../common/lutram.v
|
||||||
hierarchy -top lutram_1w1r
|
hierarchy -top lutram_1w1r
|
||||||
proc
|
proc
|
||||||
memory -nomap
|
memory -nomap
|
||||||
equiv_opt -run :prove -map +/intel_alm/common/alm_sim.v -map +/intel_alm/common/dff_sim.v -map +/intel_alm/common/mem_sim.v synth_intel_alm -family cyclonev -nobram
|
equiv_opt -run :prove -map +/intel_alm/common/alm_sim.v -map +/intel_alm/common/dff_sim.v -map +/intel_alm/common/mem_sim.v synth_intel_alm -family cyclonev -nobram -noiopad
|
||||||
memory
|
memory
|
||||||
opt -full
|
opt -full
|
||||||
|
|
||||||
|
@ -24,7 +24,7 @@ read_verilog ../common/lutram.v
|
||||||
hierarchy -top lutram_1w1r
|
hierarchy -top lutram_1w1r
|
||||||
proc
|
proc
|
||||||
memory -nomap
|
memory -nomap
|
||||||
equiv_opt -run :prove -map +/intel_alm/common/alm_sim.v -map +/intel_alm/common/dff_sim.v -map +/intel_alm/common/mem_sim.v synth_intel_alm -family cyclonev -nobram
|
equiv_opt -run :prove -map +/intel_alm/common/alm_sim.v -map +/intel_alm/common/dff_sim.v -map +/intel_alm/common/mem_sim.v synth_intel_alm -family cyclonev -nobram -noiopad
|
||||||
memory
|
memory
|
||||||
opt -full
|
opt -full
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@ read_verilog ../common/mul.v
|
||||||
chparam -set X_WIDTH 8 -set Y_WIDTH 8 -set A_WIDTH 16
|
chparam -set X_WIDTH 8 -set Y_WIDTH 8 -set A_WIDTH 16
|
||||||
hierarchy -top top
|
hierarchy -top top
|
||||||
proc
|
proc
|
||||||
equiv_opt -assert -map +/intel_alm/common/dsp_sim.v synth_intel_alm -family cyclonev # equivalency check
|
equiv_opt -assert -map +/intel_alm/common/dsp_sim.v synth_intel_alm -family cyclonev -noiopad # equivalency check
|
||||||
design -load postopt # load the post-opt design (otherwise equiv_opt loads the pre-opt design)
|
design -load postopt # load the post-opt design (otherwise equiv_opt loads the pre-opt design)
|
||||||
cd top # Constrain all select calls below inside the top module
|
cd top # Constrain all select calls below inside the top module
|
||||||
|
|
||||||
|
@ -16,7 +16,7 @@ read_verilog ../common/mul.v
|
||||||
chparam -set X_WIDTH 17 -set Y_WIDTH 17 -set A_WIDTH 34
|
chparam -set X_WIDTH 17 -set Y_WIDTH 17 -set A_WIDTH 34
|
||||||
hierarchy -top top
|
hierarchy -top top
|
||||||
proc
|
proc
|
||||||
equiv_opt -assert -map +/intel_alm/common/dsp_sim.v synth_intel_alm -family cyclonev # equivalency check
|
equiv_opt -assert -map +/intel_alm/common/dsp_sim.v synth_intel_alm -family cyclonev -noiopad # equivalency check
|
||||||
design -load postopt # load the post-opt design (otherwise equiv_opt loads the pre-opt design)
|
design -load postopt # load the post-opt design (otherwise equiv_opt loads the pre-opt design)
|
||||||
cd top # Constrain all select calls below inside the top module
|
cd top # Constrain all select calls below inside the top module
|
||||||
|
|
||||||
|
@ -28,7 +28,7 @@ read_verilog ../common/mul.v
|
||||||
chparam -set X_WIDTH 17 -set Y_WIDTH 17 -set A_WIDTH 34
|
chparam -set X_WIDTH 17 -set Y_WIDTH 17 -set A_WIDTH 34
|
||||||
hierarchy -top top
|
hierarchy -top top
|
||||||
proc
|
proc
|
||||||
equiv_opt -assert -map +/intel_alm/common/dsp_sim.v synth_intel_alm -family cyclone10gx # equivalency check
|
equiv_opt -assert -map +/intel_alm/common/dsp_sim.v synth_intel_alm -family cyclone10gx -noiopad # equivalency check
|
||||||
design -load postopt # load the post-opt design (otherwise equiv_opt loads the pre-opt design)
|
design -load postopt # load the post-opt design (otherwise equiv_opt loads the pre-opt design)
|
||||||
cd top # Constrain all select calls below inside the top module
|
cd top # Constrain all select calls below inside the top module
|
||||||
|
|
||||||
|
@ -40,7 +40,7 @@ read_verilog ../common/mul.v
|
||||||
chparam -set X_WIDTH 26 -set Y_WIDTH 26 -set A_WIDTH 52
|
chparam -set X_WIDTH 26 -set Y_WIDTH 26 -set A_WIDTH 52
|
||||||
hierarchy -top top
|
hierarchy -top top
|
||||||
proc
|
proc
|
||||||
equiv_opt -assert -map +/intel_alm/common/dsp_sim.v synth_intel_alm -family cyclonev # equivalency check
|
equiv_opt -assert -map +/intel_alm/common/dsp_sim.v synth_intel_alm -family cyclonev -noiopad # equivalency check
|
||||||
design -load postopt # load the post-opt design (otherwise equiv_opt loads the pre-opt design)
|
design -load postopt # load the post-opt design (otherwise equiv_opt loads the pre-opt design)
|
||||||
cd top # Constrain all select calls below inside the top module
|
cd top # Constrain all select calls below inside the top module
|
||||||
|
|
||||||
|
@ -52,7 +52,7 @@ read_verilog ../common/mul.v
|
||||||
chparam -set X_WIDTH 26 -set Y_WIDTH 26 -set A_WIDTH 52
|
chparam -set X_WIDTH 26 -set Y_WIDTH 26 -set A_WIDTH 52
|
||||||
hierarchy -top top
|
hierarchy -top top
|
||||||
proc
|
proc
|
||||||
equiv_opt -assert -map +/intel_alm/common/dsp_sim.v synth_intel_alm -family cyclone10gx # equivalency check
|
equiv_opt -assert -map +/intel_alm/common/dsp_sim.v synth_intel_alm -family cyclone10gx -noiopad # equivalency check
|
||||||
design -load postopt # load the post-opt design (otherwise equiv_opt loads the pre-opt design)
|
design -load postopt # load the post-opt design (otherwise equiv_opt loads the pre-opt design)
|
||||||
cd top # Constrain all select calls below inside the top module
|
cd top # Constrain all select calls below inside the top module
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,7 @@ design -save read
|
||||||
|
|
||||||
hierarchy -top mux2
|
hierarchy -top mux2
|
||||||
proc
|
proc
|
||||||
equiv_opt -assert -map +/intel_alm/common/alm_sim.v synth_intel_alm -family cyclonev # equivalency check
|
equiv_opt -assert -map +/intel_alm/common/alm_sim.v synth_intel_alm -family cyclonev -noiopad # equivalency check
|
||||||
design -load postopt # load the post-opt design (otherwise equiv_opt loads the pre-opt design)
|
design -load postopt # load the post-opt design (otherwise equiv_opt loads the pre-opt design)
|
||||||
cd mux2 # Constrain all select calls below inside the top module
|
cd mux2 # Constrain all select calls below inside the top module
|
||||||
select -assert-count 1 t:MISTRAL_ALUT3
|
select -assert-count 1 t:MISTRAL_ALUT3
|
||||||
|
@ -14,7 +14,7 @@ select -assert-none t:MISTRAL_ALUT3 %% t:* %D
|
||||||
design -load read
|
design -load read
|
||||||
hierarchy -top mux2
|
hierarchy -top mux2
|
||||||
proc
|
proc
|
||||||
equiv_opt -assert -map +/intel_alm/common/alm_sim.v synth_intel_alm -family cyclone10gx # equivalency check
|
equiv_opt -assert -map +/intel_alm/common/alm_sim.v synth_intel_alm -family cyclone10gx -noiopad # equivalency check
|
||||||
design -load postopt # load the post-opt design (otherwise equiv_opt loads the pre-opt design)
|
design -load postopt # load the post-opt design (otherwise equiv_opt loads the pre-opt design)
|
||||||
cd mux2 # Constrain all select calls below inside the top module
|
cd mux2 # Constrain all select calls below inside the top module
|
||||||
select -assert-count 1 t:MISTRAL_ALUT3
|
select -assert-count 1 t:MISTRAL_ALUT3
|
||||||
|
@ -24,7 +24,7 @@ select -assert-none t:MISTRAL_ALUT3 %% t:* %D
|
||||||
design -load read
|
design -load read
|
||||||
hierarchy -top mux4
|
hierarchy -top mux4
|
||||||
proc
|
proc
|
||||||
equiv_opt -assert -map +/intel_alm/common/alm_sim.v synth_intel_alm -family cyclonev # equivalency check
|
equiv_opt -assert -map +/intel_alm/common/alm_sim.v synth_intel_alm -family cyclonev -noiopad # equivalency check
|
||||||
design -load postopt # load the post-opt design (otherwise equiv_opt loads the pre-opt design)
|
design -load postopt # load the post-opt design (otherwise equiv_opt loads the pre-opt design)
|
||||||
cd mux4 # Constrain all select calls below inside the top module
|
cd mux4 # Constrain all select calls below inside the top module
|
||||||
select -assert-count 1 t:MISTRAL_ALUT6
|
select -assert-count 1 t:MISTRAL_ALUT6
|
||||||
|
@ -34,7 +34,7 @@ select -assert-none t:MISTRAL_ALUT6 %% t:* %D
|
||||||
design -load read
|
design -load read
|
||||||
hierarchy -top mux4
|
hierarchy -top mux4
|
||||||
proc
|
proc
|
||||||
equiv_opt -assert -map +/intel_alm/common/alm_sim.v synth_intel_alm -family cyclone10gx # equivalency check
|
equiv_opt -assert -map +/intel_alm/common/alm_sim.v synth_intel_alm -family cyclone10gx -noiopad # equivalency check
|
||||||
design -load postopt # load the post-opt design (otherwise equiv_opt loads the pre-opt design)
|
design -load postopt # load the post-opt design (otherwise equiv_opt loads the pre-opt design)
|
||||||
cd mux4 # Constrain all select calls below inside the top module
|
cd mux4 # Constrain all select calls below inside the top module
|
||||||
select -assert-count 1 t:MISTRAL_ALUT6
|
select -assert-count 1 t:MISTRAL_ALUT6
|
||||||
|
@ -44,7 +44,7 @@ select -assert-none t:MISTRAL_ALUT6 %% t:* %D
|
||||||
design -load read
|
design -load read
|
||||||
hierarchy -top mux8
|
hierarchy -top mux8
|
||||||
proc
|
proc
|
||||||
equiv_opt -assert -map +/intel_alm/common/alm_sim.v synth_intel_alm -family cyclonev # equivalency check
|
equiv_opt -assert -map +/intel_alm/common/alm_sim.v synth_intel_alm -family cyclonev -noiopad # equivalency check
|
||||||
design -load postopt # load the post-opt design (otherwise equiv_opt loads the pre-opt design)
|
design -load postopt # load the post-opt design (otherwise equiv_opt loads the pre-opt design)
|
||||||
cd mux8 # Constrain all select calls below inside the top module
|
cd mux8 # Constrain all select calls below inside the top module
|
||||||
select -assert-count 1 t:MISTRAL_ALUT3
|
select -assert-count 1 t:MISTRAL_ALUT3
|
||||||
|
@ -55,7 +55,7 @@ select -assert-none t:MISTRAL_ALUT3 t:MISTRAL_ALUT6 %% t:* %D
|
||||||
design -load read
|
design -load read
|
||||||
hierarchy -top mux8
|
hierarchy -top mux8
|
||||||
proc
|
proc
|
||||||
equiv_opt -assert -map +/intel_alm/common/alm_sim.v synth_intel_alm -family cyclone10gx # equivalency check
|
equiv_opt -assert -map +/intel_alm/common/alm_sim.v synth_intel_alm -family cyclone10gx -noiopad # equivalency check
|
||||||
design -load postopt # load the post-opt design (otherwise equiv_opt loads the pre-opt design)
|
design -load postopt # load the post-opt design (otherwise equiv_opt loads the pre-opt design)
|
||||||
cd mux8 # Constrain all select calls below inside the top module
|
cd mux8 # Constrain all select calls below inside the top module
|
||||||
select -assert-count 1 t:MISTRAL_ALUT3
|
select -assert-count 1 t:MISTRAL_ALUT3
|
||||||
|
|
|
@ -22,5 +22,5 @@ module top();
|
||||||
endmodule
|
endmodule
|
||||||
EOT
|
EOT
|
||||||
|
|
||||||
synth_intel_alm -family cyclone10gx -quartus
|
synth_intel_alm -family cyclone10gx -quartus -noiopad
|
||||||
select -assert-none w:*[* w:*]*
|
select -assert-none w:*[* w:*]*
|
||||||
|
|
|
@ -2,7 +2,7 @@ read_verilog ../common/shifter.v
|
||||||
hierarchy -top top
|
hierarchy -top top
|
||||||
proc
|
proc
|
||||||
flatten
|
flatten
|
||||||
equiv_opt -async2sync -assert -map +/intel_alm/common/alm_sim.v -map +/intel_alm/common/dff_sim.v synth_intel_alm -family cyclonev # equivalency check
|
equiv_opt -async2sync -assert -map +/intel_alm/common/alm_sim.v -map +/intel_alm/common/dff_sim.v synth_intel_alm -family cyclonev -noiopad # equivalency check
|
||||||
design -load postopt # load the post-opt design (otherwise equiv_opt loads the pre-opt design)
|
design -load postopt # load the post-opt design (otherwise equiv_opt loads the pre-opt design)
|
||||||
cd top # Constrain all select calls below inside the top module
|
cd top # Constrain all select calls below inside the top module
|
||||||
select -assert-count 8 t:MISTRAL_FF
|
select -assert-count 8 t:MISTRAL_FF
|
||||||
|
@ -14,7 +14,7 @@ read_verilog ../common/shifter.v
|
||||||
hierarchy -top top
|
hierarchy -top top
|
||||||
proc
|
proc
|
||||||
flatten
|
flatten
|
||||||
equiv_opt -async2sync -assert -map +/intel_alm/common/alm_sim.v -map +/intel_alm/common/dff_sim.v synth_intel_alm -family cyclone10gx # equivalency check
|
equiv_opt -async2sync -assert -map +/intel_alm/common/alm_sim.v -map +/intel_alm/common/dff_sim.v synth_intel_alm -family cyclone10gx -noiopad # equivalency check
|
||||||
design -load postopt # load the post-opt design (otherwise equiv_opt loads the pre-opt design)
|
design -load postopt # load the post-opt design (otherwise equiv_opt loads the pre-opt design)
|
||||||
cd top # Constrain all select calls below inside the top module
|
cd top # Constrain all select calls below inside the top module
|
||||||
select -assert-count 8 t:MISTRAL_FF
|
select -assert-count 8 t:MISTRAL_FF
|
||||||
|
|
|
@ -4,7 +4,7 @@ proc
|
||||||
tribuf
|
tribuf
|
||||||
flatten
|
flatten
|
||||||
synth
|
synth
|
||||||
equiv_opt -assert -map +/simcells.v synth_intel_alm -family cyclonev # equivalency check
|
equiv_opt -assert -map +/simcells.v synth_intel_alm -family cyclonev -noiopad # equivalency check
|
||||||
design -load postopt # load the post-opt design (otherwise equiv_opt loads the pre-opt design)
|
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
|
cd tristate # Constrain all select calls below inside the top module
|
||||||
#Internal cell type used. Need support it.
|
#Internal cell type used. Need support it.
|
||||||
|
@ -19,7 +19,7 @@ proc
|
||||||
tribuf
|
tribuf
|
||||||
flatten
|
flatten
|
||||||
synth
|
synth
|
||||||
equiv_opt -assert -map +/simcells.v synth_intel_alm -family cyclone10gx # equivalency check
|
equiv_opt -assert -map +/simcells.v synth_intel_alm -family cyclone10gx -noiopad # equivalency check
|
||||||
design -load postopt # load the post-opt design (otherwise equiv_opt loads the pre-opt design)
|
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
|
cd tristate # Constrain all select calls below inside the top module
|
||||||
#Internal cell type used. Need support it.
|
#Internal cell type used. Need support it.
|
||||||
|
|
Loading…
Reference in New Issue