Go Back

Source code

Details

Name: low_cost_pci_card
Created: Jan 4, 2013
Updated: Jan 10, 2013
SVN Updated: Jan 8, 2013

Other project properties

Category: Prototype board
Language: Verilog & VHDL
Development status: Beta
Additional info: Design done , Specification done
WishBone Compliant: No
License: LGPL

inside pc

javascript:alert(' inside pc ');

top view

javascript:alert(' main image ');

bottom view

javascript:alert(' bottom_view ');

control_panel

javascript:alert(' Windows driver ');

interrupts

javascript:alert(' interrupts ');

testing

javascript:alert(' testing ');

pcb samples

javascript:alert(' pcb samples ');

part list

Various:
5V input SMT jack 3.5mm (Ebay)
PROG 10pin 2.54mm JTAG header (2.5V)
D1,D2,D3 0805 led (marking cathode side)
IO 20pins 20pins 2.54 double row male header
TX/RX PLT133_T6A/PLR135_T10 everlight
OSC50Mhz ABRACON_3V3_ASV_SERIE 50Mhz (mouser ASV-50.000MHZ-EJ-T)
L1,L2,L3 3.3uH 1.1A inductors 0806 size (mouser ref CKP20163R3)

Ics:
REG1 ASM1117-ADJ(1.25V)
IC1-IC5 QS3861PAG8 (IDT) (maybe replaced by compatible part SN74CBTD3861PWR)
IC6 XC3S500E PQ208
IC7 NCP303LSN29 open drain (DNF not required do not fit*)
IC8 FAN2012 for VCCO 3.3V
IC9 FAN2012 for VCCAUX 2.5V
IC10 FAN2012 for VCCINT 1.2V
IC11 M25P16 ST SPI flash memory


Resistor:
R1 ASM1117 resistor adj to ground 2K2
R2 ASM1117 resistor adj to Vout 1K
R3,R4,R5 resistor for 3.3V led (680R)
R6 VS1 to ground (0R)
R7 4K7 INIT_B to VCCO
R8 bus switch enable to ground 0R
R9-R10 3.3V reg. gnd-VCCO (R9 1K5 R10 4K7)
R11-R12 2.5V reg. gnd-VCCAUX (R11 4K7 R12 10K)
R13-R14 1.2V reg. gnd-VCCINT (R13 3K R14 1K5)
R15 VCCO to SPI_SS 10K
R16 VCCAUX to DONE 330R
R17 VCCAUX to PROG_B 4.7K
Capacitor:
C1,C2 ASM1117 input capacitor 10uF min
C3,C4 ASM1117 output capacitor 10uF min
C5-C10 100nF decoupling bank2
C11-C15 100nF decoupling for bus driver
C16 100nf decoupling 50Mhz oscillator
C17 capacitor for NCP303LSN29 1nF (DNF not required do not fit *)
C18-C23 input capacitors for FAN2012 10uF 0805 X6
C24-C29 output capacitors for FAN2012 22uF 0805 x6
C30-C35 100nF decoupling bank0
C36-C41 100nF decoupling bank3
C42-C47 100nF decoupling bank1
C48-C49 100nF decoupling RX/TX
*The device NCP303 assert FPGA prog_b if power fall below 3.0V. It is not required in normal use.

description1

The card is a PCI card.
Tested in 2 different PC(1 old intel and 1 recent AMD FX 64bits) , with 2 different PCI core (Raggedstone and mini-pci).
The card connect 50 PCI signals and can theorically handle all feature of the PCI bus (bus master, interrupts etc).
The FPGA used XC3S500E is very large and the PCI core currently use 2% of LUT space.
The card is basically designed from the Raggedstone V1 design from Enterpoint LTD (same bus switch, roughly same PCI connections).
The PCB is professionnaly manufactured , but the card is soldered by my hands. 3 units are currently assembled. They is spare PCB available for anyone interested.All the electronic components are available from Digikey or Mouser except for the Xilinx FPGA.

ucf

#Board leds
NET LED_OUT LOC="P96" | IOSTANDARD = LVCMOS33;
NET LED_OUT LOC="P83" | IOSTANDARD = LVCMOS33;
NET LED_OUT LOC="P82" | IOSTANDARD = LVCMOS33;
#IO extension connector pin 13 and 14 are 3.3V, pin 19 and 20 are Gnd
NET IO_EXT_1 LOC="P152" | IOSTANDARD = LVCMOS33;
NET IO_EXT_2 LOC="P153" | IOSTANDARD = LVCMOS33;
NET IO_EXT_3 LOC="P150" | IOSTANDARD = LVCMOS33;
NET IO_EXT_4 LOC="P151" | IOSTANDARD = LVCMOS33;
NET IO_EXT_5 LOC="P146" | IOSTANDARD = LVCMOS33;
NET IO_EXT_6 LOC="P147" | IOSTANDARD = LVCMOS33;
NET IO_EXT_7 LOC="P144" | IOSTANDARD = LVCMOS33;
NET IO_EXT_8 LOC="P145" | IOSTANDARD = LVCMOS33;
NET IO_EXT_9 LOC="P137" | IOSTANDARD = LVCMOS33;
NET IO_EXT_10 LOC="P138" | IOSTANDARD = LVCMOS33;
NET IO_EXT_11 LOC="P128" | IOSTANDARD = LVCMOS33;
NET IO_EXT_12 LOC="P129" | IOSTANDARD = LVCMOS33;
NET IO_EXT_15 LOC="P126" | IOSTANDARD = LVCMOS33;
NET IO_EXT_16 LOC="P127" | IOSTANDARD = LVCMOS33;
NET IO_EXT_17 LOC="P119" | IOSTANDARD = LVCMOS33;
NET IO_EXT_18 LOC="P120" | IOSTANDARD = LVCMOS33;

#TOSLINK fiber optic
NET TOSRX LOC="P106" | IOSTANDARD = LVCMOS33;
NET TOSTX LOC="P107" | IOSTANDARD = LVCMOS33;
#user oscillator
NET CLK_50Mhz LOC="P180" | IOSTANDARD = LVCMOS33;
#PCI bus card edge connector
NET PCI_CLK LOC="P177" | IOSTANDARD = PCI33_3;
NET PCI_REQ LOC="P179" | IOSTANDARD = PCI33_3;
NET "PCI_AD" LOC="P181" | IOSTANDARD = PCI33_3;
NET "PCI_AD" LOC="P186" | IOSTANDARD = PCI33_3;
NET "PCI_AD" LOC="P189" | IOSTANDARD = PCI33_3;
NET "PCI_AD" LOC="P192" | IOSTANDARD = PCI33_3;
NET "PCI_CBE" LOC="P196" | IOSTANDARD = PCI33_3;
NET "PCI_AD" LOC="P199" | IOSTANDARD = PCI33_3;
NET "PCI_AD" LOC="P202" | IOSTANDARD = PCI33_3;
NET "PCI_AD" LOC="P205" | IOSTANDARD = PCI33_3;
NET "PCI_AD" LOC="P3" | IOSTANDARD = PCI33_3;
NET "PCI_CBE" LOC="P5" | IOSTANDARD = PCI33_3;
NET PCI_nIRDY LOC="P9" | IOSTANDARD = PCI33_3;
NET PCI_nDEVSEL LOC="P12" | IOSTANDARD = PCI33_3;
NET PCI_nPERR LOC="P16" | IOSTANDARD = PCI33_3;
NET PCI_nSERR LOC="P18" | IOSTANDARD = PCI33_3;
NET "PCI_CBE" LOC="P22" | IOSTANDARD = PCI33_3;
NET "PCI_AD" LOC="P24" | IOSTANDARD = PCI33_3;
NET "PCI_AD" LOC="P28" | IOSTANDARD = PCI33_3;
NET "PCI_AD" LOC="P30" | IOSTANDARD = PCI33_3;
NET "PCI_AD" LOC="P33" | IOSTANDARD = PCI33_3;
NET "PCI_AD" LOC="P35" | IOSTANDARD = PCI33_3;
NET "PCI_AD" LOC="P39" | IOSTANDARD = PCI33_3;
NET "PCI_AD" LOC="P41" | IOSTANDARD = PCI33_3;
NET "PCI_AD" LOC="P47" | IOSTANDARD = PCI33_3;
NET PCI_nINT LOC="P171" | IOSTANDARD = PCI33_3;
NET PCI_nRES LOC="P172" | IOSTANDARD = PCI33_3;
NET PCI_GNT LOC="P178" | IOSTANDARD = PCI33_3;
NET "PCI_AD" LOC="P185" | IOSTANDARD = PCI33_3;
NET "PCI_AD" LOC="P187" | IOSTANDARD = PCI33_3;
NET "PCI_AD" LOC="P190" | IOSTANDARD = PCI33_3;
NET "PCI_AD" LOC="P193" | IOSTANDARD = PCI33_3;
NET PCI_IDSEL LOC="P197" | IOSTANDARD = PCI33_3;
NET "PCI_AD" LOC="P200" | IOSTANDARD = PCI33_3;
NET "PCI_AD" LOC="P203" | IOSTANDARD = PCI33_3;
NET "PCI_AD" LOC="P2" | IOSTANDARD = PCI33_3;
NET "PCI_AD" LOC="P4" | IOSTANDARD = PCI33_3;
NET PCI_nFRAME LOC="P8" | IOSTANDARD = PCI33_3;
NET PCI_nTRDY LOC="P11" | IOSTANDARD = PCI33_3;
NET PCI_nSTOP LOC="P15" | IOSTANDARD = PCI33_3;
NET PCI_PAR LOC="P19" | IOSTANDARD = PCI33_3;
NET "PCI_AD" LOC="P23" | IOSTANDARD = PCI33_3;
NET "PCI_AD" LOC="P25" | IOSTANDARD = PCI33_3;
NET "PCI_AD" LOC="P29" | IOSTANDARD = PCI33_3;
NET "PCI_AD" LOC="P31" | IOSTANDARD = PCI33_3;
NET "PCI_CBE" LOC="P34" | IOSTANDARD = PCI33_3;
NET "PCI_AD" LOC="P36" | IOSTANDARD = PCI33_3;
NET "PCI_AD" LOC="P40" | IOSTANDARD = PCI33_3;
NET "PCI_AD" LOC="P42" | IOSTANDARD = PCI33_3;
NET "PCI_AD" LOC="P48" | IOSTANDARD = PCI33_3;