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 | #### 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), | 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 | 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 | 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.) | | | Device               | Speedgrade | Clock Period (Freq.) | | ||||||
| |:-------------------- |:----------:| --------------------:| | |:-------------------- |:----------:| --------------------:| | ||||||
| | Xilinx Artix-7T      | -1         |     4.8 ns (208 MHz) | | | Xilinx Artix-7T      | -1         |     4.6 ns (217 MHz) | | ||||||
| | Xilinx Artix-7T      | -2         |     3.9 ns (256 MHz) | | | Xilinx Artix-7T      | -2         |     4.0 ns (250 MHz) | | ||||||
| | Xilinx Artix-7T      | -3         |     3.4 ns (294 MHz) | | | Xilinx Artix-7T      | -3         |     3.4 ns (294 MHz) | | ||||||
| | Xilinx Kintex-7T     | -1         |     3.2 ns (312 MHz) | | | Xilinx Kintex-7T     | -1         |     3.0 ns (333 MHz) | | ||||||
| | Xilinx Kintex-7T     | -2         |     2.5 ns (400 MHz) | | | Xilinx Kintex-7T     | -2         |     2.7 ns (370 MHz) | | ||||||
| | Xilinx Kintex-7T     | -3         |     2.6 ns (384 MHz) | | | Xilinx Kintex-7T     | -3         |     2.5 ns (400 MHz) | | ||||||
| | Xilinx Virtex-7T     | -1         |     3.0 ns (333 MHz) | | | Xilinx Virtex-7T     | -1         |     3.0 ns (333 MHz) | | ||||||
| | Xilinx Virtex-7T     | -2         |     2.7 ns (370 MHz) | | | Xilinx Virtex-7T     | -2         |     2.5 ns (400 MHz) | | ||||||
| | Xilinx Virtex-7T     | -3         |     2.3 ns (434 MHz) | | | Xilinx Virtex-7T     | -3         |     2.2 ns (454 MHz) | | ||||||
| 
 | 
 | ||||||
| #### Utilization on Xilinx 7-Series FPGAs | #### 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 | | | Core Variant       | Slice LUTs | LUTs as Memory | Slice Registers | | ||||||
| |:------------------ | ----------:| --------------:| ---------------:| | |:------------------ | ----------:| --------------:| ---------------:| | ||||||
| | PicoRV32 (small)   |        775 |             48 |             422 | | | PicoRV32 (small)   |        775 |             48 |             422 | | ||||||
| | PicoRV32 (regular) |        963 |             48 |             564 | | | PicoRV32 (regular) |        960 |             48 |             564 | | ||||||
| | PicoRV32 (large)   |       1800 |             88 |            1002 | | | PicoRV32 (large)   |       1684 |             88 |            1002 | | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -51,13 +51,16 @@ synth_case() { | ||||||
| 	mv test_${1}.log test_${1}.txt | 	mv test_${1}.log test_${1}.txt | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| while [ $step -gt 0 ]; do | countdown=2 | ||||||
|  | while [ $countdown -gt 0 ]; do | ||||||
| 	synth_case $speed | 	synth_case $speed | ||||||
| 
 | 
 | ||||||
| 	if grep -q '^Slack.*(VIOLATED)' test_${speed}.txt; then | 	if grep -q '^Slack.*(VIOLATED)' test_${speed}.txt; then | ||||||
|  | 		echo "        tab_${ip}_${dev}_${grade}/test_${speed} VIOLATED" | ||||||
| 		[ $speed -eq 38 ] || step=$((step / 2)) | 		[ $speed -eq 38 ] || step=$((step / 2)) | ||||||
| 		speed=$((speed + step)) | 		speed=$((speed + step)) | ||||||
| 	elif grep -q '^Slack.*(MET)' test_${speed}.txt; then | 	elif grep -q '^Slack.*(MET)' test_${speed}.txt; then | ||||||
|  | 		echo "        tab_${ip}_${dev}_${grade}/test_${speed} MET" | ||||||
| 		[ $speed -lt $best_speed ] && best_speed=$speed | 		[ $speed -lt $best_speed ] && best_speed=$speed | ||||||
| 		step=$((step / 2)) | 		step=$((step / 2)) | ||||||
| 		speed=$((speed - step)) | 		speed=$((speed - step)) | ||||||
|  | @ -65,7 +68,16 @@ while [ $step -gt 0 ]; do | ||||||
| 		echo "ERROR: No slack line found in $PWD/test_${speed}.txt!" | 		echo "ERROR: No slack line found in $PWD/test_${speed}.txt!" | ||||||
| 		exit 1 | 		exit 1 | ||||||
| 	fi | 	fi | ||||||
|  | 
 | ||||||
|  | 	if [ $step -eq 0 ]; then | ||||||
|  | 		countdown=$((countdown - 1)) | ||||||
|  | 		speed=$((best_speed - 2)) | ||||||
|  | 		step=1 | ||||||
|  | 	fi | ||||||
| done | done | ||||||
| 
 | 
 | ||||||
|  | echo "-----------------------" | ||||||
|  | echo "Best speed for tab_${ip}_${dev}_${grade}: $best_speed" | ||||||
|  | echo "-----------------------" | ||||||
| echo $best_speed > results.txt | echo $best_speed > results.txt | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -72,7 +72,9 @@ module top ( | ||||||
| 	delay4 #(32) delay_irq             (clk, io_irq            ,    irq            ); | 	delay4 #(32) delay_irq             (clk, io_irq            ,    irq            ); | ||||||
| 	delay4 #(32) delay_eoi             (clk,    eoi            , io_eoi            ); | 	delay4 #(32) delay_eoi             (clk,    eoi            , io_eoi            ); | ||||||
| 
 | 
 | ||||||
| 	picorv32_axi core ( | 	picorv32_axi #( | ||||||
|  | 		.TWO_CYCLE_COMPARE(1) | ||||||
|  | 	) cpu ( | ||||||
| 		.clk            (clk            ), | 		.clk            (clk            ), | ||||||
| 		.resetn         (resetn         ), | 		.resetn         (resetn         ), | ||||||
| 		.trap           (trap           ), | 		.trap           (trap           ), | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue