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
+
+
+
+ Name |
+ Location |
+ Direction |
+ Standard |
+
+
+ ADC_CONVST |
+ AJ4 |
+ output |
+ 3.3-V LVTTL |
+
+
+ ADC_DIN |
+ AK4 |
+ output |
+ 3.3-V LVTTL |
+
+
+ ADC_DOUT |
+ AK3 |
+ input |
+ 3.3-V LVTTL |
+
+
+ ADC_SCLK |
+ AK2 |
+ output |
+ 3.3-V LVTTL |
+
+
+
+Audio
+
+
+
+ Name |
+ Location |
+ Direction |
+ Standard |
+
+
+ AUD_ADCDAT |
+ K7 |
+ input |
+ 3.3-V LVTTL |
+
+
+ AUD_ADCLRCK |
+ K8 |
+ inout |
+ 3.3-V LVTTL |
+
+
+ AUD_BCLK |
+ H7 |
+ inout |
+ 3.3-V LVTTL |
+
+
+ AUD_DACDAT |
+ J7 |
+ output |
+ 3.3-V LVTTL |
+
+
+ AUD_DACLRCK |
+ H8 |
+ inout |
+ 3.3-V LVTTL |
+
+
+ AUD_XCK |
+ G7 |
+ output |
+ 3.3-V LVTTL |
+
+
+
+CLOCK
+
+
+
+ Name |
+ Location |
+ Direction |
+ Standard |
+
+
+ CLOCK2_50 |
+ AA16 |
+ input |
+ 3.3-V LVTTL |
+
+
+ CLOCK3_50 |
+ Y26 |
+ input |
+ 3.3-V LVTTL |
+
+
+ CLOCK4_50 |
+ K14 |
+ input |
+ 3.3-V LVTTL |
+
+
+ CLOCK_50 |
+ AF14 |
+ input |
+ 3.3-V LVTTL |
+
+
+
+SDRAM
+
+
+
+ Name |
+ Location |
+ Direction |
+ Standard |
+
+
+ DRAM_ADDR[0] |
+ AK14 |
+ output |
+ 3.3-V LVTTL |
+
+
+ DRAM_ADDR[1] |
+ AH14 |
+ output |
+ 3.3-V LVTTL |
+
+
+ DRAM_ADDR[2] |
+ AG15 |
+ output |
+ 3.3-V LVTTL |
+
+
+ DRAM_ADDR[3] |
+ AE14 |
+ output |
+ 3.3-V LVTTL |
+
+
+ DRAM_ADDR[4] |
+ AB15 |
+ output |
+ 3.3-V LVTTL |
+
+
+ DRAM_ADDR[5] |
+ AC14 |
+ output |
+ 3.3-V LVTTL |
+
+
+ DRAM_ADDR[6] |
+ AD14 |
+ output |
+ 3.3-V LVTTL |
+
+
+ DRAM_ADDR[7] |
+ AF15 |
+ output |
+ 3.3-V LVTTL |
+
+
+ DRAM_ADDR[8] |
+ AH15 |
+ output |
+ 3.3-V LVTTL |
+
+
+ DRAM_ADDR[9] |
+ AG13 |
+ output |
+ 3.3-V LVTTL |
+
+
+ DRAM_ADDR[10] |
+ AG12 |
+ output |
+ 3.3-V LVTTL |
+
+
+ DRAM_ADDR[11] |
+ AH13 |
+ output |
+ 3.3-V LVTTL |
+
+
+ DRAM_ADDR[12] |
+ AJ14 |
+ output |
+ 3.3-V LVTTL |
+
+
+ DRAM_BA[0] |
+ AF13 |
+ output |
+ 3.3-V LVTTL |
+
+
+ DRAM_BA[1] |
+ AJ12 |
+ output |
+ 3.3-V LVTTL |
+
+
+ DRAM_CAS_N |
+ AF11 |
+ output |
+ 3.3-V LVTTL |
+
+
+ DRAM_CKE |
+ AK13 |
+ output |
+ 3.3-V LVTTL |
+
+
+ DRAM_CLK |
+ AH12 |
+ output |
+ 3.3-V LVTTL |
+
+
+ DRAM_CS_N |
+ AG11 |
+ output |
+ 3.3-V LVTTL |
+
+
+ DRAM_DQ[0] |
+ AK6 |
+ inout |
+ 3.3-V LVTTL |
+
+
+ DRAM_DQ[1] |
+ AJ7 |
+ inout |
+ 3.3-V LVTTL |
+
+
+ DRAM_DQ[2] |
+ AK7 |
+ inout |
+ 3.3-V LVTTL |
+
+
+ DRAM_DQ[3] |
+ AK8 |
+ inout |
+ 3.3-V LVTTL |
+
+
+ DRAM_DQ[4] |
+ AK9 |
+ inout |
+ 3.3-V LVTTL |
+
+
+ DRAM_DQ[5] |
+ AG10 |
+ inout |
+ 3.3-V LVTTL |
+
+
+ DRAM_DQ[6] |
+ AK11 |
+ inout |
+ 3.3-V LVTTL |
+
+
+ DRAM_DQ[7] |
+ AJ11 |
+ inout |
+ 3.3-V LVTTL |
+
+
+ DRAM_DQ[8] |
+ AH10 |
+ inout |
+ 3.3-V LVTTL |
+
+
+ DRAM_DQ[9] |
+ AJ10 |
+ inout |
+ 3.3-V LVTTL |
+
+
+ DRAM_DQ[10] |
+ AJ9 |
+ inout |
+ 3.3-V LVTTL |
+
+
+ DRAM_DQ[11] |
+ AH9 |
+ inout |
+ 3.3-V LVTTL |
+
+
+ DRAM_DQ[12] |
+ AH8 |
+ inout |
+ 3.3-V LVTTL |
+
+
+ DRAM_DQ[13] |
+ AH7 |
+ inout |
+ 3.3-V LVTTL |
+
+
+ DRAM_DQ[14] |
+ AJ6 |
+ inout |
+ 3.3-V LVTTL |
+
+
+ DRAM_DQ[15] |
+ AJ5 |
+ inout |
+ 3.3-V LVTTL |
+
+
+ DRAM_LDQM |
+ AB13 |
+ output |
+ 3.3-V LVTTL |
+
+
+ DRAM_RAS_N |
+ AE13 |
+ output |
+ 3.3-V LVTTL |
+
+
+ DRAM_UDQM |
+ AK12 |
+ output |
+ 3.3-V LVTTL |
+
+
+ DRAM_WE_N |
+ AA13 |
+ output |
+ 3.3-V LVTTL |
+
+
+
+I2C for Audio and Video-In
+
+
+
+ Name |
+ Location |
+ Direction |
+ Standard |
+
+
+ FPGA_I2C_SCLK |
+ J12 |
+ output |
+ 3.3-V LVTTL |
+
+
+ FPGA_I2C_SDAT |
+ K12 |
+ inout |
+ 3.3-V LVTTL |
+
+
+
+SEG7
+
+
+
+ Name |
+ Location |
+ Direction |
+ Standard |
+
+
+ HEX0[0] |
+ AE26 |
+ output |
+ 3.3-V LVTTL |
+
+
+ HEX0[1] |
+ AE27 |
+ output |
+ 3.3-V LVTTL |
+
+
+ HEX0[2] |
+ AE28 |
+ output |
+ 3.3-V LVTTL |
+
+
+ HEX0[3] |
+ AG27 |
+ output |
+ 3.3-V LVTTL |
+
+
+ HEX0[4] |
+ AF28 |
+ output |
+ 3.3-V LVTTL |
+
+
+ HEX0[5] |
+ AG28 |
+ output |
+ 3.3-V LVTTL |
+
+
+ HEX0[6] |
+ AH28 |
+ output |
+ 3.3-V LVTTL |
+
+
+ HEX1[0] |
+ AJ29 |
+ output |
+ 3.3-V LVTTL |
+
+
+ HEX1[1] |
+ AH29 |
+ output |
+ 3.3-V LVTTL |
+
+
+ HEX1[2] |
+ AH30 |
+ output |
+ 3.3-V LVTTL |
+
+
+ HEX1[3] |
+ AG30 |
+ output |
+ 3.3-V LVTTL |
+
+
+ HEX1[4] |
+ AF29 |
+ output |
+ 3.3-V LVTTL |
+
+
+ HEX1[5] |
+ AF30 |
+ output |
+ 3.3-V LVTTL |
+
+
+ HEX1[6] |
+ AD27 |
+ output |
+ 3.3-V LVTTL |
+
+
+ HEX2[0] |
+ AB23 |
+ output |
+ 3.3-V LVTTL |
+
+
+ HEX2[1] |
+ AE29 |
+ output |
+ 3.3-V LVTTL |
+
+
+ HEX2[2] |
+ AD29 |
+ output |
+ 3.3-V LVTTL |
+
+
+ HEX2[3] |
+ AC28 |
+ output |
+ 3.3-V LVTTL |
+
+
+ HEX2[4] |
+ AD30 |
+ output |
+ 3.3-V LVTTL |
+
+
+ HEX2[5] |
+ AC29 |
+ output |
+ 3.3-V LVTTL |
+
+
+ HEX2[6] |
+ AC30 |
+ output |
+ 3.3-V LVTTL |
+
+
+ HEX3[0] |
+ AD26 |
+ output |
+ 3.3-V LVTTL |
+
+
+ HEX3[1] |
+ AC27 |
+ output |
+ 3.3-V LVTTL |
+
+
+ HEX3[2] |
+ AD25 |
+ output |
+ 3.3-V LVTTL |
+
+
+ HEX3[3] |
+ AC25 |
+ output |
+ 3.3-V LVTTL |
+
+
+ HEX3[4] |
+ AB28 |
+ output |
+ 3.3-V LVTTL |
+
+
+ HEX3[5] |
+ AB25 |
+ output |
+ 3.3-V LVTTL |
+
+
+ HEX3[6] |
+ AB22 |
+ output |
+ 3.3-V LVTTL |
+
+
+ HEX4[0] |
+ AA24 |
+ output |
+ 3.3-V LVTTL |
+
+
+ HEX4[1] |
+ Y23 |
+ output |
+ 3.3-V LVTTL |
+
+
+ HEX4[2] |
+ Y24 |
+ output |
+ 3.3-V LVTTL |
+
+
+ HEX4[3] |
+ W22 |
+ output |
+ 3.3-V LVTTL |
+
+
+ HEX4[4] |
+ W24 |
+ output |
+ 3.3-V LVTTL |
+
+
+ HEX4[5] |
+ V23 |
+ output |
+ 3.3-V LVTTL |
+
+
+ HEX4[6] |
+ W25 |
+ output |
+ 3.3-V LVTTL |
+
+
+ HEX5[0] |
+ V25 |
+ output |
+ 3.3-V LVTTL |
+
+
+ HEX5[1] |
+ AA28 |
+ output |
+ 3.3-V LVTTL |
+
+
+ HEX5[2] |
+ Y27 |
+ output |
+ 3.3-V LVTTL |
+
+
+ HEX5[3] |
+ AB27 |
+ output |
+ 3.3-V LVTTL |
+
+
+ HEX5[4] |
+ AB26 |
+ output |
+ 3.3-V LVTTL |
+
+
+ HEX5[5] |
+ AA26 |
+ output |
+ 3.3-V LVTTL |
+
+
+ HEX5[6] |
+ AA25 |
+ output |
+ 3.3-V LVTTL |
+
+
+
+IR
+
+
+
+ Name |
+ Location |
+ Direction |
+ Standard |
+
+
+ IRDA_RXD |
+ AA30 |
+ input |
+ 3.3-V LVTTL |
+
+
+ IRDA_TXD |
+ AB30 |
+ output |
+ 3.3-V LVTTL |
+
+
+
+KEY
+
+
+
+ Name |
+ Location |
+ Direction |
+ Standard |
+
+
+ KEY[0] |
+ AA14 |
+ input |
+ 3.3-V LVTTL |
+
+
+ KEY[1] |
+ AA15 |
+ input |
+ 3.3-V LVTTL |
+
+
+ KEY[2] |
+ W15 |
+ input |
+ 3.3-V LVTTL |
+
+
+ KEY[3] |
+ Y16 |
+ input |
+ 3.3-V LVTTL |
+
+
+
+LED
+
+
+
+ Name |
+ Location |
+ Direction |
+ Standard |
+
+
+ LEDR[0] |
+ V16 |
+ output |
+ 3.3-V LVTTL |
+
+
+ LEDR[1] |
+ W16 |
+ output |
+ 3.3-V LVTTL |
+
+
+ LEDR[2] |
+ V17 |
+ output |
+ 3.3-V LVTTL |
+
+
+ LEDR[3] |
+ V18 |
+ output |
+ 3.3-V LVTTL |
+
+
+ LEDR[4] |
+ W17 |
+ output |
+ 3.3-V LVTTL |
+
+
+ LEDR[5] |
+ W19 |
+ output |
+ 3.3-V LVTTL |
+
+
+ LEDR[6] |
+ Y19 |
+ output |
+ 3.3-V LVTTL |
+
+
+ LEDR[7] |
+ W20 |
+ output |
+ 3.3-V LVTTL |
+
+
+ LEDR[8] |
+ W21 |
+ output |
+ 3.3-V LVTTL |
+
+
+ LEDR[9] |
+ Y21 |
+ output |
+ 3.3-V LVTTL |
+
+
+
+PS2
+
+
+
+ Name |
+ Location |
+ Direction |
+ Standard |
+
+
+ PS2_CLK |
+ AD7 |
+ inout |
+ 3.3-V LVTTL |
+
+
+ PS2_CLK2 |
+ AD9 |
+ inout |
+ 3.3-V LVTTL |
+
+
+ PS2_DAT |
+ AE7 |
+ inout |
+ 3.3-V LVTTL |
+
+
+ PS2_DAT2 |
+ AE9 |
+ inout |
+ 3.3-V LVTTL |
+
+
+
+SW
+
+
+
+ Name |
+ Location |
+ Direction |
+ Standard |
+
+
+ SW[0] |
+ AB12 |
+ input |
+ 3.3-V LVTTL |
+
+
+ SW[1] |
+ AC12 |
+ input |
+ 3.3-V LVTTL |
+
+
+ SW[2] |
+ AF9 |
+ input |
+ 3.3-V LVTTL |
+
+
+ SW[3] |
+ AF10 |
+ input |
+ 3.3-V LVTTL |
+
+
+ SW[4] |
+ AD11 |
+ input |
+ 3.3-V LVTTL |
+
+
+ SW[5] |
+ AD12 |
+ input |
+ 3.3-V LVTTL |
+
+
+ SW[6] |
+ AE11 |
+ input |
+ 3.3-V LVTTL |
+
+
+ SW[7] |
+ AC9 |
+ input |
+ 3.3-V LVTTL |
+
+
+ SW[8] |
+ AD10 |
+ input |
+ 3.3-V LVTTL |
+
+
+ SW[9] |
+ AE12 |
+ input |
+ 3.3-V LVTTL |
+
+
+
+Video-In
+
+
+
+ Name |
+ Location |
+ Direction |
+ Standard |
+
+
+ TD_CLK27 |
+ H15 |
+ input |
+ 3.3-V LVTTL |
+
+
+ TD_DATA[0] |
+ D2 |
+ input |
+ 3.3-V LVTTL |
+
+
+ TD_DATA[1] |
+ B1 |
+ input |
+ 3.3-V LVTTL |
+
+
+ TD_DATA[2] |
+ E2 |
+ input |
+ 3.3-V LVTTL |
+
+
+ TD_DATA[3] |
+ B2 |
+ input |
+ 3.3-V LVTTL |
+
+
+ TD_DATA[4] |
+ D1 |
+ input |
+ 3.3-V LVTTL |
+
+
+ TD_DATA[5] |
+ E1 |
+ input |
+ 3.3-V LVTTL |
+
+
+ TD_DATA[6] |
+ C2 |
+ input |
+ 3.3-V LVTTL |
+
+
+ TD_DATA[7] |
+ B3 |
+ input |
+ 3.3-V LVTTL |
+
+
+ TD_HS |
+ A5 |
+ input |
+ 3.3-V LVTTL |
+
+
+ TD_RESET_N |
+ F6 |
+ output |
+ 3.3-V LVTTL |
+
+
+ TD_VS |
+ A3 |
+ input |
+ 3.3-V LVTTL |
+
+
+
+VGA
+
+
+
+ Name |
+ Location |
+ Direction |
+ Standard |
+
+
+ VGA_BLANK_N |
+ F10 |
+ output |
+ 3.3-V LVTTL |
+
+
+ VGA_B[0] |
+ B13 |
+ output |
+ 3.3-V LVTTL |
+
+
+ VGA_B[1] |
+ G13 |
+ output |
+ 3.3-V LVTTL |
+
+
+ VGA_B[2] |
+ H13 |
+ output |
+ 3.3-V LVTTL |
+
+
+ VGA_B[3] |
+ F14 |
+ output |
+ 3.3-V LVTTL |
+
+
+ VGA_B[4] |
+ H14 |
+ output |
+ 3.3-V LVTTL |
+
+
+ VGA_B[5] |
+ F15 |
+ output |
+ 3.3-V LVTTL |
+
+
+ VGA_B[6] |
+ G15 |
+ output |
+ 3.3-V LVTTL |
+
+
+ VGA_B[7] |
+ J14 |
+ output |
+ 3.3-V LVTTL |
+
+
+ VGA_CLK |
+ A11 |
+ output |
+ 3.3-V LVTTL |
+
+
+ VGA_G[0] |
+ J9 |
+ output |
+ 3.3-V LVTTL |
+
+
+ VGA_G[1] |
+ J10 |
+ output |
+ 3.3-V LVTTL |
+
+
+ VGA_G[2] |
+ H12 |
+ output |
+ 3.3-V LVTTL |
+
+
+ VGA_G[3] |
+ G10 |
+ output |
+ 3.3-V LVTTL |
+
+
+ VGA_G[4] |
+ G11 |
+ output |
+ 3.3-V LVTTL |
+
+
+ VGA_G[5] |
+ G12 |
+ output |
+ 3.3-V LVTTL |
+
+
+ VGA_G[6] |
+ F11 |
+ output |
+ 3.3-V LVTTL |
+
+
+ VGA_G[7] |
+ E11 |
+ output |
+ 3.3-V LVTTL |
+
+
+ VGA_HS |
+ B11 |
+ output |
+ 3.3-V LVTTL |
+
+
+ VGA_R[0] |
+ A13 |
+ output |
+ 3.3-V LVTTL |
+
+
+ VGA_R[1] |
+ C13 |
+ output |
+ 3.3-V LVTTL |
+
+
+ VGA_R[2] |
+ E13 |
+ output |
+ 3.3-V LVTTL |
+
+
+ VGA_R[3] |
+ B12 |
+ output |
+ 3.3-V LVTTL |
+
+
+ VGA_R[4] |
+ C12 |
+ output |
+ 3.3-V LVTTL |
+
+
+ VGA_R[5] |
+ D12 |
+ output |
+ 3.3-V LVTTL |
+
+
+ VGA_R[6] |
+ E12 |
+ output |
+ 3.3-V LVTTL |
+
+
+ VGA_R[7] |
+ F13 |
+ output |
+ 3.3-V LVTTL |
+
+
+ VGA_SYNC_N |
+ C10 |
+ output |
+ 3.3-V LVTTL |
+
+
+ VGA_VS |
+ D11 |
+ output |
+ 3.3-V LVTTL |
+
+
+
+GPIO_0 connect to GPIO Default
+
+
+
+ Name |
+ Location |
+ Direction |
+ Standard |
+ GPIO Pin Index |
+
+
+ GPIO[0] |
+ AC18 |
+ inout |
+ 3.3-V LVTTL |
+ 1 |
+
+
+ GPIO[1] |
+ Y17 |
+ inout |
+ 3.3-V LVTTL |
+ 2 |
+
+
+ GPIO[2] |
+ AD17 |
+ inout |
+ 3.3-V LVTTL |
+ 3 |
+
+
+ GPIO[3] |
+ Y18 |
+ inout |
+ 3.3-V LVTTL |
+ 4 |
+
+
+ GPIO[4] |
+ AK16 |
+ inout |
+ 3.3-V LVTTL |
+ 5 |
+
+
+ GPIO[5] |
+ AK18 |
+ inout |
+ 3.3-V LVTTL |
+ 6 |
+
+
+ GPIO[6] |
+ AK19 |
+ inout |
+ 3.3-V LVTTL |
+ 7 |
+
+
+ GPIO[7] |
+ AJ19 |
+ inout |
+ 3.3-V LVTTL |
+ 8 |
+
+
+ GPIO[8] |
+ AJ17 |
+ inout |
+ 3.3-V LVTTL |
+ 9 |
+
+
+ GPIO[9] |
+ AJ16 |
+ inout |
+ 3.3-V LVTTL |
+ 10 |
+
+
+ GPIO[10] |
+ AH18 |
+ inout |
+ 3.3-V LVTTL |
+ 13 |
+
+
+ GPIO[11] |
+ AH17 |
+ inout |
+ 3.3-V LVTTL |
+ 14 |
+
+
+ GPIO[12] |
+ AG16 |
+ inout |
+ 3.3-V LVTTL |
+ 15 |
+
+
+ GPIO[13] |
+ AE16 |
+ inout |
+ 3.3-V LVTTL |
+ 16 |
+
+
+ GPIO[14] |
+ AF16 |
+ inout |
+ 3.3-V LVTTL |
+ 17 |
+
+
+ GPIO[15] |
+ AG17 |
+ inout |
+ 3.3-V LVTTL |
+ 18 |
+
+
+ GPIO[16] |
+ AA18 |
+ inout |
+ 3.3-V LVTTL |
+ 19 |
+
+
+ GPIO[17] |
+ AA19 |
+ inout |
+ 3.3-V LVTTL |
+ 20 |
+
+
+ GPIO[18] |
+ AE17 |
+ inout |
+ 3.3-V LVTTL |
+ 21 |
+
+
+ GPIO[19] |
+ AC20 |
+ inout |
+ 3.3-V LVTTL |
+ 22 |
+
+
+ GPIO[20] |
+ AH19 |
+ inout |
+ 3.3-V LVTTL |
+ 23 |
+
+
+ GPIO[21] |
+ AJ20 |
+ inout |
+ 3.3-V LVTTL |
+ 24 |
+
+
+ GPIO[22] |
+ AH20 |
+ inout |
+ 3.3-V LVTTL |
+ 25 |
+
+
+ GPIO[23] |
+ AK21 |
+ inout |
+ 3.3-V LVTTL |
+ 26 |
+
+
+ GPIO[24] |
+ AD19 |
+ inout |
+ 3.3-V LVTTL |
+ 27 |
+
+
+ GPIO[25] |
+ AD20 |
+ inout |
+ 3.3-V LVTTL |
+ 28 |
+
+
+ GPIO[26] |
+ AE18 |
+ inout |
+ 3.3-V LVTTL |
+ 31 |
+
+
+ GPIO[27] |
+ AE19 |
+ inout |
+ 3.3-V LVTTL |
+ 32 |
+
+
+ GPIO[28] |
+ AF20 |
+ inout |
+ 3.3-V LVTTL |
+ 33 |
+
+
+ GPIO[29] |
+ AF21 |
+ inout |
+ 3.3-V LVTTL |
+ 34 |
+
+
+ GPIO[30] |
+ AF19 |
+ inout |
+ 3.3-V LVTTL |
+ 35 |
+
+
+ GPIO[31] |
+ AG21 |
+ inout |
+ 3.3-V LVTTL |
+ 36 |
+
+
+ GPIO[32] |
+ AF18 |
+ inout |
+ 3.3-V LVTTL |
+ 37 |
+
+
+ GPIO[33] |
+ AG20 |
+ inout |
+ 3.3-V LVTTL |
+ 38 |
+
+
+ GPIO[34] |
+ AG18 |
+ inout |
+ 3.3-V LVTTL |
+ 39 |
+
+
+ GPIO[35] |
+ AJ21 |
+ inout |
+ 3.3-V LVTTL |
+ 40 |
+
+
+
+
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