 what's all about. I think it's the best way to start a station with a little quote, and everything that I've said from the Lewis Colonel three years ago, that the goal here is to reduce the graphic cards, which is a free software piece in terms of openness. He suggested the idea that we would create a graphic card that was not just opening the documentation on the register level, or opening the documentation as in how it actually looked like, but more open as in recently Sun's T2 course. Really, you can have the source of the actual graphic support. So, that created a lot of interest, and from that little open graphics project started, the open graphics project really has three phases, and we're still in the first one. The first one is we designed the development card, which has some reprogrammable hardware, and on that card, we can then create a graphic score. We can test and evoke and try to get it working. Then at some point, if that core works, we're supposed to make an ASIC out of it, so a real application-specific interface, and then that is something we can sell. But before we go to that one, I would just want to discuss what a field-programmable hardware is. First of all, I'm not entirely sure if everyone knows what it is. Really, an FPGA and two main components. The first part of this here, the second part of that there, this is a lookup table. Really, it has four inputs, one output, and you can define for each combination of inputs what the output is supposed to be. So if all the inputs are zero, I want the output to be one, and then if all but one inputs is zero, then I want the output to be something else, etc., and I can define those 16 combinations. The other part is the flip-lock, which can simply remember a byte or a bit. There are some waterlogic around it, but that's not really interesting at all. The interesting bit is that this is a sales drilling, and as far as the three S4000, which is a Ceilings FPGA, has about 62,000. And this is one bit you can program. The other bit is that you can define how all these lookup tables are connected between each other. So this one is connected to another lookup table somewhere else, etc. So you're really not talking about a processor, what's your programming, you're really talking about the hardware for which you're programming. To give you an idea, I have a bit of very long here, which is the language you can program these chips in. You get a T here, and I have a beginning and an end, and I say Flop1, which is a register, and now I'm assigning Flop2 to it, and Flop2 I'm assigning Flop1 to it. If this would be a C program, what would Flop2 be? Would it change? It wouldn't, it would just stay the same because Flop2 is Flop1, and then it stays the same. However, in Verilog, everything goes in parallel, so these two will actually swap the registers because they're done simultaneously. This is really the key to the concept of programing, where you can just define parallel parts. This would be an imperative language. We do have to provide this parallel programming, I mean, there's two decorations on the table. I could swap them around, nothing changes. Of course, there is some sequential stuff, because you see if, else, etc. but parts like in and in, that's just happening in parallel. And this is one module, and I can define multiple modules, which will also be working in parallel. So I was talking about this development part. The OpenGraphic Development Board 1 is this part. It's still in development. It has a TDI-X connection. It has two-dual in DVI outputs. It has two understandings. It has a lot of features. And this is a really extensive and big FPGA, the S4000 I mentioned earlier. Right now, this card is an estimated $1500, which is kind of about the budget of any developer. And we're now working on it for three years, and it's still in development. And part of the problem with the OpenGraphics project is that these three stages are focusing on different groups of developers. The first one is really for hardware developers to get this card working and people who like to play with hardware are interested in a card like this. And then at some point, it shifts to graphic developers who are more interested in creating a 3D pipeline and playing around with graphics. And then at the end, we have this ASIC, which cannot be re-programmed anymore. And then it's really something for end-consumer. So it's really hard to get everybody motivated to write something that's supposed to be for another market. So I thought, in September 2007, that it talks a little small. I'm not sure if everyone can read it. Others read it for you. I think it's very well-stressed. Something like this. I just think their approach to the problem could be a lot better. I have the idea that this whole concept of a graphics card which could be re-programmed is a whole thing to do. And a lot of people would be interested in it, but this is not the way to do it. So I came up with Project PGA, which is really two stages. And the first one is to get the development card out for developers. And I wasn't really interested in doing it in a sort of group fashion. I just wanted to get the card working and get it out there so that people can start working with that card. And then the graphics board with that would be an open-source project where we could all work on the same thing. And then really just for graphic developers, we want to play with graphics, et cetera, and not spread it for any consumers and everything else. So the first bit had some requirements, of course. It had to be cheap, because it's $600 for the average, I guess. So that would automatically end it. Sorry, could you speak on that? Could you close the door? Well, it didn't really get a reason to be here. One more time, please? Sorry. It's the biggest kind of cost to cheap, right? Yeah, a big part of it is, I'm not actually sure how expensive it is, because you have to get it in a contract, but it's in it, so you actually get it cheap. So I don't even want to know, I think. Also, because it has, like, the memory chips around it and the PCB circuit board is 10 layer, which is, again, very expensive to produce, et cetera. We're not talking about large numbers. We can make a million cards, and just hope that the price drops down, because there won't be a million buyers. So that's a bit of a problem. So here, cheap, not high-end, is really just to get smaller cards and get less features in there. Also because it was really focusing on graphics developers and not hardware developers, I wanted to make it easily read from the grabable. Usually, while you're talking about exactly the chips to reprogram, you're using a cheap JTAG bus to communicate mobile chips, and for JTAG, you need a programming cable, really, and these cables can run into the hundreds of hours if you really want just one cable. So, lastly, because, again, we're talking about graphics developers and other developers who are not really hardware people, I wanted to have it fully documented, and this wasn't really starting because the PTI and everything didn't actually do this, so I thought it would be a nice extra thing. Right now, they're all getting started. So, the first bit was really to get a cheaper skillings, that's the PTA. Instead of an S4000, I'm using an S400, and instead of 62,000 cells, it only has 8,000 cells, which is still really big, but significantly smaller than the one they're using. Yeah? Yeah. Okay, okay. The really idea is that we want to have a lot of platforms, so at some point, if you want to use different PTAs, you can use this design and just toss out whatever you don't need and put in something without any limitations. And you could, of course, take somebody else feeling that a few smarter kids should be able to adapt, but really only wanted to get something. So, instead of a JTA cable, I figured I'd just put a USB connector on it and make a programmer on board, so you can now just connect it through USB and reprogram the entire bar now and document it with a watch at that moment, which documents every little bit. And we're talking about the graphics score. It's really still based on the Open Graphics project. They already have some parts developed, like the Raster Scanner to communicate with the screen, and we just want to reuse those bits because it will be an Ioniq to start that over again. And it doesn't have to be mandatory. We really wanted to also make it possible to do other things than just graphics for this part. Because really, as I said, we're important several months, and we all want to make a learning platform out of it. There are still a lot of people actively involved in FPGAs and stuff, and we just wanted to make it easier for people to get started with it and just get demonstration applications which also do other stuff than just graphics. So the layout really looks like this. Instead of PCI-X, we just have PCI-X instead of the possibility to communicate with four screens, we just went back to one screen, a single VGA output. It only has one memory chip, which is just 16 megabytes, and it only has two layer PCB, a circuit board that really cheats for this. That sort of result in a card which is about to cost 150 euros. There's only a 10 of what the other card was. And the prototype is really soon now ready because we're still working on some electrocognetic interns making sure that everything works correctly. We're still testing it, which is started in September. The program is going really quick. We started in September, and in December we really had the circuit board just out of the door ready, so this is how that looked like. Then we could let a prototype be produced, and we soldered it together. In January, we had our own actual prototype. I had it here as well, so we won't be able to demonstrate it today. And then earlier this month, we actually had the first output coming out of the card. We programmed it successfully, and this is the test screen from the dock. This is the output of the card. Also, the commutation is coming along very nicely. It doesn't only discuss what components are in use, but also why. The S400 and not something else. All the buses which connect all the chips are discussed in a plane, so you can look up and see what each signal in each bus means. How to set up unused tools? So there's all tools that are available to actually use the J-Card bus and that is explained. You have to hear J-Card. You have to hear J-Card. You said there are tools that let you use the J-Card bus. There is a J-Card bus? Yes, the USB is an FTDI chip which really translates to a J-Card bus. Yes, that's cool. Not all tools are working correctly with these chips. We wrote a small tool to actually program through USB. Okay, using the JFU. There's this serial engine or the TDI chip which I just talked about. Sorry? No it isn't. Unfortunately, I spent about a week trying to get it working and in a few days I programmed my own tool. Because OCD things are smart it tries to align the bits for a proper chip or a free chip in the bus. And the Phoenix tools also try to be smart so they also align of course it doesn't matter. The tabling that turned out to be quite tacky we just skipped the bad figures I just tried my own tool and got something working. The demo applications like how to get a demo output of your screen are still in the government because we've only last one or got something working. But all the documentation is again very available and it's also somewhat important because my university started sponsoring me to actually get more prototypes out and they're also willing to buy the first batch of cars so not like the open graphics project that we're still not sure how many parts it was built there will be actually a batch of cars that we also know so that students at my university can start working with them. This also means of course that we can get a lot of feedback on the documentation and then where are the bottlenecks that we can understand and then we can work on that and improve the presentation again. So if I take another slide again I showed you this one earlier I can really now fill this in with this info and you can see that my school year really consists of the first semester was to get this hardware working the second semester would be really just to get this board working the PGA output working and also this first one is written that's why I said I could come back up it's really to get a common platform to learn how to reuse that PGA and to see how graphics development work and to get the whole idea for the source so that progress, yeah, it's also for people. So if we would be looking at what's actually going to be inside the FPGA I was talking about very long modules we could be working in parallel with each other this would also be a module this would be a module, et cetera and the idea is really to keep things as simple as possible, you see TPLG in the right smaller FPGA really that comes with a PCI controller it just deals with PCI bit everything and then communicates to the FPGA what needs to be displayed really in it goes through registers to the memory and on the other hand, you have your registers which is trying to output data to the screen and that's just a question from the memory manager that puts it out there and if it's a TPLG it needs to translate something so it has to look up everything in the middle, however, you see this very nice little grey box which is your module supposed to be that you can just develop whatever you want put it in there so I just asked a few random things I understood that from big acceleration the biggest bottleneck was the transport layers so that might actually not be very relevant but some other people already suggested that there is a tool called scale 2x which improves the graphics from very old games and that would be an ideal solution to put in here just an extra little feature you're not really talking about driver development anymore and getting the 3D engine for example, working on your graphics cards also define acceleration features which would be interesting for you so if you're building your own arcade machine with main and you're using scale 2x you can actually implement scale 2x in the hardware to get hardware acceleration for your arcade machine another discussion would be meaning that it's actually implementing an Atari 500 at the moment they're also using the same FPGA so you can basically flash that in here and then this whole card will turn into an Atari 500 you wrote Amiga there I'm sorry, Amiga 500 no, I could look it up I'm not looking into what else you can do but of course you cannot do non graphics projects so a lot of touch sets you can do whatever you want if you want to use an FPGA if you feel like it, go right so the roadmap for the next half year would really be to get the framework for working which would basically be a chunk of memory which would be constantly put on the screen and then a basic x-deriver which would get that data to the card now I'm not entirely familiar with X so if somebody wants to help I'll help after that we really want to go for the VGA standard to get the VGA BIOS in there and all the VGA options like on-support so we do that sorry? you won't be? yes, well we have to start somewhere the open graphic project is currently trying to do this and they've been in for months what's your framework? the support framework if you plug the card in and you don't actually have it we wanted to see the BIOS but why do you want a VGA and this is so hard on the big holder it's so hard with all those overplayed plugs left and right to try to redesign and make it simple that the registers were we could do that if you have a BIOS sufficient to implement the text and if you have a BIOS it can set up your text mode very little software actually touches VGA hardware so it can set up a text mode yes we just want to get something basic working and we can do whatever we want yesterday we had this question now because our baby implementing is pretty serious what do you need in text mode? in terms of VGA BIOS stuff nothing? nothing so you're done so really we want to do whatever we want we were talking about 3D which could support 3D whatever this is really an open end story to look at what we're going to do this was a slide of yesterday you see that they had this a vertex program shader and then it changed the texture shader and then this was working they changed something else really an incremental process and the open graphics project is really trying to jump in and start here which turns out to be a very tricky thing to do so with the project VGA we're trying to get from the top and work incrementally and try to add something not try to add this grand design and then spend 3 years trying to get this grand design working what does this mean that if I actually have a little thing on time it's only re-challenged your JTAC and then on top of that you can of course create something like micropower and then program that it would be really cool if you put that shader and put it on it would really re-program the chip by use of JTAC takes a second to long but it's the second I think you just have one shader yeah bigger FPGAs I know what it can do just part of the FPGA I'm not actually not sure if this one can do that but I think it's actually the way you can have an edge you need to have an edge on it so I got a few slides here to compare Open Graphics architecture with Project VGA is doing Open Graphics project Open Graphics is trying to get big pipeline working immediately and everything else like VGA support and their direct memory access is controlled using a micropontroller here which has this to communicate with only other parts and everything is done so if you want to write the character on the screen I just blind out what you have to do to actually get that work done first of all the data is coming in you have to go through the XP10 then through the bridge then through the archer then through the memory guitar and then out then the hardware controller has to actually ask from memory I think as anything changed I think it has changed grab that data again so the data has to go back all the way to the app boarder where it then has to do this translation I think it follows to pixels really and if it's done there it then can send it all the way back in memory again through all those components and then in the end finally the new pixels to video on the right which is really cumbersome to do and I just want to note that it has here one video that concludes that includes stuff like the raster scanner buffer etc so if I have this image here with raster scanner that's just one of the things in the other image so if we would be comparing here really for project VGA the data controller it sends out to memory and then if it needs to be drawn out it comes back from the memory goes out through the raster scanner and the raster scanner will do the translation here just in time and then it goes out so it's really a lot easier to implement so to compare it to you can see that the overhead in VGA for basic VGA support is a lot less it will require a bit more space because really open raster is actually reusing all the other components just to prevent VGA and it's complexity is a lot higher because of that so VGA, the project VGA is really easier to implement it won't implement everything from the VGA support but the basic stuff to get on to working now I'd like to conclude my presentation here with this little snippet from the GPL license it said that without warranty of any kind if you agree with this I can give you some good get you some hardware within a month that's what I meant with prototype real soon now if you don't want to worry too much about stability and everything do want to get started working you can get one in real quick you can get you can get you can get hardware of the RISC part RISC part well, there I am going to walk here RISC really are there's for example passengers on it just to get noise out of the house and those aren't fully tested yet I know the car is working I know it's working pretty good but it might be that if you try to fucking too fast that it gets unstable and then it just won't work anywhere and then you have to reset it and then the car is working again so it's not really high risk or anything but if you would be as a regular consumer buying all these cars you don't want to crash every once in a while then I would get some length if you just want to experiment with a car like this are there any other questions? I will show it if you want to see it as how close you can come here everybody is on the report are the DHDL compiler and tools and simulator available as trade software? are the DHDL compiler and the other tools available as trade software? not all of them there are some other parts that are going on to just get an open source compiler for FPGA and everything but they are not completely working right now