3
0
Fork 0
mirror of https://github.com/YosysHQ/yosys synced 2025-08-21 10:41:37 +00:00

Merge remote-tracking branch 'origin/master' into xc7dsp

This commit is contained in:
Eddie Hung 2019-09-04 12:37:42 -07:00
commit 3732d421c5
12 changed files with 87 additions and 24 deletions

View file

@ -2,8 +2,8 @@
Example from: https://www.latticesemi.com/-/media/LatticeSemi/Documents/UserManuals/EI/iCEcube201701UserGuide.ashx?document_id=52071 [p. 77].
*/
module top(clk,a,b,c,set);
parameter A_WIDTH = 4;
parameter B_WIDTH = 3;
parameter A_WIDTH = 6 /*4*/;
parameter B_WIDTH = 6 /*3*/;
input set;
input clk;
input signed [(A_WIDTH - 1):0] a;

View file

@ -1,10 +1,13 @@
read_verilog macc.v
proc
hierarchy -top top
equiv_opt -assert -map +/ice40/cells_sim.v synth_ice40 -dsp # equivalency check
#equiv_opt -assert -map +/ice40/cells_sim.v synth_ice40 -dsp # equivalency check
equiv_opt -run :prove -map +/ice40/cells_sim.v synth_ice40 -dsp
async2sync
equiv_opt -run prove: -assert null
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
select -assert-count 38 t:SB_LUT4
select -assert-count 3 t:SB_CARRY
select -assert-count 7 t:SB_DFFSR
select -assert-none t:SB_LUT4 t:SB_CARRY t:SB_DFFSR %% t:* %D
select -assert-count 1 t:SB_MAC16
select -assert-none t:SB_MAC16 %% t:* %D

View file

@ -12,7 +12,7 @@ done
shift "$((OPTIND-1))"
# check for Icarus Verilog
if ! which iverilog > /dev/null ; then
if ! command -v iverilog > /dev/null ; then
echo "$0: Error: Icarus Verilog 'iverilog' not found."
exit 1
fi

View file

@ -12,7 +12,7 @@ done
shift "$((OPTIND-1))"
# check for Icarus Verilog
if ! which iverilog > /dev/null ; then
if ! command -v iverilog > /dev/null ; then
echo "$0: Error: Icarus Verilog 'iverilog' not found."
exit 1
fi

View file

@ -0,0 +1,27 @@
read -noverific
read -vlog2k <<EOT
module first;
endmodule
(* top *)
module top(input i, output o);
sub s0(i, o);
endmodule
(* constant_expression=1+1?2*2:3/3 *)
module sub(input i, output o);
assign o = ~i;
endmodule
EOT
design -save read
hierarchy -auto-top
select -assert-any top
select -assert-any sub
select -assert-none foo
design -load read
hierarchy
select -assert-any top
select -assert-any sub
select -assert-none foo