forked from Github_Repos/cvw
new priority onehot module for better area/time
This commit is contained in:
parent
01e6d69a67
commit
846f12aa2e
@ -39,9 +39,11 @@ module priorityonehot #(parameter N = 8) (
|
|||||||
input logic [N-1:0] a,
|
input logic [N-1:0] a,
|
||||||
output logic [N-1:0] y
|
output logic [N-1:0] y
|
||||||
);
|
);
|
||||||
logic [N-1:0] nolower;
|
|
||||||
|
|
||||||
// create thermometer code mask
|
genvar i;
|
||||||
prioritythermometer #(N) maskgen(.a({a[N-2:0], 1'b0}), .y(nolower));
|
assign y[0] = a[0];
|
||||||
assign y = a & nolower;
|
for (i=1; i<N; i++) begin:poh
|
||||||
|
assign y[i] = a[i] & ~|a[i-1:0];
|
||||||
|
end
|
||||||
|
|
||||||
endmodule
|
endmodule
|
||||||
|
@ -5,8 +5,8 @@ NAME := synth
|
|||||||
|
|
||||||
# defaults
|
# defaults
|
||||||
export DESIGN ?= wallypipelinedcore
|
export DESIGN ?= wallypipelinedcore
|
||||||
export FREQ ?= 3402
|
export FREQ ?= 3000
|
||||||
export CONFIG ?= rv32e
|
export CONFIG ?= rv32gc
|
||||||
# sky130 and sky90 presently supported
|
# sky130 and sky90 presently supported
|
||||||
export TECH ?= tsmc28
|
export TECH ?= tsmc28
|
||||||
# MAXCORES allows parallel compilation, which is faster but less CPU-efficient
|
# MAXCORES allows parallel compilation, which is faster but less CPU-efficient
|
||||||
@ -14,7 +14,7 @@ export TECH ?= tsmc28
|
|||||||
export MAXCORES ?= 4
|
export MAXCORES ?= 4
|
||||||
# MAXOPT turns on flattening, boundary optimization, and retiming
|
# MAXOPT turns on flattening, boundary optimization, and retiming
|
||||||
# The output netlist is hard to interpret, but significantly better PPA
|
# The output netlist is hard to interpret, but significantly better PPA
|
||||||
export MAXOPT ?= 0
|
export MAXOPT ?= 1
|
||||||
export DRIVE ?= FLOP
|
export DRIVE ?= FLOP
|
||||||
|
|
||||||
time := $(shell date +%F-%H-%M)
|
time := $(shell date +%F-%H-%M)
|
||||||
|
@ -102,7 +102,8 @@ set_critical_range [expr $my_period*0.05] $current_design
|
|||||||
|
|
||||||
# Partitioning - flatten or hierarchically synthesize
|
# Partitioning - flatten or hierarchically synthesize
|
||||||
if { $maxopt == 1 } {
|
if { $maxopt == 1 } {
|
||||||
ungroup -all -flatten -simple_names
|
ungroup -all -simple_names
|
||||||
|
# -flatten
|
||||||
}
|
}
|
||||||
|
|
||||||
# Set input pins except clock
|
# Set input pins except clock
|
||||||
|
Loading…
Reference in New Issue
Block a user