diff --git a/examples/hdl4se_riscv/de1/de1_riscv_v5.htm b/examples/hdl4se_riscv/de1/de1_riscv_v5.htm new file mode 100644 index 0000000000000000000000000000000000000000..adf7ee1cd09a006ccde777267532d619d62c7902 --- /dev/null +++ b/examples/hdl4se_riscv/de1/de1_riscv_v5.htm @@ -0,0 +1,1457 @@ + + +

DE1 SoC Board Configuration

+
+
+

Pin Assignments:

+ +
+
+
+

Pin Assignment Table:

+

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ADC
NameLocationDirectionStandard
ADC_CONVSTAJ4output3.3-V LVTTL
ADC_DINAK4output3.3-V LVTTL
ADC_DOUTAK3input 3.3-V LVTTL
ADC_SCLKAK2output3.3-V LVTTL
+

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Audio
NameLocationDirectionStandard
AUD_ADCDATK7input 3.3-V LVTTL
AUD_ADCLRCKK8inout 3.3-V LVTTL
AUD_BCLKH7inout 3.3-V LVTTL
AUD_DACDATJ7output3.3-V LVTTL
AUD_DACLRCKH8inout 3.3-V LVTTL
AUD_XCKG7output3.3-V LVTTL
+

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CLOCK
NameLocationDirectionStandard
CLOCK2_50AA16input 3.3-V LVTTL
CLOCK3_50Y26input 3.3-V LVTTL
CLOCK4_50K14input 3.3-V LVTTL
CLOCK_50AF14input 3.3-V LVTTL
+

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SDRAM
NameLocationDirectionStandard
DRAM_ADDR[0]AK14output3.3-V LVTTL
DRAM_ADDR[1]AH14output3.3-V LVTTL
DRAM_ADDR[2]AG15output3.3-V LVTTL
DRAM_ADDR[3]AE14output3.3-V LVTTL
DRAM_ADDR[4]AB15output3.3-V LVTTL
DRAM_ADDR[5]AC14output3.3-V LVTTL
DRAM_ADDR[6]AD14output3.3-V LVTTL
DRAM_ADDR[7]AF15output3.3-V LVTTL
DRAM_ADDR[8]AH15output3.3-V LVTTL
DRAM_ADDR[9]AG13output3.3-V LVTTL
DRAM_ADDR[10]AG12output3.3-V LVTTL
DRAM_ADDR[11]AH13output3.3-V LVTTL
DRAM_ADDR[12]AJ14output3.3-V LVTTL
DRAM_BA[0]AF13output3.3-V LVTTL
DRAM_BA[1]AJ12output3.3-V LVTTL
DRAM_CAS_NAF11output3.3-V LVTTL
DRAM_CKEAK13output3.3-V LVTTL
DRAM_CLKAH12output3.3-V LVTTL
DRAM_CS_NAG11output3.3-V LVTTL
DRAM_DQ[0]AK6inout 3.3-V LVTTL
DRAM_DQ[1]AJ7inout 3.3-V LVTTL
DRAM_DQ[2]AK7inout 3.3-V LVTTL
DRAM_DQ[3]AK8inout 3.3-V LVTTL
DRAM_DQ[4]AK9inout 3.3-V LVTTL
DRAM_DQ[5]AG10inout 3.3-V LVTTL
DRAM_DQ[6]AK11inout 3.3-V LVTTL
DRAM_DQ[7]AJ11inout 3.3-V LVTTL
DRAM_DQ[8]AH10inout 3.3-V LVTTL
DRAM_DQ[9]AJ10inout 3.3-V LVTTL
DRAM_DQ[10]AJ9inout 3.3-V LVTTL
DRAM_DQ[11]AH9inout 3.3-V LVTTL
DRAM_DQ[12]AH8inout 3.3-V LVTTL
DRAM_DQ[13]AH7inout 3.3-V LVTTL
DRAM_DQ[14]AJ6inout 3.3-V LVTTL
DRAM_DQ[15]AJ5inout 3.3-V LVTTL
DRAM_LDQMAB13output3.3-V LVTTL
DRAM_RAS_NAE13output3.3-V LVTTL
DRAM_UDQMAK12output3.3-V LVTTL
DRAM_WE_NAA13output3.3-V LVTTL
+

+ +
+
+ + + + + + + + + + + + + + + + + + +
I2C for Audio and Video-In
NameLocationDirectionStandard
FPGA_I2C_SCLKJ12output3.3-V LVTTL
FPGA_I2C_SDATK12inout 3.3-V LVTTL
+

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SEG7
NameLocationDirectionStandard
HEX0[0]AE26output3.3-V LVTTL
HEX0[1]AE27output3.3-V LVTTL
HEX0[2]AE28output3.3-V LVTTL
HEX0[3]AG27output3.3-V LVTTL
HEX0[4]AF28output3.3-V LVTTL
HEX0[5]AG28output3.3-V LVTTL
HEX0[6]AH28output3.3-V LVTTL
HEX1[0]AJ29output3.3-V LVTTL
HEX1[1]AH29output3.3-V LVTTL
HEX1[2]AH30output3.3-V LVTTL
HEX1[3]AG30output3.3-V LVTTL
HEX1[4]AF29output3.3-V LVTTL
HEX1[5]AF30output3.3-V LVTTL
HEX1[6]AD27output3.3-V LVTTL
HEX2[0]AB23output3.3-V LVTTL
HEX2[1]AE29output3.3-V LVTTL
HEX2[2]AD29output3.3-V LVTTL
HEX2[3]AC28output3.3-V LVTTL
HEX2[4]AD30output3.3-V LVTTL
HEX2[5]AC29output3.3-V LVTTL
HEX2[6]AC30output3.3-V LVTTL
HEX3[0]AD26output3.3-V LVTTL
HEX3[1]AC27output3.3-V LVTTL
HEX3[2]AD25output3.3-V LVTTL
HEX3[3]AC25output3.3-V LVTTL
HEX3[4]AB28output3.3-V LVTTL
HEX3[5]AB25output3.3-V LVTTL
HEX3[6]AB22output3.3-V LVTTL
HEX4[0]AA24output3.3-V LVTTL
HEX4[1]Y23output3.3-V LVTTL
HEX4[2]Y24output3.3-V LVTTL
HEX4[3]W22output3.3-V LVTTL
HEX4[4]W24output3.3-V LVTTL
HEX4[5]V23output3.3-V LVTTL
HEX4[6]W25output3.3-V LVTTL
HEX5[0]V25output3.3-V LVTTL
HEX5[1]AA28output3.3-V LVTTL
HEX5[2]Y27output3.3-V LVTTL
HEX5[3]AB27output3.3-V LVTTL
HEX5[4]AB26output3.3-V LVTTL
HEX5[5]AA26output3.3-V LVTTL
HEX5[6]AA25output3.3-V LVTTL
+

+ +
+
+ + + + + + + + + + + + + + + + + + +
IR
NameLocationDirectionStandard
IRDA_RXDAA30input 3.3-V LVTTL
IRDA_TXDAB30output3.3-V LVTTL
+

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
KEY
NameLocationDirectionStandard
KEY[0]AA14input 3.3-V LVTTL
KEY[1]AA15input 3.3-V LVTTL
KEY[2]W15input 3.3-V LVTTL
KEY[3]Y16input 3.3-V LVTTL
+

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
LED
NameLocationDirectionStandard
LEDR[0]V16output3.3-V LVTTL
LEDR[1]W16output3.3-V LVTTL
LEDR[2]V17output3.3-V LVTTL
LEDR[3]V18output3.3-V LVTTL
LEDR[4]W17output3.3-V LVTTL
LEDR[5]W19output3.3-V LVTTL
LEDR[6]Y19output3.3-V LVTTL
LEDR[7]W20output3.3-V LVTTL
LEDR[8]W21output3.3-V LVTTL
LEDR[9]Y21output3.3-V LVTTL
+

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PS2
NameLocationDirectionStandard
PS2_CLKAD7inout 3.3-V LVTTL
PS2_CLK2AD9inout 3.3-V LVTTL
PS2_DATAE7inout 3.3-V LVTTL
PS2_DAT2AE9inout 3.3-V LVTTL
+

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SW
NameLocationDirectionStandard
SW[0]AB12input 3.3-V LVTTL
SW[1]AC12input 3.3-V LVTTL
SW[2]AF9input 3.3-V LVTTL
SW[3]AF10input 3.3-V LVTTL
SW[4]AD11input 3.3-V LVTTL
SW[5]AD12input 3.3-V LVTTL
SW[6]AE11input 3.3-V LVTTL
SW[7]AC9input 3.3-V LVTTL
SW[8]AD10input 3.3-V LVTTL
SW[9]AE12input 3.3-V LVTTL
+

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Video-In
NameLocationDirectionStandard
TD_CLK27H15input 3.3-V LVTTL
TD_DATA[0]D2input 3.3-V LVTTL
TD_DATA[1]B1input 3.3-V LVTTL
TD_DATA[2]E2input 3.3-V LVTTL
TD_DATA[3]B2input 3.3-V LVTTL
TD_DATA[4]D1input 3.3-V LVTTL
TD_DATA[5]E1input 3.3-V LVTTL
TD_DATA[6]C2input 3.3-V LVTTL
TD_DATA[7]B3input 3.3-V LVTTL
TD_HSA5input 3.3-V LVTTL
TD_RESET_NF6output3.3-V LVTTL
TD_VSA3input 3.3-V LVTTL
+

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
VGA
NameLocationDirectionStandard
VGA_BLANK_NF10output3.3-V LVTTL
VGA_B[0]B13output3.3-V LVTTL
VGA_B[1]G13output3.3-V LVTTL
VGA_B[2]H13output3.3-V LVTTL
VGA_B[3]F14output3.3-V LVTTL
VGA_B[4]H14output3.3-V LVTTL
VGA_B[5]F15output3.3-V LVTTL
VGA_B[6]G15output3.3-V LVTTL
VGA_B[7]J14output3.3-V LVTTL
VGA_CLKA11output3.3-V LVTTL
VGA_G[0]J9output3.3-V LVTTL
VGA_G[1]J10output3.3-V LVTTL
VGA_G[2]H12output3.3-V LVTTL
VGA_G[3]G10output3.3-V LVTTL
VGA_G[4]G11output3.3-V LVTTL
VGA_G[5]G12output3.3-V LVTTL
VGA_G[6]F11output3.3-V LVTTL
VGA_G[7]E11output3.3-V LVTTL
VGA_HSB11output3.3-V LVTTL
VGA_R[0]A13output3.3-V LVTTL
VGA_R[1]C13output3.3-V LVTTL
VGA_R[2]E13output3.3-V LVTTL
VGA_R[3]B12output3.3-V LVTTL
VGA_R[4]C12output3.3-V LVTTL
VGA_R[5]D12output3.3-V LVTTL
VGA_R[6]E12output3.3-V LVTTL
VGA_R[7]F13output3.3-V LVTTL
VGA_SYNC_NC10output3.3-V LVTTL
VGA_VSD11output3.3-V LVTTL
+

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GPIO_0 connect to GPIO Default
NameLocationDirectionStandardGPIO Pin Index
GPIO[0]AC18inout 3.3-V LVTTL1
GPIO[1]Y17inout 3.3-V LVTTL2
GPIO[2]AD17inout 3.3-V LVTTL3
GPIO[3]Y18inout 3.3-V LVTTL4
GPIO[4]AK16inout 3.3-V LVTTL5
GPIO[5]AK18inout 3.3-V LVTTL6
GPIO[6]AK19inout 3.3-V LVTTL7
GPIO[7]AJ19inout 3.3-V LVTTL8
GPIO[8]AJ17inout 3.3-V LVTTL9
GPIO[9]AJ16inout 3.3-V LVTTL10
GPIO[10]AH18inout 3.3-V LVTTL13
GPIO[11]AH17inout 3.3-V LVTTL14
GPIO[12]AG16inout 3.3-V LVTTL15
GPIO[13]AE16inout 3.3-V LVTTL16
GPIO[14]AF16inout 3.3-V LVTTL17
GPIO[15]AG17inout 3.3-V LVTTL18
GPIO[16]AA18inout 3.3-V LVTTL19
GPIO[17]AA19inout 3.3-V LVTTL20
GPIO[18]AE17inout 3.3-V LVTTL21
GPIO[19]AC20inout 3.3-V LVTTL22
GPIO[20]AH19inout 3.3-V LVTTL23
GPIO[21]AJ20inout 3.3-V LVTTL24
GPIO[22]AH20inout 3.3-V LVTTL25
GPIO[23]AK21inout 3.3-V LVTTL26
GPIO[24]AD19inout 3.3-V LVTTL27
GPIO[25]AD20inout 3.3-V LVTTL28
GPIO[26]AE18inout 3.3-V LVTTL31
GPIO[27]AE19inout 3.3-V LVTTL32
GPIO[28]AF20inout 3.3-V LVTTL33
GPIO[29]AF21inout 3.3-V LVTTL34
GPIO[30]AF19inout 3.3-V LVTTL35
GPIO[31]AG21inout 3.3-V LVTTL36
GPIO[32]AF18inout 3.3-V LVTTL37
GPIO[33]AG20inout 3.3-V LVTTL38
GPIO[34]AG18inout 3.3-V LVTTL39
GPIO[35]AJ21inout 3.3-V LVTTL40
+ + diff --git a/examples/hdl4se_riscv/de1/de1_riscv_v5.pin b/examples/hdl4se_riscv/de1/de1_riscv_v5.pin new file mode 100644 index 0000000000000000000000000000000000000000..f4eb8cc920d957e82e38b589ab47823982b59c43 --- /dev/null +++ b/examples/hdl4se_riscv/de1/de1_riscv_v5.pin @@ -0,0 +1,975 @@ + -- Copyright (C) 1991-2013 Altera Corporation + -- Your use of Altera Corporation's design tools, logic functions + -- and other software and tools, and its AMPP partner logic + -- functions, and any output files from any of the foregoing + -- (including device programming or simulation files), and any + -- associated documentation or information are expressly subject + -- to the terms and conditions of the Altera Program License + -- Subscription Agreement, Altera MegaCore Function License + -- Agreement, or other applicable license agreement, including, + -- without limitation, that your use is for the sole purpose of + -- programming logic devices manufactured by Altera and sold by + -- Altera or its authorized distributors. Please refer to the + -- applicable agreement for further details. + -- + -- This is a Quartus II output file. It is for reporting purposes only, and is + -- not intended for use as a Quartus II input file. This file cannot be used + -- to make Quartus II pin assignments - for instructions on how to make pin + -- assignments, please see Quartus II help. + --------------------------------------------------------------------------------- + + + + --------------------------------------------------------------------------------- + -- NC : No Connect. This pin has no internal connection to the device. + -- DNU : Do Not Use. This pin MUST NOT be connected. + -- VCCPGM : Dedicated power pin for configuration, which MUST be connected to 1.8V, 2.5V, 3.0V or 3.3V depending on the requirements of the configuration device. + -- VCCINT : Dedicated power pin, which MUST be connected to VCC (1.1V). + -- VCCIO : Dedicated power pin, which MUST be connected to VCC + -- of its bank. + -- Bank 3A: 3.3V + -- Bank 3B: 3.3V + -- Bank 4A: 3.3V + -- Bank 5A: 3.3V + -- Bank 5B: 3.3V + -- Bank 6B: 2.5V + -- Bank 6A: 2.5V + -- Bank 7A: 2.5V + -- Bank 7B: 2.5V + -- Bank 7C: 2.5V + -- Bank 7D: 2.5V + -- Bank 8A: 3.3V + -- RREF : External reference resistor for the quad, MUST be connected to + -- GND via a 2k Ohm resistor. + -- GND : Dedicated ground pin. Dedicated GND pins MUST be connected to GND. + -- It can also be used to report unused dedicated pins. The connection + -- on the board for unused dedicated pins depends on whether this will + -- be used in a future design. One example is device migration. When + -- using device migration, refer to the device pin-tables. If it is a + -- GND pin in the pin table or if it will not be used in a future design + -- for another purpose the it MUST be connected to GND. If it is an unused + -- dedicated pin, then it can be connected to a valid signal on the board + -- (low, high, or toggling) if that signal is required for a different + -- revision of the design. + -- GND+ : Unused input pin. It can also be used to report unused dual-purpose pins. + -- This pin should be connected to GND. It may also be connected to a + -- valid signal on the board (low, high, or toggling) if that signal + -- is required for a different revision of the design. + -- GND* : Unused I/O pin. Connect each pin marked GND* directly to GND + -- or leave it unconnected. + -- RESERVED : Unused I/O pin, which MUST be left unconnected. + -- RESERVED_INPUT : Pin is tri-stated and should be connected to the board. + -- RESERVED_INPUT_WITH_WEAK_PULLUP : Pin is tri-stated with internal weak pull-up resistor. + -- RESERVED_INPUT_WITH_BUS_HOLD : Pin is tri-stated with bus-hold circuitry. + -- RESERVED_OUTPUT_DRIVEN_HIGH : Pin is output driven high. + -- GXB_NC : Unused GXB Transmitter or dedicated clock output pin. This pin + -- must not be connected. + --------------------------------------------------------------------------------- + + + + --------------------------------------------------------------------------------- + -- Pin directions (input, output or bidir) are based on device operating in user mode. + --------------------------------------------------------------------------------- + +Quartus II 64-Bit Version 13.1.0 Build 162 10/23/2013 SJ Full Version +CHIP "de1_riscv_v5" ASSIGNED TO AN: 5CSEMA5F31C6 + +Pin Name/Usage : Location : Dir. : I/O Standard : Voltage : I/O Bank : User Assignment +------------------------------------------------------------------------------------------------------------- +GND : A2 : gnd : : : : +TD_VS : A3 : input : 3.3-V LVTTL : : 8A : Y +RESERVED_INPUT_WITH_WEAK_PULLUP : A4 : : : : 8A : +TD_HS : A5 : input : 3.3-V LVTTL : : 8A : Y +RESERVED_INPUT_WITH_WEAK_PULLUP : A6 : : : : 8A : +VCCIO8A : A7 : power : : 3.3V : 8A : +RESERVED_INPUT_WITH_WEAK_PULLUP : A8 : : : : 8A : +RESERVED_INPUT_WITH_WEAK_PULLUP : A9 : : : : 8A : +RESERVED_INPUT_WITH_WEAK_PULLUP : A10 : : : : 8A : +VGA_CLK : A11 : output : 3.3-V LVTTL : : 8A : Y +GND : A12 : gnd : : : : +VGA_R[0] : A13 : output : 3.3-V LVTTL : : 8A : Y +RESERVED_INPUT_WITH_WEAK_PULLUP : A14 : : : : 7D : +RESERVED_INPUT_WITH_WEAK_PULLUP : A15 : : : : 7D : +RESERVED_INPUT_WITH_WEAK_PULLUP : A16 : : : : 7C : +GND : A17 : gnd : : : : +RESERVED_INPUT_WITH_WEAK_PULLUP : A18 : : : : 7B : +RESERVED_INPUT_WITH_WEAK_PULLUP : A19 : : : : 7B : +RESERVED_INPUT_WITH_WEAK_PULLUP : A20 : : : : 7B : +RESERVED_INPUT_WITH_WEAK_PULLUP : A21 : : : : 7B : +GND : A22 : gnd : : : : +RESERVED_INPUT_WITH_WEAK_PULLUP : A23 : : : : 7A : +RESERVED_INPUT_WITH_WEAK_PULLUP : A24 : : : : 7A : +RESERVED_INPUT_WITH_WEAK_PULLUP : A25 : : : : 7A : +GND : A26 : : : : 7A : +GND : A27 : gnd : : : : +HPS_TRST : A28 : : : : 7A : +HPS_TMS : A29 : : : : 7A : +GND : AA1 : gnd : : : : +GND : AA2 : gnd : : : : +GND : AA3 : gnd : : : : +GND : AA4 : gnd : : : : +VCC : AA5 : power : : 1.1V : : +GND : AA6 : gnd : : : : +DNU : AA7 : : : : : +VCCA_FPLL : AA8 : power : : 2.5V : : +GND : AA9 : gnd : : : : +VCCPD3A : AA10 : power : : 3.3V : 3A : +GND : AA11 : gnd : : : : +RESERVED_INPUT_WITH_WEAK_PULLUP : AA12 : : : : 3A : +DRAM_WE_N : AA13 : output : 3.3-V LVTTL : : 3B : Y +KEY[0] : AA14 : input : 3.3-V LVTTL : : 3B : Y +KEY[1] : AA15 : input : 3.3-V LVTTL : : 3B : Y +CLOCK2_50 : AA16 : input : 3.3-V LVTTL : : 4A : Y +VCCIO4A : AA17 : power : : 3.3V : 4A : +GPIO[16] : AA18 : bidir : 3.3-V LVTTL : : 4A : Y +GPIO[17] : AA19 : bidir : 3.3-V LVTTL : : 4A : Y +RESERVED_INPUT_WITH_WEAK_PULLUP : AA20 : : : : 4A : +RESERVED_INPUT_WITH_WEAK_PULLUP : AA21 : : : : 4A : +GND : AA22 : gnd : : : : +VCCPGM : AA23 : power : : 1.8V/2.5V/3.0V/3.3V : : +HEX4[0] : AA24 : output : 3.3-V LVTTL : : 5A : Y +HEX5[6] : AA25 : output : 3.3-V LVTTL : : 5A : Y +HEX5[5] : AA26 : output : 3.3-V LVTTL : : 5B : Y +VCCIO5B : AA27 : power : : 3.3V : 5B : +HEX5[1] : AA28 : output : 3.3-V LVTTL : : 5B : Y +VREFB5BN0 : AA29 : power : : : 5B : +IRDA_RXD : AA30 : input : 3.3-V LVTTL : : 5B : Y +GND : AB1 : gnd : : : : +GND : AB2 : gnd : : : : +DNU : AB3 : : : : : +DNU : AB4 : : : : : +GND : AB5 : gnd : : : : +VCCA_FPLL : AB6 : power : : 2.5V : : +GND : AB7 : gnd : : : : +nCSO, DATA4 : AB8 : : : : 3A : +TDO : AB9 : output : : : 3A : +VCCPGM : AB10 : power : : 1.8V/2.5V/3.0V/3.3V : : +VCC_AUX : AB11 : power : : 2.5V : : +SW[0] : AB12 : input : 3.3-V LVTTL : : 3A : Y +DRAM_LDQM : AB13 : output : 3.3-V LVTTL : : 3B : Y +VCCIO3B : AB14 : power : : 3.3V : 3B : +DRAM_ADDR[4] : AB15 : output : 3.3-V LVTTL : : 3B : Y +VCC_AUX : AB16 : power : : 2.5V : : +RESERVED_INPUT_WITH_WEAK_PULLUP : AB17 : : : : 4A : +VCCPD3B4A : AB18 : power : : 3.3V : : +GND : AB19 : gnd : : : : +VCCPD3B4A : AB20 : power : : 3.3V : : +RESERVED_INPUT_WITH_WEAK_PULLUP : AB21 : : : : 4A : +HEX3[6] : AB22 : output : 3.3-V LVTTL : : 5A : Y +HEX2[0] : AB23 : output : 3.3-V LVTTL : : 5A : Y +VCCIO5A : AB24 : power : : 3.3V : 5A : +HEX3[5] : AB25 : output : 3.3-V LVTTL : : 5A : Y +HEX5[4] : AB26 : output : 3.3-V LVTTL : : 5A : Y +HEX5[3] : AB27 : output : 3.3-V LVTTL : : 5B : Y +HEX3[4] : AB28 : output : 3.3-V LVTTL : : 5B : Y +GND : AB29 : gnd : : : : +IRDA_TXD : AB30 : output : 3.3-V LVTTL : : 5B : Y +GND : AC1 : gnd : : : : +GND : AC2 : gnd : : : : +GND : AC3 : gnd : : : : +GND : AC4 : gnd : : : : +TCK : AC5 : input : : : 3A : +GND : AC6 : gnd : : : : +AS_DATA3, DATA3 : AC7 : : : : 3A : +GND : AC8 : gnd : : : : +SW[7] : AC9 : input : 3.3-V LVTTL : : 3A : Y +VCCPD3A : AC10 : power : : 3.3V : 3A : +VCCIO3A : AC11 : power : : 3.3V : 3A : +SW[1] : AC12 : input : 3.3-V LVTTL : : 3A : Y +VCCPD3B4A : AC13 : power : : 3.3V : : +DRAM_ADDR[5] : AC14 : output : 3.3-V LVTTL : : 3B : Y +VCCPD3B4A : AC15 : power : : 3.3V : : +GND : AC16 : gnd : : : : +VCCPD3B4A : AC17 : power : : 3.3V : : +GPIO[0] : AC18 : bidir : 3.3-V LVTTL : : 4A : Y +VCCPD3B4A : AC19 : power : : 3.3V : : +GPIO[19] : AC20 : bidir : 3.3-V LVTTL : : 4A : Y +VCCIO4A : AC21 : power : : 3.3V : 4A : +RESERVED_INPUT_WITH_WEAK_PULLUP : AC22 : : : : 4A : +RESERVED_INPUT_WITH_WEAK_PULLUP : AC23 : : : : 4A : +VREFB5AN0 : AC24 : power : : : 5A : +HEX3[3] : AC25 : output : 3.3-V LVTTL : : 5A : Y +GND : AC26 : gnd : : : : +HEX3[1] : AC27 : output : 3.3-V LVTTL : : 5A : Y +HEX2[3] : AC28 : output : 3.3-V LVTTL : : 5B : Y +HEX2[5] : AC29 : output : 3.3-V LVTTL : : 5B : Y +HEX2[6] : AC30 : output : 3.3-V LVTTL : : 5B : Y +GND : AD1 : gnd : : : : +GND : AD2 : gnd : : : : +DNU : AD3 : : : : : +DNU : AD4 : : : : : +GND : AD5 : gnd : : : : +VREFB3AN0 : AD6 : power : : : 3A : +PS2_CLK : AD7 : bidir : 3.3-V LVTTL : : 3A : Y +VCCIO3A : AD8 : power : : 3.3V : 3A : +PS2_CLK2 : AD9 : bidir : 3.3-V LVTTL : : 3A : Y +SW[8] : AD10 : input : 3.3-V LVTTL : : 3A : Y +SW[4] : AD11 : input : 3.3-V LVTTL : : 3A : Y +SW[5] : AD12 : input : 3.3-V LVTTL : : 3A : Y +VCCIO3B : AD13 : power : : 3.3V : 3B : +DRAM_ADDR[6] : AD14 : output : 3.3-V LVTTL : : 3B : Y +DNU : AD15 : : : : : +VCCPD3B4A : AD16 : power : : 3.3V : : +GPIO[2] : AD17 : bidir : 3.3-V LVTTL : : 4A : Y +VCCIO4A : AD18 : power : : 3.3V : 4A : +GPIO[24] : AD19 : bidir : 3.3-V LVTTL : : 4A : Y +GPIO[25] : AD20 : bidir : 3.3-V LVTTL : : 4A : Y +RESERVED_INPUT_WITH_WEAK_PULLUP : AD21 : : : : 4A : +VCC_AUX : AD22 : power : : 2.5V : : +GND : AD23 : gnd : : : : +RESERVED_INPUT_WITH_WEAK_PULLUP : AD24 : : : : 4A : +HEX3[2] : AD25 : output : 3.3-V LVTTL : : 5A : Y +HEX3[0] : AD26 : output : 3.3-V LVTTL : : 5A : Y +HEX1[6] : AD27 : output : 3.3-V LVTTL : : 5A : Y +VCCIO5A : AD28 : power : : 3.3V : 5A : +HEX2[2] : AD29 : output : 3.3-V LVTTL : : 5B : Y +HEX2[4] : AD30 : output : 3.3-V LVTTL : : 5B : Y +GND : AE1 : gnd : : : : +GND : AE2 : gnd : : : : +GND : AE3 : gnd : : : : +GND : AE4 : gnd : : : : +AS_DATA1, DATA1 : AE5 : : : : 3A : +AS_DATA0, ASDO, DATA0 : AE6 : : : : 3A : +PS2_DAT : AE7 : bidir : 3.3-V LVTTL : : 3A : Y +AS_DATA2, DATA2 : AE8 : : : : 3A : +PS2_DAT2 : AE9 : bidir : 3.3-V LVTTL : : 3A : Y +GND : AE10 : gnd : : : : +SW[6] : AE11 : input : 3.3-V LVTTL : : 3A : Y +SW[9] : AE12 : input : 3.3-V LVTTL : : 3A : Y +DRAM_RAS_N : AE13 : output : 3.3-V LVTTL : : 3B : Y +DRAM_ADDR[3] : AE14 : output : 3.3-V LVTTL : : 3B : Y +VCCIO3B : AE15 : power : : 3.3V : 3B : +GPIO[13] : AE16 : bidir : 3.3-V LVTTL : : 4A : Y +GPIO[18] : AE17 : bidir : 3.3-V LVTTL : : 4A : Y +GPIO[26] : AE18 : bidir : 3.3-V LVTTL : : 4A : Y +GPIO[27] : AE19 : bidir : 3.3-V LVTTL : : 4A : Y +GND : AE20 : gnd : : : : +VCCPD3B4A : AE21 : power : : 3.3V : : +RESERVED_INPUT_WITH_WEAK_PULLUP : AE22 : : : : 4A : +RESERVED_INPUT_WITH_WEAK_PULLUP : AE23 : : : : 4A : +RESERVED_INPUT_WITH_WEAK_PULLUP : AE24 : : : : 4A : +VCCIO4A : AE25 : power : : 3.3V : 4A : +HEX0[0] : AE26 : output : 3.3-V LVTTL : : 5A : Y +HEX0[1] : AE27 : output : 3.3-V LVTTL : : 5A : Y +HEX0[2] : AE28 : output : 3.3-V LVTTL : : 5A : Y +HEX2[1] : AE29 : output : 3.3-V LVTTL : : 5B : Y +VCCIO5B : AE30 : power : : 3.3V : 5B : +GND : AF1 : gnd : : : : +GND : AF2 : gnd : : : : +GND : AF3 : gnd : : : : +RESERVED_INPUT_WITH_WEAK_PULLUP : AF4 : : : : 3A : +RESERVED_INPUT_WITH_WEAK_PULLUP : AF5 : : : : 3A : +RESERVED_INPUT_WITH_WEAK_PULLUP : AF6 : : : : 3A : +VCCIO3A : AF7 : power : : 3.3V : 3A : +RESERVED_INPUT_WITH_WEAK_PULLUP : AF8 : : : : 3A : +SW[2] : AF9 : input : 3.3-V LVTTL : : 3A : Y +SW[3] : AF10 : input : 3.3-V LVTTL : : 3A : Y +DRAM_CAS_N : AF11 : output : 3.3-V LVTTL : : 3B : Y +GND : AF12 : gnd : : : : +DRAM_BA[0] : AF13 : output : 3.3-V LVTTL : : 3B : Y +CLOCK_50 : AF14 : input : 3.3-V LVTTL : : 3B : Y +DRAM_ADDR[7] : AF15 : output : 3.3-V LVTTL : : 3B : Y +GPIO[14] : AF16 : bidir : 3.3-V LVTTL : : 4A : Y +GND : AF17 : gnd : : : : +GPIO[32] : AF18 : bidir : 3.3-V LVTTL : : 4A : Y +GPIO[30] : AF19 : bidir : 3.3-V LVTTL : : 4A : Y +GPIO[28] : AF20 : bidir : 3.3-V LVTTL : : 4A : Y +GPIO[29] : AF21 : bidir : 3.3-V LVTTL : : 4A : Y +VCCIO4A : AF22 : power : : 3.3V : 4A : +RESERVED_INPUT_WITH_WEAK_PULLUP : AF23 : : : : 4A : +RESERVED_INPUT_WITH_WEAK_PULLUP : AF24 : : : : 4A : +RESERVED_INPUT_WITH_WEAK_PULLUP : AF25 : : : : 4A : +RESERVED_INPUT_WITH_WEAK_PULLUP : AF26 : : : : 4A : +GND : AF27 : gnd : : : : +HEX0[4] : AF28 : output : 3.3-V LVTTL : : 5A : Y +HEX1[4] : AF29 : output : 3.3-V LVTTL : : 5A : Y +HEX1[5] : AF30 : output : 3.3-V LVTTL : : 5A : Y +RESERVED_INPUT_WITH_WEAK_PULLUP : AG1 : : : : 3A : +RESERVED_INPUT_WITH_WEAK_PULLUP : AG2 : : : : 3A : +RESERVED_INPUT_WITH_WEAK_PULLUP : AG3 : : : : 3A : +VCCIO3A : AG4 : power : : 3.3V : 3A : +RESERVED_INPUT_WITH_WEAK_PULLUP : AG5 : : : : 3A : +RESERVED_INPUT_WITH_WEAK_PULLUP : AG6 : : : : 3A : +RESERVED_INPUT_WITH_WEAK_PULLUP : AG7 : : : : 3A : +RESERVED_INPUT_WITH_WEAK_PULLUP : AG8 : : : : 3A : +GND : AG9 : gnd : : : : +DRAM_DQ[5] : AG10 : bidir : 3.3-V LVTTL : : 3B : Y +DRAM_CS_N : AG11 : output : 3.3-V LVTTL : : 3B : Y +DRAM_ADDR[10] : AG12 : output : 3.3-V LVTTL : : 3B : Y +DRAM_ADDR[9] : AG13 : output : 3.3-V LVTTL : : 3B : Y +GND : AG14 : gnd : : : : +DRAM_ADDR[2] : AG15 : output : 3.3-V LVTTL : : 3B : Y +GPIO[12] : AG16 : bidir : 3.3-V LVTTL : : 4A : Y +GPIO[15] : AG17 : bidir : 3.3-V LVTTL : : 4A : Y +GPIO[34] : AG18 : bidir : 3.3-V LVTTL : : 4A : Y +VCCIO4A : AG19 : power : : 3.3V : 4A : +GPIO[33] : AG20 : bidir : 3.3-V LVTTL : : 4A : Y +GPIO[31] : AG21 : bidir : 3.3-V LVTTL : : 4A : Y +RESERVED_INPUT_WITH_WEAK_PULLUP : AG22 : : : : 4A : +RESERVED_INPUT_WITH_WEAK_PULLUP : AG23 : : : : 4A : +GND : AG24 : gnd : : : : +RESERVED_INPUT_WITH_WEAK_PULLUP : AG25 : : : : 4A : +RESERVED_INPUT_WITH_WEAK_PULLUP : AG26 : : : : 4A : +HEX0[3] : AG27 : output : 3.3-V LVTTL : : 5A : Y +HEX0[5] : AG28 : output : 3.3-V LVTTL : : 5A : Y +VCCIO5A : AG29 : power : : 3.3V : 5A : +HEX1[3] : AG30 : output : 3.3-V LVTTL : : 5A : Y +GND : AH1 : gnd : : : : +RESERVED_INPUT_WITH_WEAK_PULLUP : AH2 : : : : 3A : +RESERVED_INPUT_WITH_WEAK_PULLUP : AH3 : : : : 3A : +RESERVED_INPUT_WITH_WEAK_PULLUP : AH4 : : : : 3A : +RESERVED_INPUT_WITH_WEAK_PULLUP : AH5 : : : : 3A : +GND : AH6 : gnd : : : : +DRAM_DQ[13] : AH7 : bidir : 3.3-V LVTTL : : 3B : Y +DRAM_DQ[12] : AH8 : bidir : 3.3-V LVTTL : : 3B : Y +DRAM_DQ[11] : AH9 : bidir : 3.3-V LVTTL : : 3B : Y +DRAM_DQ[8] : AH10 : bidir : 3.3-V LVTTL : : 3B : Y +GND : AH11 : gnd : : : : +DRAM_CLK : AH12 : output : 3.3-V LVTTL : : 3B : Y +DRAM_ADDR[11] : AH13 : output : 3.3-V LVTTL : : 3B : Y +DRAM_ADDR[1] : AH14 : output : 3.3-V LVTTL : : 3B : Y +DRAM_ADDR[8] : AH15 : output : 3.3-V LVTTL : : 3B : Y +VCCIO4A : AH16 : power : : 3.3V : 4A : +GPIO[11] : AH17 : bidir : 3.3-V LVTTL : : 4A : Y +GPIO[10] : AH18 : bidir : 3.3-V LVTTL : : 4A : Y +GPIO[20] : AH19 : bidir : 3.3-V LVTTL : : 4A : Y +GPIO[22] : AH20 : bidir : 3.3-V LVTTL : : 4A : Y +GND : AH21 : gnd : : : : +RESERVED_INPUT_WITH_WEAK_PULLUP : AH22 : : : : 4A : +RESERVED_INPUT_WITH_WEAK_PULLUP : AH23 : : : : 4A : +RESERVED_INPUT_WITH_WEAK_PULLUP : AH24 : : : : 4A : +RESERVED_INPUT_WITH_WEAK_PULLUP : AH25 : : : : 4A : +VCCIO4A : AH26 : power : : 3.3V : 4A : +RESERVED_INPUT_WITH_WEAK_PULLUP : AH27 : : : : 4A : +HEX0[6] : AH28 : output : 3.3-V LVTTL : : 5A : Y +HEX1[1] : AH29 : output : 3.3-V LVTTL : : 5A : Y +HEX1[2] : AH30 : output : 3.3-V LVTTL : : 5A : Y +RESERVED_INPUT_WITH_WEAK_PULLUP : AJ1 : : : : 3A : +RESERVED_INPUT_WITH_WEAK_PULLUP : AJ2 : : : : 3A : +GND : AJ3 : gnd : : : : +ADC_CONVST : AJ4 : output : 3.3-V LVTTL : : 3B : Y +DRAM_DQ[15] : AJ5 : bidir : 3.3-V LVTTL : : 3B : Y +DRAM_DQ[14] : AJ6 : bidir : 3.3-V LVTTL : : 3B : Y +DRAM_DQ[1] : AJ7 : bidir : 3.3-V LVTTL : : 3B : Y +VCCIO3B : AJ8 : power : : 3.3V : 3B : +DRAM_DQ[10] : AJ9 : bidir : 3.3-V LVTTL : : 3B : Y +DRAM_DQ[9] : AJ10 : bidir : 3.3-V LVTTL : : 3B : Y +DRAM_DQ[7] : AJ11 : bidir : 3.3-V LVTTL : : 3B : Y +DRAM_BA[1] : AJ12 : output : 3.3-V LVTTL : : 3B : Y +VCCIO3B : AJ13 : power : : 3.3V : 3B : +DRAM_ADDR[12] : AJ14 : output : 3.3-V LVTTL : : 3B : Y +VREFB3BN0 : AJ15 : power : : : 3B : +GPIO[9] : AJ16 : bidir : 3.3-V LVTTL : : 4A : Y +GPIO[8] : AJ17 : bidir : 3.3-V LVTTL : : 4A : Y +GND : AJ18 : gnd : : : : +GPIO[7] : AJ19 : bidir : 3.3-V LVTTL : : 4A : Y +GPIO[21] : AJ20 : bidir : 3.3-V LVTTL : : 4A : Y +GPIO[35] : AJ21 : bidir : 3.3-V LVTTL : : 4A : Y +RESERVED_INPUT_WITH_WEAK_PULLUP : AJ22 : : : : 4A : +VCCIO4A : AJ23 : power : : 3.3V : 4A : +RESERVED_INPUT_WITH_WEAK_PULLUP : AJ24 : : : : 4A : +RESERVED_INPUT_WITH_WEAK_PULLUP : AJ25 : : : : 4A : +RESERVED_INPUT_WITH_WEAK_PULLUP : AJ26 : : : : 4A : +RESERVED_INPUT_WITH_WEAK_PULLUP : AJ27 : : : : 4A : +GND : AJ28 : gnd : : : : +HEX1[0] : AJ29 : output : 3.3-V LVTTL : : 5A : Y +GND : AJ30 : gnd : : : : +ADC_SCLK : AK2 : output : 3.3-V LVTTL : : 3B : Y +ADC_DOUT : AK3 : input : 3.3-V LVTTL : : 3B : Y +ADC_DIN : AK4 : output : 3.3-V LVTTL : : 3B : Y +GND : AK5 : gnd : : : : +DRAM_DQ[0] : AK6 : bidir : 3.3-V LVTTL : : 3B : Y +DRAM_DQ[2] : AK7 : bidir : 3.3-V LVTTL : : 3B : Y +DRAM_DQ[3] : AK8 : bidir : 3.3-V LVTTL : : 3B : Y +DRAM_DQ[4] : AK9 : bidir : 3.3-V LVTTL : : 3B : Y +VCCIO3B : AK10 : power : : 3.3V : 3B : +DRAM_DQ[6] : AK11 : bidir : 3.3-V LVTTL : : 3B : Y +DRAM_UDQM : AK12 : output : 3.3-V LVTTL : : 3B : Y +DRAM_CKE : AK13 : output : 3.3-V LVTTL : : 3B : Y +DRAM_ADDR[0] : AK14 : output : 3.3-V LVTTL : : 3B : Y +GND : AK15 : gnd : : : : +GPIO[4] : AK16 : bidir : 3.3-V LVTTL : : 4A : Y +VREFB4AN0 : AK17 : power : : : 4A : +GPIO[5] : AK18 : bidir : 3.3-V LVTTL : : 4A : Y +GPIO[6] : AK19 : bidir : 3.3-V LVTTL : : 4A : Y +VCCIO4A : AK20 : power : : 3.3V : 4A : +GPIO[23] : AK21 : bidir : 3.3-V LVTTL : : 4A : Y +RESERVED_INPUT_WITH_WEAK_PULLUP : AK22 : : : : 4A : +RESERVED_INPUT_WITH_WEAK_PULLUP : AK23 : : : : 4A : +RESERVED_INPUT_WITH_WEAK_PULLUP : AK24 : : : : 4A : +GND : AK25 : gnd : : : : +RESERVED_INPUT_WITH_WEAK_PULLUP : AK26 : : : : 4A : +RESERVED_INPUT_WITH_WEAK_PULLUP : AK27 : : : : 4A : +RESERVED_INPUT_WITH_WEAK_PULLUP : AK28 : : : : 4A : +RESERVED_INPUT_WITH_WEAK_PULLUP : AK29 : : : : 4A : +TD_DATA[1] : B1 : input : 3.3-V LVTTL : : 8A : Y +TD_DATA[3] : B2 : input : 3.3-V LVTTL : : 8A : Y +TD_DATA[7] : B3 : input : 3.3-V LVTTL : : 8A : Y +VCCIO8A : B4 : power : : 3.3V : 8A : +RESERVED_INPUT_WITH_WEAK_PULLUP : B5 : : : : 8A : +RESERVED_INPUT_WITH_WEAK_PULLUP : B6 : : : : 8A : +RESERVED_INPUT_WITH_WEAK_PULLUP : B7 : : : : 8A : +RESERVED_INPUT_WITH_WEAK_PULLUP : B8 : : : : 8A : +GND : B9 : gnd : : : : +VREFB8AN0 : B10 : power : : : 8A : +VGA_HS : B11 : output : 3.3-V LVTTL : : 8A : Y +VGA_R[3] : B12 : output : 3.3-V LVTTL : : 8A : Y +VGA_B[0] : B13 : output : 3.3-V LVTTL : : 8A : Y +GND : B14 : gnd : : : : +RESERVED_INPUT_WITH_WEAK_PULLUP : B15 : : : : 7D : +RESERVED_INPUT_WITH_WEAK_PULLUP : B16 : : : : 7C : +RESERVED_INPUT_WITH_WEAK_PULLUP : B17 : : : : 7C : +RESERVED_INPUT_WITH_WEAK_PULLUP : B18 : : : : 7B : +GND : B19 : gnd : : : : +RESERVED_INPUT_WITH_WEAK_PULLUP : B20 : : : : 7B : +RESERVED_INPUT_WITH_WEAK_PULLUP : B21 : : : : 7B : +RESERVED_INPUT_WITH_WEAK_PULLUP : B22 : : : : 7A : +RESERVED_INPUT_WITH_WEAK_PULLUP : B23 : : : : 7A : +GND : B24 : gnd : : : : +RESERVED_INPUT_WITH_WEAK_PULLUP : B25 : : : : 7A : +RESERVED_INPUT_WITH_WEAK_PULLUP : B26 : : : : 7A : +HPS_TDI : B27 : : : : 7A : +HPS_TDO : B28 : : : : 7A : +GND : B29 : gnd : : : : +RESERVED_INPUT_WITH_WEAK_PULLUP : B30 : : : : 6A : +GND : C1 : gnd : : : : +TD_DATA[6] : C2 : input : 3.3-V LVTTL : : 8A : Y +RESERVED_INPUT_WITH_WEAK_PULLUP : C3 : : : : 8A : +RESERVED_INPUT_WITH_WEAK_PULLUP : C4 : : : : 8A : +RESERVED_INPUT_WITH_WEAK_PULLUP : C5 : : : : 8A : +GND : C6 : gnd : : : : +RESERVED_INPUT_WITH_WEAK_PULLUP : C7 : : : : 8A : +RESERVED_INPUT_WITH_WEAK_PULLUP : C8 : : : : 8A : +RESERVED_INPUT_WITH_WEAK_PULLUP : C9 : : : : 8A : +VGA_SYNC_N : C10 : output : 3.3-V LVTTL : : 8A : Y +VCCIO8A : C11 : power : : 3.3V : 8A : +VGA_R[4] : C12 : output : 3.3-V LVTTL : : 8A : Y +VGA_R[1] : C13 : output : 3.3-V LVTTL : : 8A : Y +RESERVED_INPUT_WITH_WEAK_PULLUP : C14 : : : : 7D : +RESERVED_INPUT_WITH_WEAK_PULLUP : C15 : : : : 7D : +GND : C16 : gnd : : : : +RESERVED_INPUT_WITH_WEAK_PULLUP : C17 : : : : 7C : +RESERVED_INPUT_WITH_WEAK_PULLUP : C18 : : : : 7C : +RESERVED_INPUT_WITH_WEAK_PULLUP : C19 : : : : 7B : +RESERVED_INPUT_WITH_WEAK_PULLUP : C20 : : : : 7B : +GND : C21 : gnd : : : : +RESERVED_INPUT_WITH_WEAK_PULLUP : C22 : : : : 7A : +RESERVED_INPUT_WITH_WEAK_PULLUP : C23 : : : : 7A : +RESERVED_INPUT_WITH_WEAK_PULLUP : C24 : : : : 7A : +RESERVED_INPUT_WITH_WEAK_PULLUP : C25 : : : : 7A : +GND : C26 : gnd : : : : +HPS_nRST : C27 : : : : 7A : +RESERVED_INPUT_WITH_WEAK_PULLUP : C28 : : : : 6A : +RESERVED_INPUT_WITH_WEAK_PULLUP : C29 : : : : 6A : +RESERVED_INPUT_WITH_WEAK_PULLUP : C30 : : : : 6A : +TD_DATA[4] : D1 : input : 3.3-V LVTTL : : 8A : Y +TD_DATA[0] : D2 : input : 3.3-V LVTTL : : 8A : Y +GND : D3 : gnd : : : : +RESERVED_INPUT_WITH_WEAK_PULLUP : D4 : : : : 8A : +RESERVED_INPUT_WITH_WEAK_PULLUP : D5 : : : : 8A : +RESERVED_INPUT_WITH_WEAK_PULLUP : D6 : : : : 8A : +RESERVED_INPUT_WITH_WEAK_PULLUP : D7 : : : : 8A : +VCCIO8A : D8 : power : : 3.3V : 8A : +RESERVED_INPUT_WITH_WEAK_PULLUP : D9 : : : : 8A : +RESERVED_INPUT_WITH_WEAK_PULLUP : D10 : : : : 8A : +VGA_VS : D11 : output : 3.3-V LVTTL : : 8A : Y +VGA_R[5] : D12 : output : 3.3-V LVTTL : : 8A : Y +GND : D13 : gnd : : : : +RESERVED_INPUT_WITH_WEAK_PULLUP : D14 : : : : 7D : +RESERVED_INPUT_WITH_WEAK_PULLUP : D15 : : : : 7D : +RESERVED_INPUT_WITH_WEAK_PULLUP : D16 : : : : 7D : +RESERVED_INPUT_WITH_WEAK_PULLUP : D17 : : : : 7C : +VCCIO7C_HPS : D18 : power : : 2.5V : 7C : +RESERVED_INPUT_WITH_WEAK_PULLUP : D19 : : : : 7B : +RESERVED_INPUT_WITH_WEAK_PULLUP : D20 : : : : 7B : +RESERVED_INPUT_WITH_WEAK_PULLUP : D21 : : : : 7B : +RESERVED_INPUT_WITH_WEAK_PULLUP : D22 : : : : 7A : +GND : D23 : gnd : : : : +RESERVED_INPUT_WITH_WEAK_PULLUP : D24 : : : : 7A : +HPS_CLK1 : D25 : : : : 7A : +GND : D26 : : : : 7A : +HPS_RZQ_0 : D27 : : : : 6A : +VCCIO6A_HPS : D28 : power : : 2.5V : 6A : +RESERVED_INPUT_WITH_WEAK_PULLUP : D29 : : : : 6A : +RESERVED_INPUT_WITH_WEAK_PULLUP : D30 : : : : 6A : +TD_DATA[5] : E1 : input : 3.3-V LVTTL : : 8A : Y +TD_DATA[2] : E2 : input : 3.3-V LVTTL : : 8A : Y +RESERVED_INPUT_WITH_WEAK_PULLUP : E3 : : : : 8A : +RESERVED_INPUT_WITH_WEAK_PULLUP : E4 : : : : 8A : +VCCIO8A : E5 : power : : 3.3V : 8A : +RESERVED_INPUT_WITH_WEAK_PULLUP : E6 : : : : 8A : +RESERVED_INPUT_WITH_WEAK_PULLUP : E7 : : : : 8A : +RESERVED_INPUT_WITH_WEAK_PULLUP : E8 : : : : 8A : +RESERVED_INPUT_WITH_WEAK_PULLUP : E9 : : : : 8A : +GND : E10 : gnd : : : : +VGA_G[7] : E11 : output : 3.3-V LVTTL : : 8A : Y +VGA_R[6] : E12 : output : 3.3-V LVTTL : : 8A : Y +VGA_R[2] : E13 : output : 3.3-V LVTTL : : 8A : Y +RESERVED_INPUT_WITH_WEAK_PULLUP : E14 : : : : 7D : +VCCIO7D_HPS : E15 : power : : 2.5V : 7D : +RESERVED_INPUT_WITH_WEAK_PULLUP : E16 : : : : 7D : +RESERVED_INPUT_WITH_WEAK_PULLUP : E17 : : : : 7C : +RESERVED_INPUT_WITH_WEAK_PULLUP : E18 : : : : 7C : +RESERVED_INPUT_WITH_WEAK_PULLUP : E19 : : : : 7B : +VCCIO7B_HPS : E20 : power : : 2.5V : 7B : +RESERVED_INPUT_WITH_WEAK_PULLUP : E21 : : : : 7B : +VREFB7A7B7C7DN0_HPS : E22 : power : : : : +RESERVED_INPUT_WITH_WEAK_PULLUP : E23 : : : : 7A : +RESERVED_INPUT_WITH_WEAK_PULLUP : E24 : : : : 7A : +GND : E25 : gnd : : : : +DNU : E26 : : : : : +RESERVED_INPUT_WITH_WEAK_PULLUP : E27 : : : : 6A : +RESERVED_INPUT_WITH_WEAK_PULLUP : E28 : : : : 6A : +RESERVED_INPUT_WITH_WEAK_PULLUP : E29 : : : : 6A : +GND : E30 : gnd : : : : +DNU : F1 : : : : : +GND : F2 : gnd : : : : +CONF_DONE : F3 : : : : 9A : +nSTATUS : F4 : : : : 9A : +GND : F5 : gnd : : : : +TD_RESET_N : F6 : output : 3.3-V LVTTL : : 8A : Y +GND : F7 : gnd : : : : +RESERVED_INPUT_WITH_WEAK_PULLUP : F8 : : : : 8A : +RESERVED_INPUT_WITH_WEAK_PULLUP : F9 : : : : 8A : +VGA_BLANK_N : F10 : output : 3.3-V LVTTL : : 8A : Y +VGA_G[6] : F11 : output : 3.3-V LVTTL : : 8A : Y +VCCIO8A : F12 : power : : 3.3V : 8A : +VGA_R[7] : F13 : output : 3.3-V LVTTL : : 8A : Y +VGA_B[3] : F14 : output : 3.3-V LVTTL : : 8A : Y +VGA_B[5] : F15 : output : 3.3-V LVTTL : : 8A : Y +RESERVED_INPUT_WITH_WEAK_PULLUP : F16 : : : : 7D : +GND : F17 : gnd : : : : +RESERVED_INPUT_WITH_WEAK_PULLUP : F18 : : : : 7C : +RESERVED_INPUT_WITH_WEAK_PULLUP : F19 : : : : 7B : +RESERVED_INPUT_WITH_WEAK_PULLUP : F20 : : : : 7B : +RESERVED_INPUT_WITH_WEAK_PULLUP : F21 : : : : 7B : +VCCIO7A_HPS : F22 : power : : 2.5V : 7A : +HPS_nPOR : F23 : : : : 7A : +HPS_PORSEL : F24 : : : : 7A : +HPS_CLK2 : F25 : : : : 7A : +RESERVED_INPUT_WITH_WEAK_PULLUP : F26 : : : : 6A : +GND : F27 : gnd : : : : +RESERVED_INPUT_WITH_WEAK_PULLUP : F28 : : : : 6A : +RESERVED_INPUT_WITH_WEAK_PULLUP : F29 : : : : 6A : +RESERVED_INPUT_WITH_WEAK_PULLUP : F30 : : : : 6A : +GND : G1 : : : : : +DNU : G2 : : : : : +GND : G3 : gnd : : : : +GND : G4 : gnd : : : : +nCE : G5 : : : : 9A : +MSEL2 : G6 : : : : 9A : +AUD_XCK : G7 : output : 3.3-V LVTTL : : 8A : Y +RESERVED_INPUT_WITH_WEAK_PULLUP : G8 : : : : 8A : +VCCIO8A : G9 : power : : 3.3V : 8A : +VGA_G[3] : G10 : output : 3.3-V LVTTL : : 8A : Y +VGA_G[4] : G11 : output : 3.3-V LVTTL : : 8A : Y +VGA_G[5] : G12 : output : 3.3-V LVTTL : : 8A : Y +VGA_B[1] : G13 : output : 3.3-V LVTTL : : 8A : Y +VCCIO8A : G14 : power : : 3.3V : 8A : +VGA_B[6] : G15 : output : 3.3-V LVTTL : : 8A : Y +RESERVED_INPUT_WITH_WEAK_PULLUP : G16 : : : : 7D : +RESERVED_INPUT_WITH_WEAK_PULLUP : G17 : : : : 7C : +RESERVED_INPUT_WITH_WEAK_PULLUP : G18 : : : : 7C : +VCCIO7B_HPS : G19 : power : : 2.5V : 7B : +RESERVED_INPUT_WITH_WEAK_PULLUP : G20 : : : : 7B : +RESERVED_INPUT_WITH_WEAK_PULLUP : G21 : : : : 7A : +RESERVED_INPUT_WITH_WEAK_PULLUP : G22 : : : : 7A : +VCCRSTCLK_HPS : G23 : : : : 7A : +GND : G24 : gnd : : : : +RESERVED_INPUT_WITH_WEAK_PULLUP : G25 : : : : 6A : +RESERVED_INPUT_WITH_WEAK_PULLUP : G26 : : : : 6A : +GND+ : G27 : : : : 6A : +RESERVED_INPUT_WITH_WEAK_PULLUP : G28 : : : : 6A : +VCCIO6A_HPS : G29 : power : : 2.5V : 6A : +RESERVED_INPUT_WITH_WEAK_PULLUP : G30 : : : : 6A : +GND : H1 : gnd : : : : +GND : H2 : gnd : : : : +DNU : H3 : : : : : +DNU : H4 : : : : : +GND : H5 : gnd : : : : +VCCIO8A : H6 : power : : 3.3V : 8A : +AUD_BCLK : H7 : bidir : 3.3-V LVTTL : : 8A : Y +AUD_DACLRCK : H8 : bidir : 3.3-V LVTTL : : 8A : Y +VCCBAT : H9 : power : : 1.2V : : +VCC_AUX : H10 : power : : 2.5V : : +GND : H11 : gnd : : : : +VGA_G[2] : H12 : output : 3.3-V LVTTL : : 8A : Y +VGA_B[2] : H13 : output : 3.3-V LVTTL : : 8A : Y +VGA_B[4] : H14 : output : 3.3-V LVTTL : : 8A : Y +TD_CLK27 : H15 : input : 3.3-V LVTTL : : 8A : Y +VCCIO7D_HPS : H16 : power : : 2.5V : 7D : +RESERVED_INPUT_WITH_WEAK_PULLUP : H17 : : : : 7C : +RESERVED_INPUT_WITH_WEAK_PULLUP : H18 : : : : 7B : +RESERVED_INPUT_WITH_WEAK_PULLUP : H19 : : : : 7B : +RESERVED_INPUT_WITH_WEAK_PULLUP : H20 : : : : 7A : +VCCIO7A_HPS : H21 : power : : 2.5V : 7A : +HPS_TCK : H22 : : : : 7A : +RESERVED_INPUT_WITH_WEAK_PULLUP : H23 : : : : 7A : +RESERVED_INPUT_WITH_WEAK_PULLUP : H24 : : : : 6A : +RESERVED_INPUT_WITH_WEAK_PULLUP : H25 : : : : 6A : +VCCIO6A_HPS : H26 : power : : 2.5V : 6A : +RESERVED_INPUT_WITH_WEAK_PULLUP : H27 : : : : 6A : +RESERVED_INPUT_WITH_WEAK_PULLUP : H28 : : : : 6A : +RESERVED_INPUT_WITH_WEAK_PULLUP : H29 : : : : 6A : +RESERVED_INPUT_WITH_WEAK_PULLUP : H30 : : : : 6A : +GND : J1 : gnd : : : : +GND : J2 : gnd : : : : +GND : J3 : gnd : : : : +GND : J4 : gnd : : : : +nCONFIG : J5 : : : : 9A : +GND : J6 : : : : 9A : +AUD_DACDAT : J7 : output : 3.3-V LVTTL : : 8A : Y +GND : J8 : gnd : : : : +VGA_G[0] : J9 : output : 3.3-V LVTTL : : 8A : Y +VGA_G[1] : J10 : output : 3.3-V LVTTL : : 8A : Y +VCCPGM : J11 : power : : 1.8V/2.5V/3.0V/3.3V : : +FPGA_I2C_SCLK : J12 : output : 3.3-V LVTTL : : 8A : Y +VCCIO8A : J13 : power : : 3.3V : 8A : +VGA_B[7] : J14 : output : 3.3-V LVTTL : : 8A : Y +DNU : J15 : : : : : +VCC_AUX : J16 : power : : 2.5V : : +VCCPD7C_HPS : J17 : power : : 2.5V : 7C : +GND : J18 : gnd : : : : +RESERVED_INPUT_WITH_WEAK_PULLUP : J19 : : : : 7B : +VCCRSTCLK_HPS : J20 : power : : 1.8V/2.5V/3.0V/3.3V : : +VCC_AUX_SHARED : J21 : power : : 2.5V : : +GND : J22 : : : : 7A : +RESERVED_INPUT_WITH_WEAK_PULLUP : J23 : : : : 6A : +RESERVED_INPUT_WITH_WEAK_PULLUP : J24 : : : : 6A : +RESERVED_INPUT_WITH_WEAK_PULLUP : J25 : : : : 6A : +RESERVED_INPUT_WITH_WEAK_PULLUP : J26 : : : : 6A : +RESERVED_INPUT_WITH_WEAK_PULLUP : J27 : : : : 6A : +GND : J28 : gnd : : : : +RESERVED_INPUT_WITH_WEAK_PULLUP : J29 : : : : 6A : +RESERVED_INPUT_WITH_WEAK_PULLUP : J30 : : : : 6A : +GND : K1 : gnd : : : : +GND : K2 : gnd : : : : +DNU : K3 : : : : : +DNU : K4 : : : : : +GND : K5 : gnd : : : : +MSEL1 : K6 : : : : 9A : +AUD_ADCDAT : K7 : input : 3.3-V LVTTL : : 8A : Y +AUD_ADCLRCK : K8 : bidir : 3.3-V LVTTL : : 8A : Y +VCCA_FPLL : K9 : power : : 2.5V : : +GND : K10 : gnd : : : : +VCCPD8A : K11 : power : : 3.3V : 8A : +FPGA_I2C_SDAT : K12 : bidir : 3.3-V LVTTL : : 8A : Y +VCCPD8A : K13 : power : : 3.3V : 8A : +CLOCK4_50 : K14 : input : 3.3-V LVTTL : : 8A : Y +GND : K15 : gnd : : : : +VCCPD7D_HPS : K16 : power : : 2.5V : 7D : +RESERVED_INPUT_WITH_WEAK_PULLUP : K17 : : : : 7B : +VCCPD7B_HPS : K18 : power : : 2.5V : 7B : +VCCPD7A_HPS : K19 : power : : 2.5V : 7A : +GND : K20 : gnd : : : : +RESERVED_INPUT_WITH_WEAK_PULLUP : K21 : : : : 6A : +RESERVED_INPUT_WITH_WEAK_PULLUP : K22 : : : : 6A : +RESERVED_INPUT_WITH_WEAK_PULLUP : K23 : : : : 6A : +VCCIO6A_HPS : K24 : power : : 2.5V : 6A : +GND : K25 : gnd : : : : +RESERVED_INPUT_WITH_WEAK_PULLUP : K26 : : : : 6A : +RESERVED_INPUT_WITH_WEAK_PULLUP : K27 : : : : 6A : +RESERVED_INPUT_WITH_WEAK_PULLUP : K28 : : : : 6A : +RESERVED_INPUT_WITH_WEAK_PULLUP : K29 : : : : 6A : +VCCIO6A_HPS : K30 : power : : 2.5V : 6A : +GND : L1 : gnd : : : : +GND : L2 : gnd : : : : +GND : L3 : gnd : : : : +GND : L4 : gnd : : : : +VCC : L5 : power : : 1.1V : : +GND : L6 : gnd : : : : +MSEL3 : L7 : : : : 9A : +MSEL0 : L8 : : : : 9A : +MSEL4 : L9 : : : : 9A : +VCCPD8A : L10 : power : : 3.3V : 8A : +GND : L11 : gnd : : : : +VCCPD8A : L12 : power : : 3.3V : 8A : +GND : L13 : gnd : : : : +VCCPD8A : L14 : power : : 3.3V : 8A : +GND : L15 : gnd : : : : +VCC_HPS : L16 : power : : 1.1V : : +GND : L17 : gnd : : : : +VCC_HPS : L18 : power : : 1.1V : : +GND : L19 : gnd : : : : +VCC_HPS : L20 : power : : 1.1V : : +VCCPLL_HPS : L21 : power : : 2.5V : : +GND : L22 : gnd : : : : +RESERVED_INPUT_WITH_WEAK_PULLUP : L23 : : : : 6A : +RESERVED_INPUT_WITH_WEAK_PULLUP : L24 : : : : 6A : +RESERVED_INPUT_WITH_WEAK_PULLUP : L25 : : : : 6A : +RESERVED_INPUT_WITH_WEAK_PULLUP : L26 : : : : 6A : +VCCIO6A_HPS : L27 : power : : 2.5V : 6A : +RESERVED_INPUT_WITH_WEAK_PULLUP : L28 : : : : 6A : +RESERVED_INPUT_WITH_WEAK_PULLUP : L29 : : : : 6A : +RESERVED_INPUT_WITH_WEAK_PULLUP : L30 : : : : 6A : +GND : M1 : gnd : : : : +GND : M2 : gnd : : : : +DNU : M3 : : : : : +DNU : M4 : : : : : +GND : M5 : gnd : : : : +VCC : M6 : power : : 1.1V : : +GND : M7 : gnd : : : : +GND : M8 : gnd : : : : +VCC : M9 : power : : 1.1V : : +GND : M10 : gnd : : : : +VCC : M11 : power : : 1.1V : : +GND : M12 : gnd : : : : +VCC : M13 : power : : 1.1V : : +GND : M14 : gnd : : : : +VCC_HPS : M15 : power : : 1.1V : : +GND : M16 : gnd : : : : +RESERVED_INPUT_WITH_WEAK_PULLUP : M17 : : : : 7D : +GND : M18 : gnd : : : : +RESERVED_INPUT_WITH_WEAK_PULLUP : M19 : : : : 6A : +GND : M20 : gnd : : : : +VCCPD6A6B_HPS : M21 : power : : 2.5V : : +RESERVED_INPUT_WITH_WEAK_PULLUP : M22 : : : : 6A : +RESERVED_INPUT_WITH_WEAK_PULLUP : M23 : : : : 6A : +VCCIO6A_HPS : M24 : power : : 2.5V : 6A : +RESERVED_INPUT_WITH_WEAK_PULLUP : M25 : : : : 6A : +RESERVED_INPUT_WITH_WEAK_PULLUP : M26 : : : : 6A : +RESERVED_INPUT_WITH_WEAK_PULLUP : M27 : : : : 6A : +RESERVED_INPUT_WITH_WEAK_PULLUP : M28 : : : : 6A : +GND : M29 : gnd : : : : +RESERVED_INPUT_WITH_WEAK_PULLUP : M30 : : : : 6A : +GND : N1 : gnd : : : : +GND : N2 : gnd : : : : +GND : N3 : gnd : : : : +GND : N4 : gnd : : : : +VCC : N5 : power : : 1.1V : : +GND : N6 : gnd : : : : +VCCA_FPLL : N7 : power : : 2.5V : : +GND : N8 : gnd : : : : +GND : N9 : gnd : : : : +VCC : N10 : power : : 1.1V : : +GND : N11 : gnd : : : : +VCC : N12 : power : : 1.1V : : +GND : N13 : gnd : : : : +VCC : N14 : power : : 1.1V : : +GND : N15 : gnd : : : : +RESERVED_INPUT_WITH_WEAK_PULLUP : N16 : : : : 7D : +GND : N17 : gnd : : : : +RESERVED_INPUT_WITH_WEAK_PULLUP : N18 : : : : 6A : +GND : N19 : gnd : : : : +VCC_HPS : N20 : power : : 1.1V : : +VCCIO6A_HPS : N21 : power : : 2.5V : 6A : +VCCPD6A6B_HPS : N22 : power : : 2.5V : : +RESERVED_INPUT_WITH_WEAK_PULLUP : N23 : : : : 6A : +RESERVED_INPUT_WITH_WEAK_PULLUP : N24 : : : : 6A : +RESERVED_INPUT_WITH_WEAK_PULLUP : N25 : : : : 6A : +GND : N26 : gnd : : : : +RESERVED_INPUT_WITH_WEAK_PULLUP : N27 : : : : 6B : +RESERVED_INPUT_WITH_WEAK_PULLUP : N28 : : : : 6B : +RESERVED_INPUT_WITH_WEAK_PULLUP : N29 : : : : 6B : +RESERVED_INPUT_WITH_WEAK_PULLUP : N30 : : : : 6B : +GND : P1 : gnd : : : : +GND : P2 : gnd : : : : +DNU : P3 : : : : : +DNU : P4 : : : : : +GND : P5 : gnd : : : : +VCCA_FPLL : P6 : power : : 2.5V : : +GND : P7 : gnd : : : : +GND : P8 : gnd : : : : +GND : P9 : gnd : : : : +GND : P10 : gnd : : : : +VCC : P11 : power : : 1.1V : : +GND : P12 : gnd : : : : +VCC : P13 : power : : 1.1V : : +GND : P14 : gnd : : : : +VCC_HPS : P15 : power : : 1.1V : : +GND : P16 : gnd : : : : +VCC_HPS : P17 : power : : 1.1V : : +GND : P18 : gnd : : : : +VCC_HPS : P19 : power : : 1.1V : : +GND : P20 : gnd : : : : +VCCPD6A6B_HPS : P21 : power : : 2.5V : : +RESERVED_INPUT_WITH_WEAK_PULLUP : P22 : : : : 6B : +VCCIO6B_HPS : P23 : power : : 2.5V : 6B : +RESERVED_INPUT_WITH_WEAK_PULLUP : P24 : : : : 6B : +RESERVED_INPUT_WITH_WEAK_PULLUP : P25 : : : : 6B : +RESERVED_INPUT_WITH_WEAK_PULLUP : P26 : : : : 6B : +RESERVED_INPUT_WITH_WEAK_PULLUP : P27 : : : : 6B : +VCCIO6B_HPS : P28 : power : : 2.5V : 6B : +RESERVED_INPUT_WITH_WEAK_PULLUP : P29 : : : : 6B : +RESERVED_INPUT_WITH_WEAK_PULLUP : P30 : : : : 6B : +GND : R1 : gnd : : : : +GND : R2 : gnd : : : : +GND : R3 : gnd : : : : +GND : R4 : gnd : : : : +VCC : R5 : power : : 1.1V : : +GND : R6 : gnd : : : : +VCCA_FPLL : R7 : power : : 2.5V : : +GND : R8 : gnd : : : : +GND : R9 : gnd : : : : +VCC : R10 : power : : 1.1V : : +GND : R11 : gnd : : : : +VCC : R12 : power : : 1.1V : : +GND : R13 : gnd : : : : +VCC : R14 : power : : 1.1V : : +GND : R15 : gnd : : : : +VCC_HPS : R16 : power : : 1.1V : : +GND : R17 : gnd : : : : +RESERVED_INPUT_WITH_WEAK_PULLUP : R18 : : : : 6B : +RESERVED_INPUT_WITH_WEAK_PULLUP : R19 : : : : 6B : +VCCPD6A6B_HPS : R20 : power : : 2.5V : : +RESERVED_INPUT_WITH_WEAK_PULLUP : R21 : : : : 6B : +RESERVED_INPUT_WITH_WEAK_PULLUP : R22 : : : : 6B : +VCCPD6A6B_HPS : R23 : power : : 2.5V : : +RESERVED_INPUT_WITH_WEAK_PULLUP : R24 : : : : 6B : +VCCIO6B_HPS : R25 : power : : 2.5V : 6B : +RESERVED_INPUT_WITH_WEAK_PULLUP : R26 : : : : 6B : +RESERVED_INPUT_WITH_WEAK_PULLUP : R27 : : : : 6B : +RESERVED_INPUT_WITH_WEAK_PULLUP : R28 : : : : 6B : +RESERVED_INPUT_WITH_WEAK_PULLUP : R29 : : : : 6B : +GND : R30 : gnd : : : : +GND : T1 : gnd : : : : +GND : T2 : gnd : : : : +DNU : T3 : : : : : +DNU : T4 : : : : : +GND : T5 : gnd : : : : +VCC : T6 : power : : 1.1V : : +GND : T7 : gnd : : : : +GND : T8 : gnd : : : : +GND : T9 : gnd : : : : +GND : T10 : gnd : : : : +VCC : T11 : power : : 1.1V : : +GND : T12 : gnd : : : : +VCC : T13 : power : : 1.1V : : +GND : T14 : gnd : : : : +GND : T15 : gnd : : : : +GND : T16 : gnd : : : : +VCC_HPS : T17 : power : : 1.1V : : +GND : T18 : gnd : : : : +VCC_HPS : T19 : power : : 1.1V : : +GND : T20 : gnd : : : : +RESERVED_INPUT_WITH_WEAK_PULLUP : T21 : : : : 6B : +VCCIO6B_HPS : T22 : power : : 2.5V : 6B : +RESERVED_INPUT_WITH_WEAK_PULLUP : T23 : : : : 6B : +RESERVED_INPUT_WITH_WEAK_PULLUP : T24 : : : : 6B : +RESERVED_INPUT_WITH_WEAK_PULLUP : T25 : : : : 6B : +RESERVED_INPUT_WITH_WEAK_PULLUP : T26 : : : : 6B : +GND : T27 : gnd : : : : +RESERVED_INPUT_WITH_WEAK_PULLUP : T28 : : : : 6B : +RESERVED_INPUT_WITH_WEAK_PULLUP : T29 : : : : 6B : +RESERVED_INPUT_WITH_WEAK_PULLUP : T30 : : : : 6B : +GND : U1 : gnd : : : : +GND : U2 : gnd : : : : +GND : U3 : gnd : : : : +GND : U4 : gnd : : : : +VCC : U5 : power : : 1.1V : : +GND : U6 : gnd : : : : +DCLK : U7 : : : : 3A : +TDI : U8 : input : : : 3A : +GND : U9 : gnd : : : : +VCC : U10 : power : : 1.1V : : +GND : U11 : gnd : : : : +VCC : U12 : power : : 1.1V : : +GND : U13 : gnd : : : : +VCC : U14 : power : : 1.1V : : +GND : U15 : gnd : : : : +VCC_HPS : U16 : power : : 1.1V : : +GND : U17 : gnd : : : : +VCC_HPS : U18 : power : : 1.1V : : +VCCIO6B_HPS : U19 : power : : 2.5V : 6B : +RESERVED_INPUT_WITH_WEAK_PULLUP : U20 : : : : 6B : +VCC : U21 : power : : 1.1V : : +GND : U22 : gnd : : : : +VCCPD5B : U23 : power : : 3.3V : 5B : +GND : U24 : gnd : : : : +RESERVED_INPUT_WITH_WEAK_PULLUP : U25 : : : : 6B : +RESERVED_INPUT_WITH_WEAK_PULLUP : U26 : : : : 6B : +RESERVED_INPUT_WITH_WEAK_PULLUP : U27 : : : : 6B : +RESERVED_INPUT_WITH_WEAK_PULLUP : U28 : : : : 6B : +GND : U29 : gnd : : : : +GND+ : U30 : : : : 6B : +GND : V1 : gnd : : : : +GND : V2 : gnd : : : : +DNU : V3 : : : : : +DNU : V4 : : : : : +GND : V5 : gnd : : : : +VCCA_FPLL : V6 : power : : 2.5V : : +GND : V7 : gnd : : : : +VCCA_FPLL : V8 : power : : 2.5V : : +TMS : V9 : input : : : 3A : +GND : V10 : gnd : : : : +VCC : V11 : power : : 1.1V : : +GND : V12 : gnd : : : : +VCC : V13 : power : : 1.1V : : +GND : V14 : gnd : : : : +VCC : V15 : power : : 1.1V : : +LEDR[0] : V16 : output : 3.3-V LVTTL : : 4A : Y +LEDR[2] : V17 : output : 3.3-V LVTTL : : 4A : Y +LEDR[3] : V18 : output : 3.3-V LVTTL : : 4A : Y +GND : V19 : gnd : : : : +RESERVED_INPUT_WITH_WEAK_PULLUP : V20 : : : : 6B : +GND : V21 : gnd : : : : +VCCPD5A : V22 : power : : 3.3V : 5A : +HEX4[5] : V23 : output : 3.3-V LVTTL : : 5A : Y +VCCPD5A : V24 : power : : 3.3V : 5A : +HEX5[0] : V25 : output : 3.3-V LVTTL : : 5B : Y +VCCIO6B_HPS : V26 : power : : 2.5V : 6B : +RESERVED_INPUT_WITH_WEAK_PULLUP : V27 : : : : 6B : +RESERVED_INPUT_WITH_WEAK_PULLUP : V28 : : : : 6B : +RESERVED_INPUT_WITH_WEAK_PULLUP : V29 : : : : 6B : +RESERVED_INPUT_WITH_WEAK_PULLUP : V30 : : : : 6B : +GND : W1 : gnd : : : : +GND : W2 : gnd : : : : +GND : W3 : gnd : : : : +GND : W4 : gnd : : : : +VCC : W5 : power : : 1.1V : : +GND : W6 : gnd : : : : +GND : W7 : gnd : : : : +GND : W8 : gnd : : : : +GND : W9 : gnd : : : : +VCC : W10 : power : : 1.1V : : +GND : W11 : gnd : : : : +VCC : W12 : power : : 1.1V : : +GND : W13 : gnd : : : : +VCC : W14 : power : : 1.1V : : +KEY[2] : W15 : input : 3.3-V LVTTL : : 3B : Y +LEDR[1] : W16 : output : 3.3-V LVTTL : : 4A : Y +LEDR[4] : W17 : output : 3.3-V LVTTL : : 4A : Y +GND : W18 : gnd : : : : +LEDR[5] : W19 : output : 3.3-V LVTTL : : 4A : Y +LEDR[7] : W20 : output : 3.3-V LVTTL : : 5A : Y +LEDR[8] : W21 : output : 3.3-V LVTTL : : 5A : Y +HEX4[3] : W22 : output : 3.3-V LVTTL : : 5A : Y +VCCIO5A : W23 : power : : 3.3V : 5A : +HEX4[4] : W24 : output : 3.3-V LVTTL : : 5A : Y +HEX4[6] : W25 : output : 3.3-V LVTTL : : 5B : Y +RESERVED_INPUT_WITH_WEAK_PULLUP : W26 : : : : 6B : +RESERVED_INPUT_WITH_WEAK_PULLUP : W27 : : : : 6B : +GND : W28 : gnd : : : : +RESERVED_INPUT_WITH_WEAK_PULLUP : W29 : : : : 6B : +RESERVED_INPUT_WITH_WEAK_PULLUP : W30 : : : : 6B : +GND : Y1 : gnd : : : : +GND : Y2 : gnd : : : : +DNU : Y3 : : : : : +DNU : Y4 : : : : : +GND : Y5 : gnd : : : : +VCC : Y6 : power : : 1.1V : : +GND : Y7 : gnd : : : : +GND : Y8 : gnd : : : : +VCC : Y9 : power : : 1.1V : : +GND : Y10 : gnd : : : : +VCC : Y11 : power : : 1.1V : : +GND : Y12 : gnd : : : : +VCC : Y13 : power : : 1.1V : : +GND : Y14 : gnd : : : : +GND : Y15 : gnd : : : : +KEY[3] : Y16 : input : 3.3-V LVTTL : : 3B : Y +GPIO[1] : Y17 : bidir : 3.3-V LVTTL : : 4A : Y +GPIO[3] : Y18 : bidir : 3.3-V LVTTL : : 4A : Y +LEDR[6] : Y19 : output : 3.3-V LVTTL : : 4A : Y +GND : Y20 : gnd : : : : +LEDR[9] : Y21 : output : 3.3-V LVTTL : : 5A : Y +VCCA_FPLL : Y22 : power : : 2.5V : : +HEX4[1] : Y23 : output : 3.3-V LVTTL : : 5A : Y +HEX4[2] : Y24 : output : 3.3-V LVTTL : : 5A : Y +GND : Y25 : gnd : : : : +CLOCK3_50 : Y26 : input : 3.3-V LVTTL : : 5B : Y +HEX5[2] : Y27 : output : 3.3-V LVTTL : : 5B : Y +RESERVED_INPUT_WITH_WEAK_PULLUP : Y28 : : : : 6B : +RESERVED_INPUT_WITH_WEAK_PULLUP : Y29 : : : : 6B : +GND : Y30 : gnd : : : : diff --git a/examples/hdl4se_riscv/de1/de1_riscv_v5.qpf b/examples/hdl4se_riscv/de1/de1_riscv_v5.qpf new file mode 100644 index 0000000000000000000000000000000000000000..8209db7c1dbd79e19f619215059f8ed4950b133e --- /dev/null +++ b/examples/hdl4se_riscv/de1/de1_riscv_v5.qpf @@ -0,0 +1,6 @@ +DATE = "14:35:32 September 10, 2021" +QUARTUS_VERSION = "15.1.0" + +# Revisions + +PROJECT_REVISION = "de1_riscv_v5" diff --git a/examples/hdl4se_riscv/de1/de1_riscv_v5.qsf b/examples/hdl4se_riscv/de1/de1_riscv_v5.qsf new file mode 100644 index 0000000000000000000000000000000000000000..198fb3660362d907731f3ea100906c440a8e5297 --- /dev/null +++ b/examples/hdl4se_riscv/de1/de1_riscv_v5.qsf @@ -0,0 +1,506 @@ +#============================================================ +# Build by Terasic System Builder +#============================================================ + +set_global_assignment -name FAMILY "Cyclone V" +set_global_assignment -name DEVICE 5CSEMA5F31C6 +set_global_assignment -name TOP_LEVEL_ENTITY "de1_riscv_v5" +set_global_assignment -name ORIGINAL_QUARTUS_VERSION "15.1.0" +set_global_assignment -name LAST_QUARTUS_VERSION 13.1 +set_global_assignment -name PROJECT_CREATION_TIME_DATE "14:35:32 SEPTEMBER 10,2021" +set_global_assignment -name DEVICE_FILTER_PACKAGE FBGA +set_global_assignment -name DEVICE_FILTER_PIN_COUNT 896 +set_global_assignment -name DEVICE_FILTER_SPEED_GRADE 6 + +#============================================================ +# ADC +#============================================================ +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ADC_CONVST +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ADC_DIN +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ADC_DOUT +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ADC_SCLK +set_location_assignment PIN_AJ4 -to ADC_CONVST +set_location_assignment PIN_AK4 -to ADC_DIN +set_location_assignment PIN_AK3 -to ADC_DOUT +set_location_assignment PIN_AK2 -to ADC_SCLK + +#============================================================ +# Audio +#============================================================ +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to AUD_ADCDAT +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to AUD_ADCLRCK +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to AUD_BCLK +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to AUD_DACDAT +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to AUD_DACLRCK +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to AUD_XCK +set_location_assignment PIN_K7 -to AUD_ADCDAT +set_location_assignment PIN_K8 -to AUD_ADCLRCK +set_location_assignment PIN_H7 -to AUD_BCLK +set_location_assignment PIN_J7 -to AUD_DACDAT +set_location_assignment PIN_H8 -to AUD_DACLRCK +set_location_assignment PIN_G7 -to AUD_XCK + +#============================================================ +# CLOCK +#============================================================ +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to CLOCK2_50 +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to CLOCK3_50 +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to CLOCK4_50 +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to CLOCK_50 +set_location_assignment PIN_AA16 -to CLOCK2_50 +set_location_assignment PIN_Y26 -to CLOCK3_50 +set_location_assignment PIN_K14 -to CLOCK4_50 +set_location_assignment PIN_AF14 -to CLOCK_50 + +#============================================================ +# SDRAM +#============================================================ +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_ADDR[0] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_ADDR[1] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_ADDR[2] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_ADDR[3] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_ADDR[4] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_ADDR[5] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_ADDR[6] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_ADDR[7] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_ADDR[8] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_ADDR[9] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_ADDR[10] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_ADDR[11] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_ADDR[12] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_BA[0] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_BA[1] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_CAS_N +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_CKE +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_CLK +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_CS_N +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_DQ[0] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_DQ[1] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_DQ[2] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_DQ[3] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_DQ[4] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_DQ[5] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_DQ[6] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_DQ[7] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_DQ[8] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_DQ[9] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_DQ[10] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_DQ[11] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_DQ[12] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_DQ[13] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_DQ[14] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_DQ[15] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_LDQM +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_RAS_N +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_UDQM +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to DRAM_WE_N +set_location_assignment PIN_AK14 -to DRAM_ADDR[0] +set_location_assignment PIN_AH14 -to DRAM_ADDR[1] +set_location_assignment PIN_AG15 -to DRAM_ADDR[2] +set_location_assignment PIN_AE14 -to DRAM_ADDR[3] +set_location_assignment PIN_AB15 -to DRAM_ADDR[4] +set_location_assignment PIN_AC14 -to DRAM_ADDR[5] +set_location_assignment PIN_AD14 -to DRAM_ADDR[6] +set_location_assignment PIN_AF15 -to DRAM_ADDR[7] +set_location_assignment PIN_AH15 -to DRAM_ADDR[8] +set_location_assignment PIN_AG13 -to DRAM_ADDR[9] +set_location_assignment PIN_AG12 -to DRAM_ADDR[10] +set_location_assignment PIN_AH13 -to DRAM_ADDR[11] +set_location_assignment PIN_AJ14 -to DRAM_ADDR[12] +set_location_assignment PIN_AF13 -to DRAM_BA[0] +set_location_assignment PIN_AJ12 -to DRAM_BA[1] +set_location_assignment PIN_AF11 -to DRAM_CAS_N +set_location_assignment PIN_AK13 -to DRAM_CKE +set_location_assignment PIN_AH12 -to DRAM_CLK +set_location_assignment PIN_AG11 -to DRAM_CS_N +set_location_assignment PIN_AK6 -to DRAM_DQ[0] +set_location_assignment PIN_AJ7 -to DRAM_DQ[1] +set_location_assignment PIN_AK7 -to DRAM_DQ[2] +set_location_assignment PIN_AK8 -to DRAM_DQ[3] +set_location_assignment PIN_AK9 -to DRAM_DQ[4] +set_location_assignment PIN_AG10 -to DRAM_DQ[5] +set_location_assignment PIN_AK11 -to DRAM_DQ[6] +set_location_assignment PIN_AJ11 -to DRAM_DQ[7] +set_location_assignment PIN_AH10 -to DRAM_DQ[8] +set_location_assignment PIN_AJ10 -to DRAM_DQ[9] +set_location_assignment PIN_AJ9 -to DRAM_DQ[10] +set_location_assignment PIN_AH9 -to DRAM_DQ[11] +set_location_assignment PIN_AH8 -to DRAM_DQ[12] +set_location_assignment PIN_AH7 -to DRAM_DQ[13] +set_location_assignment PIN_AJ6 -to DRAM_DQ[14] +set_location_assignment PIN_AJ5 -to DRAM_DQ[15] +set_location_assignment PIN_AB13 -to DRAM_LDQM +set_location_assignment PIN_AE13 -to DRAM_RAS_N +set_location_assignment PIN_AK12 -to DRAM_UDQM +set_location_assignment PIN_AA13 -to DRAM_WE_N + +#============================================================ +# I2C for Audio and Video-In +#============================================================ +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to FPGA_I2C_SCLK +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to FPGA_I2C_SDAT +set_location_assignment PIN_J12 -to FPGA_I2C_SCLK +set_location_assignment PIN_K12 -to FPGA_I2C_SDAT + +#============================================================ +# SEG7 +#============================================================ +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX0[0] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX0[1] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX0[2] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX0[3] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX0[4] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX0[5] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX0[6] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX1[0] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX1[1] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX1[2] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX1[3] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX1[4] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX1[5] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX1[6] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX2[0] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX2[1] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX2[2] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX2[3] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX2[4] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX2[5] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX2[6] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX3[0] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX3[1] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX3[2] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX3[3] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX3[4] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX3[5] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX3[6] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX4[0] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX4[1] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX4[2] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX4[3] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX4[4] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX4[5] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX4[6] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX5[0] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX5[1] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX5[2] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX5[3] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX5[4] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX5[5] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HEX5[6] +set_location_assignment PIN_AE26 -to HEX0[0] +set_location_assignment PIN_AE27 -to HEX0[1] +set_location_assignment PIN_AE28 -to HEX0[2] +set_location_assignment PIN_AG27 -to HEX0[3] +set_location_assignment PIN_AF28 -to HEX0[4] +set_location_assignment PIN_AG28 -to HEX0[5] +set_location_assignment PIN_AH28 -to HEX0[6] +set_location_assignment PIN_AJ29 -to HEX1[0] +set_location_assignment PIN_AH29 -to HEX1[1] +set_location_assignment PIN_AH30 -to HEX1[2] +set_location_assignment PIN_AG30 -to HEX1[3] +set_location_assignment PIN_AF29 -to HEX1[4] +set_location_assignment PIN_AF30 -to HEX1[5] +set_location_assignment PIN_AD27 -to HEX1[6] +set_location_assignment PIN_AB23 -to HEX2[0] +set_location_assignment PIN_AE29 -to HEX2[1] +set_location_assignment PIN_AD29 -to HEX2[2] +set_location_assignment PIN_AC28 -to HEX2[3] +set_location_assignment PIN_AD30 -to HEX2[4] +set_location_assignment PIN_AC29 -to HEX2[5] +set_location_assignment PIN_AC30 -to HEX2[6] +set_location_assignment PIN_AD26 -to HEX3[0] +set_location_assignment PIN_AC27 -to HEX3[1] +set_location_assignment PIN_AD25 -to HEX3[2] +set_location_assignment PIN_AC25 -to HEX3[3] +set_location_assignment PIN_AB28 -to HEX3[4] +set_location_assignment PIN_AB25 -to HEX3[5] +set_location_assignment PIN_AB22 -to HEX3[6] +set_location_assignment PIN_AA24 -to HEX4[0] +set_location_assignment PIN_Y23 -to HEX4[1] +set_location_assignment PIN_Y24 -to HEX4[2] +set_location_assignment PIN_W22 -to HEX4[3] +set_location_assignment PIN_W24 -to HEX4[4] +set_location_assignment PIN_V23 -to HEX4[5] +set_location_assignment PIN_W25 -to HEX4[6] +set_location_assignment PIN_V25 -to HEX5[0] +set_location_assignment PIN_AA28 -to HEX5[1] +set_location_assignment PIN_Y27 -to HEX5[2] +set_location_assignment PIN_AB27 -to HEX5[3] +set_location_assignment PIN_AB26 -to HEX5[4] +set_location_assignment PIN_AA26 -to HEX5[5] +set_location_assignment PIN_AA25 -to HEX5[6] + +#============================================================ +# IR +#============================================================ +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to IRDA_RXD +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to IRDA_TXD +set_location_assignment PIN_AA30 -to IRDA_RXD +set_location_assignment PIN_AB30 -to IRDA_TXD + +#============================================================ +# KEY +#============================================================ +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to KEY[0] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to KEY[1] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to KEY[2] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to KEY[3] +set_location_assignment PIN_AA14 -to KEY[0] +set_location_assignment PIN_AA15 -to KEY[1] +set_location_assignment PIN_W15 -to KEY[2] +set_location_assignment PIN_Y16 -to KEY[3] + +#============================================================ +# LED +#============================================================ +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to LEDR[0] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to LEDR[1] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to LEDR[2] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to LEDR[3] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to LEDR[4] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to LEDR[5] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to LEDR[6] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to LEDR[7] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to LEDR[8] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to LEDR[9] +set_location_assignment PIN_V16 -to LEDR[0] +set_location_assignment PIN_W16 -to LEDR[1] +set_location_assignment PIN_V17 -to LEDR[2] +set_location_assignment PIN_V18 -to LEDR[3] +set_location_assignment PIN_W17 -to LEDR[4] +set_location_assignment PIN_W19 -to LEDR[5] +set_location_assignment PIN_Y19 -to LEDR[6] +set_location_assignment PIN_W20 -to LEDR[7] +set_location_assignment PIN_W21 -to LEDR[8] +set_location_assignment PIN_Y21 -to LEDR[9] + +#============================================================ +# PS2 +#============================================================ +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to PS2_CLK +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to PS2_CLK2 +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to PS2_DAT +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to PS2_DAT2 +set_location_assignment PIN_AD7 -to PS2_CLK +set_location_assignment PIN_AD9 -to PS2_CLK2 +set_location_assignment PIN_AE7 -to PS2_DAT +set_location_assignment PIN_AE9 -to PS2_DAT2 + +#============================================================ +# SW +#============================================================ +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SW[0] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SW[1] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SW[2] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SW[3] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SW[4] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SW[5] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SW[6] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SW[7] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SW[8] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SW[9] +set_location_assignment PIN_AB12 -to SW[0] +set_location_assignment PIN_AC12 -to SW[1] +set_location_assignment PIN_AF9 -to SW[2] +set_location_assignment PIN_AF10 -to SW[3] +set_location_assignment PIN_AD11 -to SW[4] +set_location_assignment PIN_AD12 -to SW[5] +set_location_assignment PIN_AE11 -to SW[6] +set_location_assignment PIN_AC9 -to SW[7] +set_location_assignment PIN_AD10 -to SW[8] +set_location_assignment PIN_AE12 -to SW[9] + +#============================================================ +# Video-In +#============================================================ +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to TD_CLK27 +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to TD_DATA[0] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to TD_DATA[1] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to TD_DATA[2] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to TD_DATA[3] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to TD_DATA[4] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to TD_DATA[5] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to TD_DATA[6] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to TD_DATA[7] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to TD_HS +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to TD_RESET_N +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to TD_VS +set_location_assignment PIN_H15 -to TD_CLK27 +set_location_assignment PIN_D2 -to TD_DATA[0] +set_location_assignment PIN_B1 -to TD_DATA[1] +set_location_assignment PIN_E2 -to TD_DATA[2] +set_location_assignment PIN_B2 -to TD_DATA[3] +set_location_assignment PIN_D1 -to TD_DATA[4] +set_location_assignment PIN_E1 -to TD_DATA[5] +set_location_assignment PIN_C2 -to TD_DATA[6] +set_location_assignment PIN_B3 -to TD_DATA[7] +set_location_assignment PIN_A5 -to TD_HS +set_location_assignment PIN_F6 -to TD_RESET_N +set_location_assignment PIN_A3 -to TD_VS + +#============================================================ +# VGA +#============================================================ +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to VGA_BLANK_N +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to VGA_B[0] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to VGA_B[1] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to VGA_B[2] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to VGA_B[3] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to VGA_B[4] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to VGA_B[5] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to VGA_B[6] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to VGA_B[7] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to VGA_CLK +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to VGA_G[0] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to VGA_G[1] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to VGA_G[2] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to VGA_G[3] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to VGA_G[4] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to VGA_G[5] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to VGA_G[6] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to VGA_G[7] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to VGA_HS +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to VGA_R[0] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to VGA_R[1] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to VGA_R[2] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to VGA_R[3] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to VGA_R[4] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to VGA_R[5] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to VGA_R[6] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to VGA_R[7] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to VGA_SYNC_N +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to VGA_VS +set_location_assignment PIN_F10 -to VGA_BLANK_N +set_location_assignment PIN_B13 -to VGA_B[0] +set_location_assignment PIN_G13 -to VGA_B[1] +set_location_assignment PIN_H13 -to VGA_B[2] +set_location_assignment PIN_F14 -to VGA_B[3] +set_location_assignment PIN_H14 -to VGA_B[4] +set_location_assignment PIN_F15 -to VGA_B[5] +set_location_assignment PIN_G15 -to VGA_B[6] +set_location_assignment PIN_J14 -to VGA_B[7] +set_location_assignment PIN_A11 -to VGA_CLK +set_location_assignment PIN_J9 -to VGA_G[0] +set_location_assignment PIN_J10 -to VGA_G[1] +set_location_assignment PIN_H12 -to VGA_G[2] +set_location_assignment PIN_G10 -to VGA_G[3] +set_location_assignment PIN_G11 -to VGA_G[4] +set_location_assignment PIN_G12 -to VGA_G[5] +set_location_assignment PIN_F11 -to VGA_G[6] +set_location_assignment PIN_E11 -to VGA_G[7] +set_location_assignment PIN_B11 -to VGA_HS +set_location_assignment PIN_A13 -to VGA_R[0] +set_location_assignment PIN_C13 -to VGA_R[1] +set_location_assignment PIN_E13 -to VGA_R[2] +set_location_assignment PIN_B12 -to VGA_R[3] +set_location_assignment PIN_C12 -to VGA_R[4] +set_location_assignment PIN_D12 -to VGA_R[5] +set_location_assignment PIN_E12 -to VGA_R[6] +set_location_assignment PIN_F13 -to VGA_R[7] +set_location_assignment PIN_C10 -to VGA_SYNC_N +set_location_assignment PIN_D11 -to VGA_VS + +#============================================================ +# GPIO_0, GPIO_0 connect to GPIO Default +#============================================================ +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[0] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[1] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[2] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[3] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[4] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[5] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[6] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[7] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[8] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[9] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[10] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[11] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[12] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[13] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[14] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[15] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[16] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[17] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[18] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[19] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[20] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[21] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[22] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[23] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[24] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[25] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[26] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[27] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[28] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[29] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[30] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[31] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[32] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[33] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[34] +set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO[35] +set_location_assignment PIN_AC18 -to GPIO[0] +set_location_assignment PIN_Y17 -to GPIO[1] +set_location_assignment PIN_AD17 -to GPIO[2] +set_location_assignment PIN_Y18 -to GPIO[3] +set_location_assignment PIN_AK16 -to GPIO[4] +set_location_assignment PIN_AK18 -to GPIO[5] +set_location_assignment PIN_AK19 -to GPIO[6] +set_location_assignment PIN_AJ19 -to GPIO[7] +set_location_assignment PIN_AJ17 -to GPIO[8] +set_location_assignment PIN_AJ16 -to GPIO[9] +set_location_assignment PIN_AH18 -to GPIO[10] +set_location_assignment PIN_AH17 -to GPIO[11] +set_location_assignment PIN_AG16 -to GPIO[12] +set_location_assignment PIN_AE16 -to GPIO[13] +set_location_assignment PIN_AF16 -to GPIO[14] +set_location_assignment PIN_AG17 -to GPIO[15] +set_location_assignment PIN_AA18 -to GPIO[16] +set_location_assignment PIN_AA19 -to GPIO[17] +set_location_assignment PIN_AE17 -to GPIO[18] +set_location_assignment PIN_AC20 -to GPIO[19] +set_location_assignment PIN_AH19 -to GPIO[20] +set_location_assignment PIN_AJ20 -to GPIO[21] +set_location_assignment PIN_AH20 -to GPIO[22] +set_location_assignment PIN_AK21 -to GPIO[23] +set_location_assignment PIN_AD19 -to GPIO[24] +set_location_assignment PIN_AD20 -to GPIO[25] +set_location_assignment PIN_AE18 -to GPIO[26] +set_location_assignment PIN_AE19 -to GPIO[27] +set_location_assignment PIN_AF20 -to GPIO[28] +set_location_assignment PIN_AF21 -to GPIO[29] +set_location_assignment PIN_AF19 -to GPIO[30] +set_location_assignment PIN_AG21 -to GPIO[31] +set_location_assignment PIN_AF18 -to GPIO[32] +set_location_assignment PIN_AG20 -to GPIO[33] +set_location_assignment PIN_AG18 -to GPIO[34] +set_location_assignment PIN_AJ21 -to GPIO[35] + +#============================================================ +# End of pin assignments by Terasic System Builder +#============================================================ + + +set_global_assignment -name MIN_CORE_JUNCTION_TEMP 0 +set_global_assignment -name MAX_CORE_JUNCTION_TEMP 85 +set_global_assignment -name POWER_PRESET_COOLING_SOLUTION "23 MM HEAT SINK WITH 200 LFPM AIRFLOW" +set_global_assignment -name POWER_BOARD_THERMAL_MODEL "NONE (CONSERVATIVE)" +set_global_assignment -name PARTITION_NETLIST_TYPE SOURCE -section_id Top +set_global_assignment -name PARTITION_FITTER_PRESERVATION_LEVEL PLACEMENT_AND_ROUTING -section_id Top +set_global_assignment -name PARTITION_COLOR 16764057 -section_id Top +set_global_assignment -name VERILOG_FILE ../verilog/alu/mul32.v +set_global_assignment -name VERILOG_FILE ../verilog/alu/div32.v +set_global_assignment -name VERILOG_FILE ../verilog/axi/riscv_core_with_axi_master.v +set_global_assignment -name VERILOG_FILE ../verilog/uart/a_uart.v +set_global_assignment -name VERILOG_FILE ../verilog/riscv_core_v5.v +set_global_assignment -name VERILOG_FILE ../verilog/regfile.v +set_global_assignment -name VERILOG_FILE ../verilog/uart/uart_ctrl.v +set_global_assignment -name VERILOG_FILE ../verilog/altera/ram/ram128kB.v +set_global_assignment -name VERILOG_FILE ../verilog/altera/ram/ram16kB.v +set_global_assignment -name VERILOG_FILE ../verilog/altera/ram/ram8kb.v +set_global_assignment -name VERILOG_FILE ../verilog/altera/ram/ram4kB.v +set_global_assignment -name VERILOG_FILE ../verilog/altera/uart/uart_fifo.v +set_global_assignment -name VERILOG_FILE ../verilog/altera/uart/altera_uart.v +set_global_assignment -name VERILOG_FILE de1_riscv_v5.v +set_global_assignment -name SDC_FILE de1_riscv_v5.SDC +set_instance_assignment -name PARTITION_HIERARCHY root_partition -to | -section_id Top \ No newline at end of file diff --git a/examples/hdl4se_riscv/de1/de1_riscv_v5.sdc b/examples/hdl4se_riscv/de1/de1_riscv_v5.sdc new file mode 100644 index 0000000000000000000000000000000000000000..d4e33cf4022729f2678dd4c9d265b84c0661ab81 --- /dev/null +++ b/examples/hdl4se_riscv/de1/de1_riscv_v5.sdc @@ -0,0 +1,148 @@ +#************************************************************** +# This .sdc file is created by Terasic Tool. +# Users are recommended to modify this file to match users logic. +#************************************************************** + +#************************************************************** +# Create Clock +#************************************************************** +create_clock -period 20.000ns [get_ports CLOCK2_50] +create_clock -period 20.000ns [get_ports CLOCK3_50] +create_clock -period 20.000ns [get_ports CLOCK4_50] +create_clock -period 20.000ns [get_ports CLOCK_50] + +create_clock -period "27 MHz" -name tv_27m [get_ports TD_CLK27] +create_clock -period "100 MHz" -name clk_dram [get_ports DRAM_CLK] +# AUDIO : 48kHz 384fs 32-bit data +create_clock -period "18.432 MHz" -name clk_audxck [get_ports AUD_XCK] +create_clock -period "1.536 MH" -name clk_audbck [get_ports AUD_BCLK] +# VGA : 640x480@60Hz +#create_clock -period "25.18 MHz" -name clk_vga [get_ports VGA_CLK] +# VGA : 800x600@60Hz +#create_clock -period "40.0 MHz" -name clk_vga [get_ports VGA_CLK] +# VGA : 1024x768@60Hz +#create_clock -period "65.0 MHz" -name clk_vga [get_ports VGA_CLK] +# VGA : 1280x1024@60Hz +create_clock -period "108.0 MHz" -name clk_vga [get_ports VGA_CLK] + +# for enhancing USB BlasterII to be reliable, 25MHz +create_clock -name {altera_reserved_tck} -period 40 {altera_reserved_tck} +set_input_delay -clock altera_reserved_tck -clock_fall 3 [get_ports altera_reserved_tdi] +set_input_delay -clock altera_reserved_tck -clock_fall 3 [get_ports altera_reserved_tms] +set_output_delay -clock altera_reserved_tck 3 [get_ports altera_reserved_tdo] + +#************************************************************** +# Create Generated Clock +#************************************************************** +derive_pll_clocks + + + +#************************************************************** +# Set Clock Latency +#************************************************************** + + + +#************************************************************** +# Set Clock Uncertainty +#************************************************************** +derive_clock_uncertainty + + + +#************************************************************** +# Set Input Delay +#************************************************************** +# Board Delay (Data) + Propagation Delay - Board Delay (Clock) +set_input_delay -max -clock clk_dram -0.048 [get_ports DRAM_DQ*] +set_input_delay -min -clock clk_dram -0.057 [get_ports DRAM_DQ*] + +set_input_delay -max -clock tv_27m 3.508 -clock_fall [get_ports TD_DATA*] +set_input_delay -min -clock tv_27m -2.539 -clock_fall [get_ports TD_DATA*] +set_input_delay -max -clock tv_27m 3.654 -clock_fall [get_ports TD_HS] +set_input_delay -min -clock tv_27m -2.454 -clock_fall [get_ports TD_HS] +set_input_delay -max -clock tv_27m 3.652 -clock_fall [get_ports TD_VS] +set_input_delay -min -clock tv_27m -2.456 -clock_fall [get_ports TD_VS] + + + + +#************************************************************** +# Set Output Delay +#************************************************************** +# max : Board Delay (Data) - Board Delay (Clock) + tsu (External Device) +# min : Board Delay (Data) - Board Delay (Clock) - th (External Device) +set_output_delay -max -clock clk_dram 1.452 [get_ports DRAM_DQ*] +set_output_delay -min -clock clk_dram -0.857 [get_ports DRAM_DQ*] +set_output_delay -max -clock clk_dram 1.531 [get_ports DRAM_ADDR*] +set_output_delay -min -clock clk_dram -0.805 [get_ports DRAM_ADDR*] +set_output_delay -max -clock clk_dram 1.533 [get_ports DRAM_*DQM] +set_output_delay -min -clock clk_dram -0.805 [get_ports DRAM_*DQM] +set_output_delay -max -clock clk_dram 1.510 [get_ports DRAM_BA*] +set_output_delay -min -clock clk_dram -0.800 [get_ports DRAM_BA*] +set_output_delay -max -clock clk_dram 1.520 [get_ports DRAM_RAS_N] +set_output_delay -min -clock clk_dram -0.780 [get_ports DRAM_RAS_N] +set_output_delay -max -clock clk_dram 1.5000 [get_ports DRAM_CAS_N] +set_output_delay -min -clock clk_dram -0.800 [get_ports DRAM_CAS_N] +set_output_delay -max -clock clk_dram 1.545 [get_ports DRAM_WE_N] +set_output_delay -min -clock clk_dram -0.755 [get_ports DRAM_WE_N] +set_output_delay -max -clock clk_dram 1.496 [get_ports DRAM_CKE] +set_output_delay -min -clock clk_dram -0.804 [get_ports DRAM_CKE] +set_output_delay -max -clock clk_dram 1.508 [get_ports DRAM_CS_N] +set_output_delay -min -clock clk_dram -0.792 [get_ports DRAM_CS_N] + +set_output_delay -max -clock clk_vga 0.220 [get_ports VGA_R*] +set_output_delay -min -clock clk_vga -1.506 [get_ports VGA_R*] +set_output_delay -max -clock clk_vga 0.212 [get_ports VGA_G*] +set_output_delay -min -clock clk_vga -1.519 [get_ports VGA_G*] +set_output_delay -max -clock clk_vga 0.264 [get_ports VGA_B*] +set_output_delay -min -clock clk_vga -1.519 [get_ports VGA_B*] +set_output_delay -max -clock clk_vga 0.215 [get_ports VGA_BLANK] +set_output_delay -min -clock clk_vga -1.485 [get_ports VGA_BLANK] + + + + +#************************************************************** +# Set Clock Groups +#************************************************************** + + + +#************************************************************** +# Set False Path +#************************************************************** + + + +#************************************************************** +# Set Multicycle Path +#************************************************************** + + + +#************************************************************** +# Set Maximum Delay +#************************************************************** + + + +#************************************************************** +# Set Minimum Delay +#************************************************************** + + + +#************************************************************** +# Set Input Transition +#************************************************************** + + + +#************************************************************** +# Set Load +#************************************************************** + + + diff --git a/examples/hdl4se_riscv/de1/de1_riscv_v5.sof b/examples/hdl4se_riscv/de1/de1_riscv_v5.sof new file mode 100644 index 0000000000000000000000000000000000000000..a226367a0c8f7b0e00aba9824eb91b13c24ba287 Binary files /dev/null and b/examples/hdl4se_riscv/de1/de1_riscv_v5.sof differ diff --git a/examples/hdl4se_riscv/de1/de1_riscv_v5.v b/examples/hdl4se_riscv/de1/de1_riscv_v5.v new file mode 100644 index 0000000000000000000000000000000000000000..993154fd7799d32ded5f2d2aa18d93e045e042e6 --- /dev/null +++ b/examples/hdl4se_riscv/de1/de1_riscv_v5.v @@ -0,0 +1,338 @@ + +//======================================================= +// This code is generated by Terasic System Builder +//======================================================= + +`define USECLOCK50 + +module de1_riscv_v5( + + //////////// ADC ////////// + output ADC_CONVST, + output ADC_DIN, + input ADC_DOUT, + output ADC_SCLK, + + //////////// Audio ////////// + input AUD_ADCDAT, + inout AUD_ADCLRCK, + inout AUD_BCLK, + output AUD_DACDAT, + inout AUD_DACLRCK, + output AUD_XCK, + + //////////// CLOCK ////////// + input CLOCK2_50, + input CLOCK3_50, + input CLOCK4_50, + input CLOCK_50, + + //////////// SDRAM ////////// + output [12:0] DRAM_ADDR, + output [1:0] DRAM_BA, + output DRAM_CAS_N, + output DRAM_CKE, + output DRAM_CLK, + output DRAM_CS_N, + inout [15:0] DRAM_DQ, + output DRAM_LDQM, + output DRAM_RAS_N, + output DRAM_UDQM, + output DRAM_WE_N, + + //////////// I2C for Audio and Video-In ////////// + output FPGA_I2C_SCLK, + inout FPGA_I2C_SDAT, + + //////////// SEG7 ////////// + output [6:0] HEX0, + output [6:0] HEX1, + output [6:0] HEX2, + output [6:0] HEX3, + output [6:0] HEX4, + output [6:0] HEX5, + + //////////// IR ////////// + input IRDA_RXD, + output IRDA_TXD, + + //////////// KEY ////////// + input [3:0] KEY, + + //////////// LED ////////// + output [9:0] LEDR, + + //////////// PS2 ////////// + inout PS2_CLK, + inout PS2_CLK2, + inout PS2_DAT, + inout PS2_DAT2, + + //////////// SW ////////// + input [9:0] SW, + + //////////// Video-In ////////// + input TD_CLK27, + input [7:0] TD_DATA, + input TD_HS, + output TD_RESET_N, + input TD_VS, + + //////////// VGA ////////// + output VGA_BLANK_N, + output [7:0] VGA_B, + output VGA_CLK, + output [7:0] VGA_G, + output VGA_HS, + output [7:0] VGA_R, + output VGA_SYNC_N, + output VGA_VS, + + //////////// GPIO_0, GPIO_0 connect to GPIO Default ////////// + inout [35:0] GPIO +); + + + wire uart_tx; + wire uart_rx; + assign GPIO[5] = uart_tx; + assign GPIO[7] = 1'bz; + assign uart_rx = GPIO[7]; + + assign LEDR[0] = uart_tx; + assign LEDR[1] = uart_rx; + +`ifdef USECLOCK50 + wire wClk = CLOCK_50; +`else + wire clk100MHz, clk75MHz, clklocked; + clk100M clk100(.refclk(CLOCK_50), + .rst(~KEY[3]), + .outclk_0(clk100MHz), + .outclk_1(clk75MHz), + .locked(clklocked)); + + wire wClk = clk100MHz; +`endif + wire nwReset = KEY[3]; + + wire wWrite, wRead; + wire [31:0] bWriteAddr, bWriteData, bReadAddr, bReadData, bReadDataRam, bReadDataKey, bReadDataUart; + wire [3:0] bWriteMask; + +`define TESTALEXUART_ + +`ifdef TESTALEXUART +reg [7:0] uart_tx_axis_tdata; +reg uart_tx_axis_tvalid; +wire uart_tx_axis_tready; + +wire [7:0] uart_rx_axis_tdata; +wire uart_rx_axis_tvalid; +reg uart_rx_axis_tready; + +uart +uart_inst ( + .clk(wClk), + .rst(~nwReset), + // AXI input + .s_axis_tdata(uart_tx_axis_tdata), + .s_axis_tvalid(uart_tx_axis_tvalid), + .s_axis_tready(uart_tx_axis_tready), + // AXI output + .m_axis_tdata(uart_rx_axis_tdata), + .m_axis_tvalid(uart_rx_axis_tvalid), + .m_axis_tready(uart_rx_axis_tready), + // uart + .rxd(uart_rx), + .txd(uart_tx), + // status + .tx_busy(), + .rx_busy(), + .rx_overrun_error(), + .rx_frame_error(), + // configuration + .prescale(50000000/(115200*8)) +); + +always @(posedge wClk or negedge nwReset) begin + if (~nwReset) begin + uart_tx_axis_tdata <= 0; + uart_tx_axis_tvalid <= 0; + uart_rx_axis_tready <= 0; + end else begin + if (uart_tx_axis_tvalid) begin + // attempting to transmit a byte + // so can't receive one at the moment + uart_rx_axis_tready <= 0; + // if it has been received, then clear the valid flag + if (uart_tx_axis_tready) begin + uart_tx_axis_tvalid <= 0; + end + end else begin + // ready to receive byte + uart_rx_axis_tready <= 1; + if (uart_rx_axis_tvalid) begin + // got one, so make sure it gets the correct ready signal + // (either clear it if it was set or set it if we just got a + // byte out of waiting for the transmitter to send one) + uart_rx_axis_tready <= ~uart_rx_axis_tready; + // send byte back out + uart_tx_axis_tdata <= uart_rx_axis_tdata; + uart_tx_axis_tvalid <= 1; + end + end + end +end + +`else + uart_ctrl uart_ctrl( + .wClk(wClk), + .nwReset(nwReset), + .wRead(((bReadAddr & 32'hffffff00) == 32'hf0000100)?wRead:1'b0), + .bReadAddr(bReadAddr), + .wWrite(((bWriteAddr & 32'hffffff00) == 32'hf0000100)?wWrite:1'b0), + .bWriteAddr(bWriteAddr), + .bWriteData(bWriteData), + .bReadData(bReadDataUart), + .uart_tx(uart_tx), + .uart_rx(uart_rx), + .dataready(LEDR[2]), + .sendready(LEDR[3]), + .sendfull(LEDR[4]), + .recvempty(LEDR[5]) + ); +`endif + + /* AXI signal */ + // Write Address + wire wAWValid; + wire [31 : 0] bAWAddr; + wire [2 : 0] bAWProt; + wire wAWReady = 1'b1; + + // Write Data + wire wWValid; + wire [31 : 0] bWData; + wire [3 : 0] bWStrb; + wire wWReady = 1'b1; + + // Write Response + wire wBReady; + wire [1 : 0] bBResp; + wire wBValid = 1'b1; + + assign wWrite = wAWValid; + assign bWriteAddr = bAWAddr; + assign bWriteData = bWData; + assign bWriteMask = ~bWStrb; + + reg read_r; + always@(posedge wClk) + read_r <= wRead; + // ReadAddr + wire wARValid; + wire [31 : 0] bARAddr; + wire [2 : 0] bARProt; + wire wARReady = 1'b1; + + assign bReadAddr = bARAddr; + assign wRead = wARValid; + + //ReadData + wire wRReady; + wire wRValid = read_r; + wire [31 : 0] bRData = bReadDataUart; + wire [1 : 0] bRResp = 1'b0; + + riscv_core_with_axi_master riscv_core_with_axi( + // clock and reset + wClk, + nwReset, + + // Write Address + wAWValid, + bAWAddr, + bAWProt, + wAWReady, + + // Write Data + wWValid, + bWData, + bWStrb, + wWReady, + + // Write Response + wBReady, + bBResp, + wBValid, + + // ReadAddr + wARValid, + bARAddr, + bARProt, + wARReady, + + //ReadData + wRReady, + wRValid, + bRData, + bRResp + ); + + reg [6:0] led0; + reg [6:0] led1; + reg [6:0] led2; + reg [6:0] led3; + reg [6:0] led4; + reg [6:0] led5; + assign HEX0 = ~led0; + assign HEX1 = ~led1; + assign HEX2 = ~led2; + assign HEX3 = ~led3; + assign HEX4 = ~led4; + assign HEX5 = ~led5; + + + + always @(posedge wClk) begin + if (!nwReset) begin + led0 <= 7'h3f; + led1 <= 7'h3f; + led2 <= 7'h3f; + led3 <= 7'h3f; + led4 <= 7'h3f; + led5 <= 7'h3f; + end else begin + if (SW[8]) begin + led0 <= 7'h06; + led1 <= 7'h06; + led2 <= 7'h06; + led3 <= 7'h07; + led4 <= 7'h07; + led5 <= 7'h07; + end + else if (SW[9]) begin + led0 <= 7'h3f; + led1 <= 7'h06; + led2 <= 7'h5b; + led3 <= 7'h4f; + led4 <= 7'h66; + led5 <= 7'h6d; + end + else if (wWrite && ((bWriteAddr & 32'hffffff00) == 32'hf0000000)) begin + if (bWriteAddr[7:0] == 8'h10) begin + led0 <= bWriteData[6:0]; + led1 <= bWriteData[14:8]; + led2 <= bWriteData[22:16]; + led3 <= bWriteData[30:24]; + end else if (bWriteAddr[7:0] == 8'h14) begin + led4 <= bWriteData[6:0]; + led5 <= bWriteData[14:8]; + end + end + end + end + + +endmodule diff --git a/examples/hdl4se_riscv/test_code/test_new.c b/examples/hdl4se_riscv/test_code/test_new.c index 2cb16604b13fccdc0b980a73ec95ac277091e362..5c97e50da443b12e576b1f925cb52b7d640deb72 100644 --- a/examples/hdl4se_riscv/test_code/test_new.c +++ b/examples/hdl4se_riscv/test_code/test_new.c @@ -1,9 +1,9 @@ int testadd() { int i; - int a[16] = {863339516, 821515056, 1083581092, -1690958248, 1933660748, -1566795136, -186993932, -508514392, -878058340, 387704272, -1386576060, -1070867208, -511952148, -1018022624, 872587156, 715427400, }; - int b[16] = {684048083, 417734967, -2021621029, -1690785857, -148925469, -2133357753, 1375212011, 1488055247, 1806900467, -716510889, -1714563845, -46554145, 202988035, 732511079, -180696053, -522661905, }; - int c[16] = {1547387599, 1239250023, -938039937, 913223191, 1784735279, 594814407, 1188218079, 979540855, 928842127, -328806617, 1193827391, -1117421353, -308964113, -285511545, 691891103, 192765495, }; + int a[16] = {-93274203, -76479575, -1782331155, 2052420465, 523347765, -582531015, -1687389571, 715301377, -1214618939, -176709431, -438992883, 1644848273, -911478187, 2052263257, -190850659, -763512031, }; + int b[16] = {1118302168, 499397580, -1694632960, -1642068876, -929597144, 807904796, 1843273552, -1723418428, 64980600, -926098324, -2066919776, -898780908, 645732296, -926886212, 619217392, 532802916, }; + int c[16] = {1025027965, 422918005, 818003181, 410351589, -406249379, 225373781, 155883981, -1008117051, -1149638339, -1102807755, 1789054637, 746067365, -265745891, 1125377045, 428366733, -230709115, }; for (i = 0; i < 16; i++) { if (a[i] + b[i] != c[i]) return i; @@ -13,9 +13,9 @@ int testadd() int testsub() { int i; - int a[16] = {863339516, 821515056, 1083581092, -1690958248, 1933660748, -1566795136, -186993932, -508514392, -878058340, 387704272, -1386576060, -1070867208, -511952148, -1018022624, 872587156, 715427400, }; - int b[16] = {684048083, 417734967, -2021621029, -1690785857, -148925469, -2133357753, 1375212011, 1488055247, 1806900467, -716510889, -1714563845, -46554145, 202988035, 732511079, -180696053, -522661905, }; - int c[16] = {179291433, 403780089, -1189765175, -172391, 2082586217, 566562617, -1562205943, -1996569639, 1610008489, 1104215161, 327987785, -1024313063, -714940183, -1750533703, 1053283209, 1238089305, }; + int a[16] = {-93274203, -76479575, -1782331155, 2052420465, 523347765, -582531015, -1687389571, 715301377, -1214618939, -176709431, -438992883, 1644848273, -911478187, 2052263257, -190850659, -763512031, }; + int b[16] = {1118302168, 499397580, -1694632960, -1642068876, -929597144, 807904796, 1843273552, -1723418428, 64980600, -926098324, -2066919776, -898780908, 645732296, -926886212, 619217392, 532802916, }; + int c[16] = {-1211576371, -575877155, -87698195, -600477955, 1452944909, -1390435811, 764304173, -1856247491, -1279599539, 749388893, 1627926893, -1751338115, -1557210483, -1315817827, -810068051, -1296314947, }; for (i = 0; i < 16; i++) { if (a[i] - b[i] != c[i]) return i; @@ -25,9 +25,9 @@ int testsub() int testmul() { int i; - int a[16] = {863339516, 821515056, 1083581092, -1690958248, 1933660748, -1566795136, -186993932, -508514392, -878058340, 387704272, -1386576060, -1070867208, -511952148, -1018022624, 872587156, 715427400, }; - int b[16] = {684048083, 417734967, -2021621029, -1690785857, -148925469, -2133357753, 1375212011, 1488055247, 1806900467, -716510889, -1714563845, -46554145, 202988035, 732511079, -180696053, -522661905, }; - int c[16] = {-1833119564, -1543762096, 1275521612, -1229839448, 6397284, -489531008, -620463620, -498777896, -195489772, -1127913040, -449122388, -1625332728, 574073028, -93208608, 516868956, -345174728, }; + int a[16] = {-93274203, -76479575, -1782331155, 2052420465, 523347765, -582531015, -1687389571, 715301377, -1214618939, -176709431, -438992883, 1644848273, -911478187, 2052263257, -190850659, -763512031, }; + int b[16] = {1118302168, 499397580, -1694632960, -1642068876, -929597144, 807904796, 1843273552, -1723418428, 64980600, -926098324, -2066919776, -898780908, 645732296, -926886212, 619217392, 532802916, }; + int c[16] = {548388408, -735210068, -1078270976, -257551564, 1611476296, 491772988, 639724048, 1849344196, 950823512, -2066706228, -253952480, 336927828, -224660120, -857328804, 751575088, -1304713756, }; for (i = 0; i < 16; i++) { if (a[i] * b[i] != c[i]) return i; @@ -37,9 +37,9 @@ int testmul() int testdiv() { int i; - int a[16] = {863339516, 821515056, 1083581092, -1690958248, 1933660748, -1566795136, -186993932, -508514392, -878058340, 387704272, -1386576060, -1070867208, -511952148, -1018022624, 872587156, 715427400, }; - int b[16] = {684048083, 417734967, -2021621029, -1690785857, -148925469, -2133357753, 1375212011, 1488055247, 1806900467, -716510889, -1714563845, -46554145, 202988035, 732511079, -180696053, -522661905, }; - int c[16] = {1, 1, 0, 1, -12, 0, 0, 0, 0, 0, 0, 23, -2, -1, -4, -1, }; + int a[16] = {-93274203, -76479575, -1782331155, 2052420465, 523347765, -582531015, -1687389571, 715301377, -1214618939, -176709431, -438992883, 1644848273, -911478187, 2052263257, -190850659, -763512031, }; + int b[16] = {1118302168, 499397580, -1694632960, -1642068876, -929597144, 807904796, 1843273552, -1723418428, 64980600, -926098324, -2066919776, -898780908, 645732296, -926886212, 619217392, 532802916, }; + int c[16] = {0, 0, 1, -1, 0, 0, 0, 0, -18, 0, 0, -1, -1, -2, 0, -1, }; for (i = 0; i < 16; i++) { if (a[i] / b[i] != c[i]) return i; @@ -49,9 +49,9 @@ int testdiv() int testmod() { int i; - int a[16] = {863339516, 821515056, 1083581092, -1690958248, 1933660748, -1566795136, -186993932, -508514392, -878058340, 387704272, -1386576060, -1070867208, -511952148, -1018022624, 872587156, 715427400, }; - int b[16] = {684048083, 417734967, -2021621029, -1690785857, -148925469, -2133357753, 1375212011, 1488055247, 1806900467, -716510889, -1714563845, -46554145, 202988035, 732511079, -180696053, -522661905, }; - int c[16] = {179291433, 403780089, 1083581092, -172391, 146555120, -1566795136, -186993932, -508514392, -878058340, 387704272, -1386576060, -121873, -105976078, -285511545, 149802944, 192765495, }; + int a[16] = {-93274203, -76479575, -1782331155, 2052420465, 523347765, -582531015, -1687389571, 715301377, -1214618939, -176709431, -438992883, 1644848273, -911478187, 2052263257, -190850659, -763512031, }; + int b[16] = {1118302168, 499397580, -1694632960, -1642068876, -929597144, 807904796, 1843273552, -1723418428, 64980600, -926098324, -2066919776, -898780908, 645732296, -926886212, 619217392, 532802916, }; + int c[16] = {-93274203, -76479575, -87698195, 410351589, 523347765, -582531015, -1687389571, 715301377, -44968139, -176709431, -438992883, 746067365, -265745891, 198490833, -190850659, -230709115, }; for (i = 0; i < 16; i++) { if (a[i] % b[i] != c[i]) return i; @@ -61,9 +61,9 @@ int testmod() int testaddu() { int i; - unsigned int a[16] = {0xc8fb2a4d, 0xb9e89321, 0x94f4fe35, 0xb2451f89, 0xb9b5eb1d, 0xe07094f1, 0xa4be9105, 0x7c1d9359, 0x27938fed, 0xa242bac1, 0xde3d87d5, 0xc39aab29, 0x25c918bd, 0xa3240491, 0xa2c6e2a5, 0xe4a166f9, }; - unsigned int b[16] = {0xdb5893dc, 0x52e4a960, 0x4f6cb824, 0xa452a428, 0xe6cf916c, 0x0537e3f0, 0x637f3fb4, 0x20fc88b8, 0x6b6de2fc, 0x033cb280, 0x55019b44, 0xcc488148, 0x4394888c, 0xb5a41510, 0x93f4cad4, 0x66878dd8, }; - unsigned int c[16] = {0xa453be29, 0x0ccd3c81, 0xe461b659, 0x5697c3b1, 0xa0857c89, 0xe5a878e1, 0x083dd0b9, 0x9d1a1c11, 0x930172e9, 0xa57f6d41, 0x333f2319, 0x8fe32c71, 0x695da149, 0x58c819a1, 0x36bbad79, 0x4b28f4d1, }; + unsigned int a[16] = {0x2368eb3e, 0xdffcef62, 0xfff97ec6, 0x344e1d6a, 0xce038f4e, 0x6a1fd872, 0x94ca3cd6, 0xa7af407a, 0x67a4a75e, 0x258d7582, 0x667deee6, 0x571f978a, 0x8e55336e, 0xe31ec692, 0x59bd94f6, 0x6c18229a, }; + unsigned int b[16] = {0x36225509, 0x5debd89d, 0xc238ba71, 0x7b4a6e85, 0x3616a8d9, 0xc09b5d6d, 0xb072c041, 0x57a74555, 0x7bc7a0a9, 0x833ac63d, 0x0cd3ea11, 0x25a68025, 0x911a3c79, 0xd73f130d, 0x0d6137e1, 0x8cdd1ef5, }; + unsigned int c[16] = {0x598b4047, 0x3de8c7ff, 0xc2323937, 0xaf988bef, 0x041a3827, 0x2abb35df, 0x453cfd17, 0xff5685cf, 0xe36c4807, 0xa8c83bbf, 0x7351d8f7, 0x7cc617af, 0x1f6f6fe7, 0xba5dd99f, 0x671eccd7, 0xf8f5418f, }; for (i = 0; i < 16; i++) { if (a[i] + b[i] != c[i]) return i; @@ -73,9 +73,9 @@ int testaddu() int testsubu() { int i; - unsigned int a[16] = {0xc8fb2a4d, 0xb9e89321, 0x94f4fe35, 0xb2451f89, 0xb9b5eb1d, 0xe07094f1, 0xa4be9105, 0x7c1d9359, 0x27938fed, 0xa242bac1, 0xde3d87d5, 0xc39aab29, 0x25c918bd, 0xa3240491, 0xa2c6e2a5, 0xe4a166f9, }; - unsigned int b[16] = {0xdb5893dc, 0x52e4a960, 0x4f6cb824, 0xa452a428, 0xe6cf916c, 0x0537e3f0, 0x637f3fb4, 0x20fc88b8, 0x6b6de2fc, 0x033cb280, 0x55019b44, 0xcc488148, 0x4394888c, 0xb5a41510, 0x93f4cad4, 0x66878dd8, }; - unsigned int c[16] = {0xeda29671, 0x6703e9c1, 0x45884611, 0x0df27b61, 0xd2e659b1, 0xdb38b101, 0x413f5151, 0x5b210aa1, 0xbc25acf1, 0x9f060841, 0x893bec91, 0xf75229e1, 0xe2349031, 0xed7fef81, 0x0ed217d1, 0x7e19d921, }; + unsigned int a[16] = {0x2368eb3e, 0xdffcef62, 0xfff97ec6, 0x344e1d6a, 0xce038f4e, 0x6a1fd872, 0x94ca3cd6, 0xa7af407a, 0x67a4a75e, 0x258d7582, 0x667deee6, 0x571f978a, 0x8e55336e, 0xe31ec692, 0x59bd94f6, 0x6c18229a, }; + unsigned int b[16] = {0x36225509, 0x5debd89d, 0xc238ba71, 0x7b4a6e85, 0x3616a8d9, 0xc09b5d6d, 0xb072c041, 0x57a74555, 0x7bc7a0a9, 0x833ac63d, 0x0cd3ea11, 0x25a68025, 0x911a3c79, 0xd73f130d, 0x0d6137e1, 0x8cdd1ef5, }; + unsigned int c[16] = {0xed469635, 0x821116c5, 0x3dc0c455, 0xb903aee5, 0x97ece675, 0xa9847b05, 0xe4577c95, 0x5007fb25, 0xebdd06b5, 0xa252af45, 0x59aa04d5, 0x31791765, 0xfd3af6f5, 0x0bdfb385, 0x4c5c5d15, 0xdf3b03a5, }; for (i = 0; i < 16; i++) { if (a[i] - b[i] != c[i]) return i; @@ -85,9 +85,9 @@ int testsubu() int testmulu() { int i; - unsigned int a[16] = {0xc8fb2a4d, 0xb9e89321, 0x94f4fe35, 0xb2451f89, 0xb9b5eb1d, 0xe07094f1, 0xa4be9105, 0x7c1d9359, 0x27938fed, 0xa242bac1, 0xde3d87d5, 0xc39aab29, 0x25c918bd, 0xa3240491, 0xa2c6e2a5, 0xe4a166f9, }; - unsigned int b[16] = {0xdb5893dc, 0x52e4a960, 0x4f6cb824, 0xa452a428, 0xe6cf916c, 0x0537e3f0, 0x637f3fb4, 0x20fc88b8, 0x6b6de2fc, 0x033cb280, 0x55019b44, 0xcc488148, 0x4394888c, 0xb5a41510, 0x93f4cad4, 0x66878dd8, }; - unsigned int c[16] = {0x5a9a912c, 0xdbbbf560, 0xa285d774, 0x00e2b168, 0x8d5d9d3c, 0xf26454f0, 0x9c293284, 0x17252ff8, 0x9139e74c, 0x8f739280, 0x8a6b0b94, 0xc347cc88, 0x4361ef5c, 0x98842e10, 0x7fcde2a4, 0x51350718, }; + unsigned int a[16] = {0x2368eb3e, 0xdffcef62, 0xfff97ec6, 0x344e1d6a, 0xce038f4e, 0x6a1fd872, 0x94ca3cd6, 0xa7af407a, 0x67a4a75e, 0x258d7582, 0x667deee6, 0x571f978a, 0x8e55336e, 0xe31ec692, 0x59bd94f6, 0x6c18229a, }; + unsigned int b[16] = {0x36225509, 0x5debd89d, 0xc238ba71, 0x7b4a6e85, 0x3616a8d9, 0xc09b5d6d, 0xb072c041, 0x57a74555, 0x7bc7a0a9, 0x833ac63d, 0x0cd3ea11, 0x25a68025, 0x911a3c79, 0xd73f130d, 0x0d6137e1, 0x8cdd1ef5, }; + unsigned int c[16] = {0x6707db2e, 0x210f7f1a, 0x0a8cd166, 0x2bdcd412, 0xbbc3a91e, 0x4e36928a, 0xac45f256, 0x6f274a82, 0x985f3d0e, 0x810b8bfa, 0x9a4d1946, 0x98d1e6f2, 0xc57f16fe, 0x4d3aeb6a, 0x89d6c636, 0x5e192962, }; for (i = 0; i < 16; i++) { if (a[i] * b[i] != c[i]) return i; @@ -97,9 +97,9 @@ int testmulu() int testdivu() { int i; - unsigned int a[16] = {0xc8fb2a4d, 0xb9e89321, 0x94f4fe35, 0xb2451f89, 0xb9b5eb1d, 0xe07094f1, 0xa4be9105, 0x7c1d9359, 0x27938fed, 0xa242bac1, 0xde3d87d5, 0xc39aab29, 0x25c918bd, 0xa3240491, 0xa2c6e2a5, 0xe4a166f9, }; - unsigned int b[16] = {0xdb5893dc, 0x52e4a960, 0x4f6cb824, 0xa452a428, 0xe6cf916c, 0x0537e3f0, 0x637f3fb4, 0x20fc88b8, 0x6b6de2fc, 0x033cb280, 0x55019b44, 0xcc488148, 0x4394888c, 0xb5a41510, 0x93f4cad4, 0x66878dd8, }; - unsigned int c[16] = {0x00000000, 0x00000002, 0x00000001, 0x00000001, 0x00000000, 0x0000002b, 0x00000001, 0x00000003, 0x00000000, 0x00000032, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000002, }; + unsigned int a[16] = {0x2368eb3e, 0xdffcef62, 0xfff97ec6, 0x344e1d6a, 0xce038f4e, 0x6a1fd872, 0x94ca3cd6, 0xa7af407a, 0x67a4a75e, 0x258d7582, 0x667deee6, 0x571f978a, 0x8e55336e, 0xe31ec692, 0x59bd94f6, 0x6c18229a, }; + unsigned int b[16] = {0x36225509, 0x5debd89d, 0xc238ba71, 0x7b4a6e85, 0x3616a8d9, 0xc09b5d6d, 0xb072c041, 0x57a74555, 0x7bc7a0a9, 0x833ac63d, 0x0cd3ea11, 0x25a68025, 0x911a3c79, 0xd73f130d, 0x0d6137e1, 0x8cdd1ef5, }; + unsigned int c[16] = {0x00000000, 0x00000002, 0x00000001, 0x00000000, 0x00000003, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000007, 0x00000002, 0x00000000, 0x00000001, 0x00000006, 0x00000000, }; for (i = 0; i < 16; i++) { if (a[i] / b[i] != c[i]) return i; @@ -109,9 +109,9 @@ int testdivu() int testmodu() { int i; - unsigned int a[16] = {0xc8fb2a4d, 0xb9e89321, 0x94f4fe35, 0xb2451f89, 0xb9b5eb1d, 0xe07094f1, 0xa4be9105, 0x7c1d9359, 0x27938fed, 0xa242bac1, 0xde3d87d5, 0xc39aab29, 0x25c918bd, 0xa3240491, 0xa2c6e2a5, 0xe4a166f9, }; - unsigned int b[16] = {0xdb5893dc, 0x52e4a960, 0x4f6cb824, 0xa452a428, 0xe6cf916c, 0x0537e3f0, 0x637f3fb4, 0x20fc88b8, 0x6b6de2fc, 0x033cb280, 0x55019b44, 0xcc488148, 0x4394888c, 0xb5a41510, 0x93f4cad4, 0x66878dd8, }; - unsigned int c[16] = {0xc8fb2a4d, 0x141f4061, 0x45884611, 0x0df27b61, 0xb9b5eb1d, 0x000d4ba1, 0x413f5151, 0x1927f931, 0x27938fed, 0x0067ddc1, 0x343a514d, 0xc39aab29, 0x25c918bd, 0xa3240491, 0x0ed217d1, 0x17924b49, }; + unsigned int a[16] = {0x2368eb3e, 0xdffcef62, 0xfff97ec6, 0x344e1d6a, 0xce038f4e, 0x6a1fd872, 0x94ca3cd6, 0xa7af407a, 0x67a4a75e, 0x258d7582, 0x667deee6, 0x571f978a, 0x8e55336e, 0xe31ec692, 0x59bd94f6, 0x6c18229a, }; + unsigned int b[16] = {0x36225509, 0x5debd89d, 0xc238ba71, 0x7b4a6e85, 0x3616a8d9, 0xc09b5d6d, 0xb072c041, 0x57a74555, 0x7bc7a0a9, 0x833ac63d, 0x0cd3ea11, 0x25a68025, 0x911a3c79, 0xd73f130d, 0x0d6137e1, 0x8cdd1ef5, }; + unsigned int c[16] = {0x2368eb3e, 0x24253e28, 0x3dc0c455, 0x344e1d6a, 0x2bbf94c3, 0x6a1fd872, 0x94ca3cd6, 0x5007fb25, 0x67a4a75e, 0x258d7582, 0x0cb2886f, 0x0bd29740, 0x8e55336e, 0x0bdfb385, 0x097645b0, 0x6c18229a, }; for (i = 0; i < 16; i++) { if (a[i] % b[i] != c[i]) return i; diff --git a/examples/hdl4se_riscv/verilog/axi/riscv_core_with_axi_master.v b/examples/hdl4se_riscv/verilog/axi/riscv_core_with_axi_master.v index 8700219a7f082b98f316af1faebf84bc19036964..0b7bcc7f01bf8e87901b38368be2228a611fc150 100644 --- a/examples/hdl4se_riscv/verilog/axi/riscv_core_with_axi_master.v +++ b/examples/hdl4se_riscv/verilog/axi/riscv_core_with_axi_master.v @@ -30,7 +30,7 @@ module riscv_core_with_axi_master ( input wire wARReady, //ReadData - output wire wRReady + output wire wRReady, input wire wRValid, input wire [31 : 0] bRData, input wire [1 : 0] bRResp @@ -54,6 +54,7 @@ module riscv_core_with_axi_master ( wire wWrite, wRead, wReadReady, wWriteReady; wire [31:0] bWriteAddr, bWriteData, bReadAddr, bReadData, bReadDataRam, bReadDataKey; + wire [3:0] bWriteMask; wire [4:0] regno; wire [3:0] regena; @@ -66,8 +67,34 @@ module riscv_core_with_axi_master ( wire regwren2; wire [31:0] regrddata2; + reg [31:0] lastreadaddr; + reg lastread; + + always @(posedge wClk) + if (~nwReset) begin + lastreadaddr <= 0; + lastread <= 0; + end else begin + lastreadaddr <= bReadAddr; + lastread <= wRead; + end + + assign bReadData = + ((lastreadaddr & 32'hffffff00) == 32'hf0000000) ? bRData : ( + ((lastreadaddr & 32'hff000000) == 32'h00000000) ? bReadDataRam : (32'h0) + ); + + assign wReadReady = ((lastreadaddr & 32'hf0000000) == 32'hf0000000) ? wRValid : ( + ((lastreadaddr & 32'hfff00000) == 32'h00000000) ? lastread : (0) + ); + + + wire [29:0] ramaddr; + assign ramaddr = wWrite?bWriteAddr[31:2]:bReadAddr[31:2]; + regfile regs(regno, regena, wClk, regwrdata, regwren, regrddata); regfile regs2(regno2, regena2, wClk, regwrdata2, regwren2, regrddata2); + ram4kB ram(ramaddr, ~bWriteMask, wClk, bWriteData, ((bWriteAddr & 32'hff000000) == 0)?wWrite:1'b0, bReadDataRam); riscv_core core(wClk, nwReset, wWrite, bWriteAddr, bWriteData, bWriteMask, wWriteReady, wRead, bReadAddr, bReadData, wReadReady, @@ -89,9 +116,7 @@ module riscv_core_with_axi_master ( awvalid <= 1'b0; end - assign wWriteReady = (wWrite || awvalid) && wAWReady; - - always @(*) + always @(wWrite or awvalid or bWriteAddr or awaddr) begin axi_awvalid = wWrite ? 1'b1 : awvalid; axi_awaddr = wWrite ? bWriteAddr : awaddr; @@ -101,7 +126,7 @@ module riscv_core_with_axi_master ( reg [31:0] wdata; reg [3:0] wstrb; reg wvalid; - always @(wClk) + always @(posedge wClk) begin if (~nwReset) begin wvalid <= 1'b0; @@ -114,7 +139,9 @@ module riscv_core_with_axi_master ( end end - always @(*) + assign wWriteReady = ((wWrite || wvalid) && wWReady) || ((bWriteAddr & 32'hfff00000) == 32'h00000000); + + always @(wWrite or wvalid or bWriteData or wdata or bWriteMask or wstrb) begin axi_wvalid = wWrite ? 1'b1 : wvalid; axi_wdata = wWrite ? bWriteData : wdata; @@ -134,14 +161,10 @@ module riscv_core_with_axi_master ( arvalid <= 1'b0; end - assign wReadyReady = (wRead || arvalid) && wARReady; - - always @(*) + always @(wRead or arvalid or bReadAddr or araddr) begin axi_arvalid = wRead ? 1'b1 : arvalid; axi_araddr = wRead ? bReadAddr : araddr; end - assign bReadData = bRData; - endmodule diff --git a/examples/hdl4se_riscv/verilog/axi/riscv_core_with_axi_master.v.bak b/examples/hdl4se_riscv/verilog/axi/riscv_core_with_axi_master.v.bak new file mode 100644 index 0000000000000000000000000000000000000000..353357aae49d7ccd6dbb7fd6a173a5e245cc7426 --- /dev/null +++ b/examples/hdl4se_riscv/verilog/axi/riscv_core_with_axi_master.v.bak @@ -0,0 +1,169 @@ + +`timescale 1 ns / 1 ps + +module riscv_core_with_axi_master ( + // clock and reset + input wire wClk, + input wire nwReset, + + // Write Address + output wire wAWValid, + output wire [31 : 0] bAWAddr, + output wire [2 : 0] bAWProt, + input wire wAWReady, + + // Write Data + output wire wWValid, + output wire [31 : 0] bWData, + output wire [3 : 0] bWStrb, + input wire wWReady, + + // Write Response + output wire wBReady, + input wire [1 : 0] bBResp, + input wire wBValid, + + // ReadAddr + output wire wARValid, + output wire [31 : 0] bARAddr, + output wire [2 : 0] bARProt, + input wire wARReady, + + //ReadData + output wire wRReady, + input wire wRValid, + input wire [31 : 0] bRData, + input wire [1 : 0] bRResp +); + + reg axi_awvalid; assign wAWValid = axi_awvalid; + reg [31:0] axi_awaddr; assign bAWAddr = axi_awaddr; + assign bAWProt = 3'b000; + + reg axi_wvalid; assign wWValid = axi_wvalid; + reg [31:0] axi_wdata; assign bWData = axi_wdata; + reg [3:0] axi_wstrb; assign bWStrb = axi_wstrb; + + assign wBReady = 1'b1; + + reg axi_arvalid; assign wARValid = axi_arvalid; + reg [31:0] axi_araddr; assign bARAddr = axi_araddr; + assign bARProt = 3'b001; + + assign wRReady = 1'b1; + + wire wWrite, wRead, wReadReady, wWriteReady; + wire [31:0] bWriteAddr, bWriteData, bReadAddr, bReadData, bReadDataRam, bReadDataKey; + + wire [4:0] regno; + wire [3:0] regena; + wire [31:0] regwrdata; + wire regwren; + wire [31:0] regrddata; + wire [4:0] regno2; + wire [3:0] regena2; + wire [31:0] regwrdata2; + wire regwren2; + wire [31:0] regrddata2; + + reg [31:0] lastreadaddr; + reg lastread; + + always @(posedge wClk) + if (~nwReset) begin + lastreadaddr <= 0; + lastread <= 0; + end else begin + lastreadaddr <= bReadAddr; + lastread <= wRead; + end + + assign bReadData = + ((lastreadaddr & 32'hffffff00) == 32'hf0000000) ? bRData : ( + ((lastreadaddr & 32'hff000000) == 32'h00000000) ? bReadDataRam : (32'h0) + ); + + assign wReadReady = ((lastreadaddr & 32'hf0000000) == 32'hf0000000) ? bRData : ( + ((lastreadaddr & 32'hfff00000) == 32'h00000000) ? lastread : (0) + ); + + + wire [29:0] ramaddr; + assign ramaddr = wWrite?bWriteAddr[31:2]:bReadAddr[31:2]; + + regfile regs(regno, regena, wClk, regwrdata, regwren, regrddata); + regfile regs2(regno2, regena2, wClk, regwrdata2, regwren2, regrddata2); + ram4kB ram(ramaddr, ~bWriteMask, wClk, bWriteData, ((bWriteAddr & 32'hff000000) == 0)?wWrite:1'b0, bReadDataRam); + riscv_core core(wClk, nwReset, + wWrite, bWriteAddr, bWriteData, bWriteMask, wWriteReady, + wRead, bReadAddr, bReadData, wReadReady, + regno, regena, regwrdata, regwren, regrddata, + regno2, regena2, regwrdata2, regwren2, regrddata2 + ); + + + //Write Address + reg [31:0] awaddr; + reg awvalid; + always @(posedge wClk) + if (~nwReset) begin + awvalid <= 1'b0; + end else if (wWrite) begin + awaddr <= bWriteAddr; + awvalid <= 1'b1; + end else if (wAWReady) begin + awvalid <= 1'b0; + end + + always @(*) + begin + axi_awvalid = wWrite ? 1'b1 : awvalid; + axi_awaddr = wWrite ? bWriteAddr : awaddr; + end + + /* Write Data */ + reg [31:0] wdata; + reg [3:0] wstrb; + reg wvalid; + always @(wClk) + begin + if (~nwReset) begin + wvalid <= 1'b0; + end if (wWrite) begin + wdata <= bWriteData; + wstrb <= ~bWriteMask; + wvalid <= 1'b1; + end if (wWReady) begin + wvalid <= 1'b0; + end + end + + assign wWriteReady = ((wWrite || wvalid) && wWReady) || ((bWriteAddr & 32'hfff00000) == 32'h00000000); + + always @(*) + begin + axi_wvalid = wWrite ? 1'b1 : wvalid; + axi_wdata = wWrite ? bWriteData : wdata; + axi_wstrb = wWrite ? ~bWriteMask : wstrb; + end + + //Read Address + reg [31:0] araddr; + reg arvalid; + always @(posedge wClk) + if (~nwReset) begin + arvalid <= 1'b0; + end else if (wRead) begin + araddr <= bReadAddr; + arvalid <= 1'b1; + end else if (wARReady) begin + arvalid <= 1'b0; + end + + always @(*) + begin + axi_arvalid = wRead ? 1'b1 : arvalid; + axi_araddr = wRead ? bReadAddr : araddr; + end + +endmodule