Not enough I/O pins available on Dragon board!

Dragon

Not enough I/O pins available on Dragon board!

Postby Beemer_Belgium » Tue Feb 17, 2009 3:19 pm

Hi all,

Have a verry big problem here. We are working on a project where we need a PCI card to interface to a 32 bit parrallel bus (SELbus from a Gould computer). For that we just purshased the Dragon card at KNJN.com thinking the FPGA has more than enougf I/O. Now while preparing all the stuff that needs doing i find out i have only about 28 usable I/O pins. The rest is already beeng used already by the PCI bus as i can figure out from the doc's. I didn't count on the fact that the bottom row connections on the dragon is already used by the PCI. So after figuring out exactly how many I/O i can use and came to the conclusion there is only like 28 pins left.... :?
So i need about 6 more (4 data and 2 interupt lines) at least . More should be even better but 34 is the absolute minimum i need ....

My questions:
After some investigating i see that there are some I/O pins not connected to the FPGA (like pin 26 and 29) and there are some pins that look like they are not used but have a special funktion as a databus i think. The pins are P39,P44,P46.... ( they have funktion D0 to D7). Can i use those pins or not. If i can i gues i need to solder some wirewrap directly on the FPGA.... Is it possible to have the schematic diagram of the Dragon board to see for sure what pins are used or free. It's not verry clear at the moment because i have to check every pin on the FPGA if there is a track routed to the pin and i gues some are routed under the chip....

Are there any PCI signals i don't need or that i can disable or disconnect from PCI to use as other I/O pins?

Anyone have other solutions for this?

Just one comment on the board here. Why connect the FPGA to a 32Bit PCI bus and then make only 28 Bits available? Makes no sence to me... :?

Greetzzzzz,
Beemer_Belgium
 
Posts: 9
Joined: Tue Feb 17, 2009 2:12 pm
Location: Belgium

Postby fpga4fun » Wed Feb 18, 2009 9:03 am

I just forward you the board schematic.
It is going to be tricky to get more IOs. One thing that may be easier is to use bus extenders out of the existing IOs of the board.
fpga4fun
Site Admin
 
Posts: 837
Joined: Thu Sep 18, 2003 6:47 am

Postby Beemer_Belgium » Wed Feb 18, 2009 3:20 pm

fpga4fun wrote:I just forward you the board schematic.
It is going to be tricky to get more IOs. One thing that may be easier is to use bus extenders out of the existing IOs of the board.


Thanks for the schematic, it will come in verry handy. Do you need my email or you have it already?

I have been thinking for a solution and have come up with 2 possible things (maybe). One is to work with a multiplexer ( 2X16bit ) to select the 32data lines by 16 bits at a time but then i have to do that verry quick becouse the bus has a transfer every 1.2microsec. Looking at the timing diagram of the bus i have about 150ns to put the data from the bus in to the PCI memory , so that's verry thight.....
Second solution i think is to use a second dragon board. First board takes care of the first 16 bits (+ control lines) and second card takes the other 16 bits (+ control lines). Then i need to read 2 locations in the software and add the 32 bits back together.
Don't know for the moment what solution will be the fastest . My guess is the second solution but i'm not sure. Have to talk to my team mate who will do the software if he can do this a easy way.....

Greetzzzzzz,
Beemer_Belgium
 
Posts: 9
Joined: Tue Feb 17, 2009 2:12 pm
Location: Belgium

Postby Beemer_Belgium » Wed Feb 18, 2009 3:24 pm

Ah ok ,found the mail now.... Thanks!
Beemer_Belgium
 
Posts: 9
Joined: Tue Feb 17, 2009 2:12 pm
Location: Belgium

Postby fpga4fun » Wed Feb 18, 2009 3:27 pm

I have your email.
Do you need to transfer data out of the PC, or in the PC, or both ways?
Maybe the FPGA could provide assistance into the multiplexing so that the software doesn't know about the muxes.
fpga4fun
Site Admin
 
Posts: 837
Joined: Thu Sep 18, 2003 6:47 am

Postby Beemer_Belgium » Wed Feb 18, 2009 4:11 pm

It could be that in our situation there is only one way used but not yet sure. First we are going to make a sort of data sniffer to work out what exactly is happening on the bus and that is only reading out all the lines (including control lines) for both way's.
The control lines have acknowledge signals, data ready signals and stuff so that will be in the both direction. Those signals should be handled on the FPGA level annyway. But on the other hand it could be that there is data send back to the HSD card (host computer) as a sort of answer or acknowledge for the software level. Documentation is verry pore on this.
Here is some info on this stuff if it would intrest you... http://www.absoluteastronomy.com/topics ... boratories
We use the SEL 32 series... and consist of 2 flatcables where there are 32 data lines and 15 control lines on.Old stuff but i'ts verry fast for that time :shock: ! Our application is only a client of that bus so it can be that bidirectional comm is not used for us but it is possible... So we definitly need reading the bus into PC and maybe send from the PC.

Thank a lot for the help.....
Beemer_Belgium
 
Posts: 9
Joined: Tue Feb 17, 2009 2:12 pm
Location: Belgium

Postby Beemer_Belgium » Wed Feb 18, 2009 5:03 pm

Just came up with an other solution maybe.... I can try to use the dragon not in the PCI slot but as a USB interface. For that i need to read in the bus ,serialize it and than send it tru USB to the client.
The SELbus speed is about 26.6 megabytes per second so USB2.0 (480Mbit) should just be fast enought to do this. But then the client's XP can not put to much time in doing other stuff and mainly concentrate on the USB comm.....that would be probably the next problem :lol:
Beemer_Belgium
 
Posts: 9
Joined: Tue Feb 17, 2009 2:12 pm
Location: Belgium

Postby fpga4fun » Wed Feb 18, 2009 5:18 pm

26MB/s sustained or burst?

USB could be a solution but Dragon can only go at about 1MBytes/s sustained (it has USB 1.1).
fpga4fun
Site Admin
 
Posts: 837
Joined: Thu Sep 18, 2003 6:47 am

Postby Beemer_Belgium » Wed Feb 18, 2009 5:54 pm

fpga4fun wrote:26MB/s sustained or burst?

USB could be a solution but Dragon can only go at about 1MBytes/s sustained (it has USB 1.1).


Oh ok , thats way not fast enough for this stuff. I think the speed is sustraind at 26Mb/s so it was super fast considering this system is already more than 30 years old!!!
You sound like a clever tech so how would you take on this interface in this case. I know that an FPGA is about the only hardware that can take the speed to make it work.

There are special PCI HCD cards on the marked but they are way to expensive and even then they don't do what we need. We actually already have a card like that (http://www.appdatsci.com/webpages/pcihsd2.htm), cost more than 6000$ :shock: but they don't have a driver that supports our mode(they tell us after the purchase) and they will not give us the information we need to make our owne driver! They can make one for us at .... cost! So thats why we want to make our owne device using an FPGA....

Greetzzzz,
Beemer_Belgium
 
Posts: 9
Joined: Tue Feb 17, 2009 2:12 pm
Location: Belgium

Postby Beemer_Belgium » Wed Feb 18, 2009 8:13 pm

Hi Jean,

Just a question... Do you have a FPGA board that can serve as a Sub board on the Dragon that has at least 50 I/O pins available. Idea is to build a special 32 To 16 bit multiplexer with it that can route the 16 bits direct to the Dragon board. So for that i need 32 bus inputs , 16 outputs to the dragon and some pins for multiplexer control. This would be easyer than to make an external board with normal logic IC's. There has to be enough space too to put some connectors on to connect the bus....

Thanks,
Beemer_Belgium
 
Posts: 9
Joined: Tue Feb 17, 2009 2:12 pm
Location: Belgium

Postby fpga4fun » Wed Feb 18, 2009 8:31 pm

Building a mux board shouldn't be hard. For example use HC574 for the outputs and HC244 for the inputs.

The only daughterboards we make that mate on Dragon are the FlashyD boards.
fpga4fun
Site Admin
 
Posts: 837
Joined: Thu Sep 18, 2003 6:47 am

Postby Beemer_Belgium » Wed Feb 18, 2009 9:14 pm

What about the Pluto3 board? Looks intresting to use as a sub board on the Dragon. I see the connectors are not directly compatible but maybe i can mount it somewhere else on the dragon so i can wire it as i want it. Don't see exactly how big the Pluto is but i gues it can't be a lot bigger than the Dragon... just need 1 of the 3 connectors of the Pluto to communicate to the Dragon in that case.
Beemer_Belgium
 
Posts: 9
Joined: Tue Feb 17, 2009 2:12 pm
Location: Belgium

Postby fpga4fun » Wed Feb 18, 2009 9:20 pm

Actually because Pluto-3 is compatible with FlashyD (as Dragon is), it would fit perfectly on Dragon (if connected through its FlashyD connector).
fpga4fun
Site Admin
 
Posts: 837
Joined: Thu Sep 18, 2003 6:47 am

Postby Beemer_Belgium » Thu Feb 19, 2009 9:40 am

Ok , thanks Jean. I will discuss this with my colleague what way we are going to take now..... :wink:

Greetzzzz,
Beemer_Belgium
 
Posts: 9
Joined: Tue Feb 17, 2009 2:12 pm
Location: Belgium

Postby Beemer » Mon Apr 12, 2010 2:24 pm

Hi all,
Coming back to this project..... Did a lot of investigating into the hardware used that i need to emulate and came to the conclusion that the protocol used is not 32 bit bidirectional (HSD bus) but the driver for the device connected is using 16 bit as Input and 16 bit as Output with some control bits... So it looks like we can use 2 different Dragon boards in stead of 1 dragon with a I/O extention board. I am going to try to use 1 Dragon for Input and another for Output in the same computer, should be possible i think.

Now i have been playing with the Dragon and managed to make a few simple I/O programs without PCI BUT with the PCI stuff i am not having a lot of success. Have anyone of you got a simple I/O program to read in 16 bits (or 8 bits) into the PC memory to get started with PCI? Maybe there is an example on the CD but i lost it for the moment and with the examples i get from the site i get a lot of errors compiling it :?

Greetzzzz,
Beemer
 
Posts: 8
Joined: Thu Mar 18, 2010 5:19 pm
Location: Belgium

Postby Beemer » Thu Apr 15, 2010 6:10 pm

Nobody has any small sample code for PCI I/O? :(
Beemer
 
Posts: 8
Joined: Thu Mar 18, 2010 5:19 pm
Location: Belgium

Postby Thoma HAUC » Sun Apr 18, 2010 4:10 pm

Hi Beemer,

Have you taken a look at the different links?

http://www.fpga4fun.com/PCI.html
http://www.fpga4fun.com/ExternalContributions/PCI_CONFIG-v1.0.v

Thoma
Thoma HAUC
 
Posts: 51
Joined: Thu Aug 26, 2004 4:57 am
Location: Near Paris, France

Postby Beemer » Sat May 01, 2010 7:26 pm

Thoma HAUC wrote:Hi Beemer,

Have you taken a look at the different links?

http://www.fpga4fun.com/PCI.html
http://www.fpga4fun.com/ExternalContributions/PCI_CONFIG-v1.0.v

Thoma


Thanks Thoma, looks like the second link is what i was looking for. Did not find this example before. As soon as i have a working Dragon again i`m going to start testing with this code. Have a defect board for the moment :? (viewtopic.php?t=2110).

Greetzzzzz,
Beemer
 
Posts: 8
Joined: Thu Mar 18, 2010 5:19 pm
Location: Belgium

Postby Beemer » Sun May 02, 2010 2:55 pm

Is there a way i can contact the author of the this example code http://www.fpga4fun.com/ExternalContrib ... FIG-v1.0.v (René de Jong) . i click on memberlist and the link redirects me to the fpga4fun.com home page....
The code gives a few compiling errors because some variables are not declared. Unfortunately i am quite new to this language and can not find as what the variable needs to be declared :shock: . Have tried a few things but then i get other errors so its a bit confusing what the variable in question is fore or what it dose, i can not find it back anywhere in the code so maybe its just a wrong name that is written... The variable that is giving the compile error is "parity_oud"somewhere at the end of the code. So René, where are youuuu !!!! :D

greetzzzzzzz,
Beemer
 
Posts: 8
Joined: Thu Mar 18, 2010 5:19 pm
Location: Belgium


Return to PCI FPGA board