Difference between revisions of "RETRO-EP4CE15"
Jump to navigation
Jump to search
Blwikiadmin (talk | contribs) |
Blwikiadmin (talk | contribs) |
||
Line 314: | Line 314: | ||
set_location_assignment PIN_F21 -to hSync | set_location_assignment PIN_F21 -to hSync | ||
set_location_assignment PIN_F22 -to vSync | set_location_assignment PIN_F22 -to vSync | ||
+ | # Serial | ||
+ | set_location_assignment PIN_H22 -to o_SerTxd | ||
+ | set_location_assignment PIN_H21 -to i_SerRxd | ||
+ | set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to i_SerRxd | ||
# PS/2 | # PS/2 | ||
set_location_assignment PIN_R1 -to ps2Clk | set_location_assignment PIN_R1 -to ps2Clk |
Revision as of 11:04, 16 February 2020
Contents
Features
- Purchased FPGA Card
- QMTECH EP4CE15 Board
- Altera Cyclone IV EP4CE15F23C8N FPGA
- Winbond W9825C6KH-6 4M X 4 Banks x 16 bits SDRAM
- 3 Switches
- DC power jack
- Power supply
- 1MB SRAM
- For banked use in CP/M
- 6 bit video on VGA
- PS/2 connector
- FTDI USB to serial converter
- Tx/Rx LEDs
- SD or SDHC Card
- 2x3 Header
Connectors
U7
U8
Headers/Jumpers
H1 - Power
- Power from USB 5V
H2 - I/O Power Source
- 1-2 = FPGA Power
- 2-3 = On-board Regulator
J2 - PS/2 Keyboard
J3 - Header
P2 - PS/2 Keyboard
P3 - USB-C
P4 - SD Card
Summing Resistor DAC
- 5% resistors are "good enough"
- Goal is 1V into 75 Ohm VGA load
- 3.3V drive
- FPGA has 8 mA drive
- Using 8 mA (max)
- R4 330 Ohm= 0.8 mA to -8.3 mA
- R3 680 Ohm = 0.8 mA to -4.4 mA
- Output in 4 steps
- 0V
- 0.27V
- 0.56V
- 0.8V
Voltage Steps
Current Steps (R4)
Schematic
Pin List
set_location_assignment PIN_T2 -to i_CLOCK_50 set_location_assignment PIN_W13 -to n_reset set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to n_reset set_location_assignment PIN_R1 -to ps2Clk set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to ps2Clk set_location_assignment PIN_R2 -to ps2Data set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to ps2Data set_location_assignment PIN_C22 -to serSelect set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to serSelect set_location_assignment PIN_A10 -to cts1 set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to cts1 set_location_assignment PIN_A13 -to rts1 set_location_assignment PIN_B10 -to rxd1 set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to rxd1 set_location_assignment PIN_B13 -to txd1 set_location_assignment PIN_B17 -to videoB0 set_location_assignment PIN_A17 -to videoB1 set_location_assignment PIN_B16 -to videoG0 set_location_assignment PIN_A16 -to videoG1 set_location_assignment PIN_B20 -to videoR0 set_location_assignment PIN_A15 -to videoR1 set_location_assignment PIN_B18 -to hSync set_location_assignment PIN_A18 -to vSync set_location_assignment PIN_F1 -to n_sRamCS set_location_assignment PIN_B4 -to n_sRamWE set_location_assignment PIN_J2 -to n_sRamOE set_location_assignment PIN_E1 -to sramData[0] set_location_assignment PIN_C1 -to sramData[1] set_location_assignment PIN_B1 -to sramData[2] set_location_assignment PIN_B3 -to sramData[3] set_location_assignment PIN_B2 -to sramData[4] set_location_assignment PIN_C2 -to sramData[5] set_location_assignment PIN_D2 -to sramData[6] set_location_assignment PIN_F2 -to sramData[7] set_location_assignment PIN_H1 -to sramAddress[0] set_location_assignment PIN_J1 -to sramAddress[1] set_location_assignment PIN_M1 -to sramAddress[2] set_location_assignment PIN_N1 -to sramAddress[3] set_location_assignment PIN_A8 -to sramAddress[15] set_location_assignment PIN_A7 -to sramAddress[14] set_location_assignment PIN_A6 -to sramAddress[13] set_location_assignment PIN_A5 -to sramAddress[12] set_location_assignment PIN_C3 -to sramAddress[11] set_location_assignment PIN_A4 -to sramAddress[10] set_location_assignment PIN_A3 -to sramAddress[9] set_location_assignment PIN_H2 -to sramAddress[8] set_location_assignment PIN_M2 -to sramAddress[7] set_location_assignment PIN_N2 -to sramAddress[6] set_location_assignment PIN_P2 -to sramAddress[5] set_location_assignment PIN_P1 -to sramAddress[4] set_location_assignment PIN_B5 -to sramAddress[18] set_location_assignment PIN_B6 -to sramAddress[17] set_location_assignment PIN_B7 -to sramAddress[16] # SDRAM set_location_assignment PIN_Y6 -to sdRamClk set_location_assignment PIN_W6 -to sdRamClkEn set_location_assignment PIN_AA4 -to n_sdRamCas set_location_assignment PIN_AA3 -to n_sdRamCe set_location_assignment PIN_AB3 -to n_sdRamRas set_location_assignment PIN_AB4 -to n_sdRamWe set_location_assignment PIN_V2 -to sdRamAddr[0] set_location_assignment PIN_V1 -to sdRamAddr[1] set_location_assignment PIN_U2 -to sdRamAddr[2] set_location_assignment PIN_U1 -to sdRamAddr[3] set_location_assignment PIN_V3 -to sdRamAddr[4] set_location_assignment PIN_V4 -to sdRamAddr[5] set_location_assignment PIN_Y2 -to sdRamAddr[6] set_location_assignment PIN_AA1 -to sdRamAddr[7] set_location_assignment PIN_Y3 -to sdRamAddr[8] set_location_assignment PIN_V5 -to sdRamAddr[9] set_location_assignment PIN_W1 -to sdRamAddr[10] set_location_assignment PIN_Y4 -to sdRamAddr[11] set_location_assignment PIN_V6 -to sdRamAddr[12] set_location_assignment PIN_Y1 -to sdRamAddr[13] set_location_assignment PIN_W2 -to sdRamAddr[14] set_location_assignment PIN_AA10 -to sdRamData[0] set_location_assignment PIN_AB9 -to sdRamData[1] set_location_assignment PIN_AA9 -to sdRamData[2] set_location_assignment PIN_AB8 -to sdRamData[3] set_location_assignment PIN_AA8 -to sdRamData[4] set_location_assignment PIN_AB7 -to sdRamData[5] set_location_assignment PIN_AA7 -to sdRamData[6] set_location_assignment PIN_AB5 -to sdRamData[7] set_location_assignment PIN_Y7 -to sdRamData[8] set_location_assignment PIN_W8 -to sdRamData[9] set_location_assignment PIN_Y8 -to sdRamData[10] set_location_assignment PIN_V9 -to sdRamData[11] set_location_assignment PIN_V10 -to sdRamData[12] set_location_assignment PIN_Y10 -to sdRamData[13] set_location_assignment PIN_W10 -to sdRamData[14] set_location_assignment PIN_V11 -to sdRamData[15] set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to hSync set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to n_reset set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ps2Clk set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ps2Data set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to videoB0 set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to videoB1 set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to videoG0 set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to videoG1 set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to videoR0 set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to videoR1 set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to vSync set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to rts1 set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to rxd1 set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to txd1 set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to n_sRamCS set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to n_sRamOE set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to n_sRamWE set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to sramData[0] set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to sramData[1] set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to sramData[2] set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to sramData[3] set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to sramData[4] set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to sramData[5] set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to sramData[6] set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to sramData[7] set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to sramAddress[0] set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to sramAddress[1] set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to sramAddress[2] set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to sramAddress[3] set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to sramAddress[4] set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to sramAddress[5] set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to sramAddress[6] set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to sramAddress[7] set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to sramAddress[8] set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to sramAddress[15] set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to sramAddress[14] set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to sramAddress[13] set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to sramAddress[10] set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to sramAddress[9] set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to sramAddress[11] set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to sramAddress[12] set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to sramAddress[16] set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to sramAddress[17] set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to sramAddress[18]
Multicomp Builds
Checkout
Rev 1 Issues
- Wrong DB15HD footprint
- Change to right footprint ib Rev 2
- USB-C too hard to hand solder
- Changing to USB-B Micro ib Rev 2
- Add 5V header ib Rev 2
Rev 1 Prototype
- VGA connector footprint problem
- Using the J1 connector to VGAX49 card
Signal | VGAX49 Pin | RETRO Pin | FPGA Pin |
---|---|---|---|
R4 | J1-1 | J1-47 | C21 |
R3 | J1-2 | J1-48 | C22 |
G5 | J1-6 | J1-45 | D21 |
G4 | J1-7 | J1-46 | D22 |
B4 | J1-12 | J1-43 | E21 |
B3 | J1-13 | J1-44 | E22 |
HS | J1-17 | J1-41 | F21 |
VS | J1-18 | J1-42 | F22 |
Testing with Multicomp
- VGA (on P1 to VGAX49 Card) works
- PS/2 Keyboard works
- Installed R1, R2 - 10K pull-ups
- 40K SRAM, BASIC UK101 worked
- External SRAM works - Tested 40KB
- CP/M tested - Works with SD Card
- Running ZEXALL
# Video set_location_assignment PIN_C22 -to videoR0 set_location_assignment PIN_C21 -to videoR1 set_location_assignment PIN_D22 -to videoG0 set_location_assignment PIN_D21 -to videoG1 set_location_assignment PIN_E22 -to videoB0 set_location_assignment PIN_E21 -to videoB1 set_location_assignment PIN_F21 -to hSync set_location_assignment PIN_F22 -to vSync # Serial set_location_assignment PIN_H22 -to o_SerTxd set_location_assignment PIN_H21 -to i_SerRxd set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to i_SerRxd # PS/2 set_location_assignment PIN_R1 -to ps2Clk set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to ps2Clk set_location_assignment PIN_R2 -to ps2Data set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to ps2Data