Updated eval data
This commit is contained in:
parent
b6c4c2eeb9
commit
bd1cc3466f
20
README.md
20
README.md
|
@ -533,7 +533,7 @@ The following evaluations have been performed with Vivado 2015.1.
|
|||
|
||||
#### Timing on Xilinx 7-Series FPGAs
|
||||
|
||||
The `picorv32_axi` module in its default configuration has been placed and
|
||||
The `picorv32_axi` module with enabled `TWO_CYCLE_COMPARE` has been placed and
|
||||
routed for Xilinx Artix-7T (xc7a15t-fgg484), Xilinx Kintex-7T (xc7k70t-fbg676),
|
||||
and Xilinx Virtex-7T (xc7v585t-ffg1761) devices in all speed grades. A binary
|
||||
search is used to find the lowest clock period for which the design meets
|
||||
|
@ -543,15 +543,15 @@ See `make table.txt` in [scripts/vivado/](scripts/vivado/).
|
|||
|
||||
| Device | Speedgrade | Clock Period (Freq.) |
|
||||
|:-------------------- |:----------:| --------------------:|
|
||||
| Xilinx Artix-7T | -1 | 4.8 ns (208 MHz) |
|
||||
| Xilinx Artix-7T | -2 | 3.9 ns (256 MHz) |
|
||||
| Xilinx Artix-7T | -1 | 4.6 ns (217 MHz) |
|
||||
| Xilinx Artix-7T | -2 | 4.0 ns (250 MHz) |
|
||||
| Xilinx Artix-7T | -3 | 3.4 ns (294 MHz) |
|
||||
| Xilinx Kintex-7T | -1 | 3.2 ns (312 MHz) |
|
||||
| Xilinx Kintex-7T | -2 | 2.5 ns (400 MHz) |
|
||||
| Xilinx Kintex-7T | -3 | 2.6 ns (384 MHz) |
|
||||
| Xilinx Kintex-7T | -1 | 3.0 ns (333 MHz) |
|
||||
| Xilinx Kintex-7T | -2 | 2.7 ns (370 MHz) |
|
||||
| Xilinx Kintex-7T | -3 | 2.5 ns (400 MHz) |
|
||||
| Xilinx Virtex-7T | -1 | 3.0 ns (333 MHz) |
|
||||
| Xilinx Virtex-7T | -2 | 2.7 ns (370 MHz) |
|
||||
| Xilinx Virtex-7T | -3 | 2.3 ns (434 MHz) |
|
||||
| Xilinx Virtex-7T | -2 | 2.5 ns (400 MHz) |
|
||||
| Xilinx Virtex-7T | -3 | 2.2 ns (454 MHz) |
|
||||
|
||||
#### Utilization on Xilinx 7-Series FPGAs
|
||||
|
||||
|
@ -572,6 +572,6 @@ See `make area` in [scripts/vivado/](scripts/vivado/).
|
|||
| Core Variant | Slice LUTs | LUTs as Memory | Slice Registers |
|
||||
|:------------------ | ----------:| --------------:| ---------------:|
|
||||
| PicoRV32 (small) | 775 | 48 | 422 |
|
||||
| PicoRV32 (regular) | 963 | 48 | 564 |
|
||||
| PicoRV32 (large) | 1800 | 88 | 1002 |
|
||||
| PicoRV32 (regular) | 960 | 48 | 564 |
|
||||
| PicoRV32 (large) | 1684 | 88 | 1002 |
|
||||
|
||||
|
|
|
@ -51,13 +51,16 @@ synth_case() {
|
|||
mv test_${1}.log test_${1}.txt
|
||||
}
|
||||
|
||||
while [ $step -gt 0 ]; do
|
||||
countdown=2
|
||||
while [ $countdown -gt 0 ]; do
|
||||
synth_case $speed
|
||||
|
||||
if grep -q '^Slack.*(VIOLATED)' test_${speed}.txt; then
|
||||
echo " tab_${ip}_${dev}_${grade}/test_${speed} VIOLATED"
|
||||
[ $speed -eq 38 ] || step=$((step / 2))
|
||||
speed=$((speed + step))
|
||||
elif grep -q '^Slack.*(MET)' test_${speed}.txt; then
|
||||
echo " tab_${ip}_${dev}_${grade}/test_${speed} MET"
|
||||
[ $speed -lt $best_speed ] && best_speed=$speed
|
||||
step=$((step / 2))
|
||||
speed=$((speed - step))
|
||||
|
@ -65,7 +68,16 @@ while [ $step -gt 0 ]; do
|
|||
echo "ERROR: No slack line found in $PWD/test_${speed}.txt!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ $step -eq 0 ]; then
|
||||
countdown=$((countdown - 1))
|
||||
speed=$((best_speed - 2))
|
||||
step=1
|
||||
fi
|
||||
done
|
||||
|
||||
echo "-----------------------"
|
||||
echo "Best speed for tab_${ip}_${dev}_${grade}: $best_speed"
|
||||
echo "-----------------------"
|
||||
echo $best_speed > results.txt
|
||||
|
||||
|
|
|
@ -72,7 +72,9 @@ module top (
|
|||
delay4 #(32) delay_irq (clk, io_irq , irq );
|
||||
delay4 #(32) delay_eoi (clk, eoi , io_eoi );
|
||||
|
||||
picorv32_axi core (
|
||||
picorv32_axi #(
|
||||
.TWO_CYCLE_COMPARE(1)
|
||||
) cpu (
|
||||
.clk (clk ),
|
||||
.resetn (resetn ),
|
||||
.trap (trap ),
|
||||
|
|
Loading…
Reference in New Issue