 My name is Taffer Hagen, I've put my email address there so if you want to reach me afterwards you can reach me. So I'm talking about a project I'm doing, Retro Microcontroller. The title is an Opal Stores Microcontroller with Retro Instruction Sets. Plural, so explanation. So first I'm going to tell you what it is, why I'm doing this, what the status is and then I propose the first thing that you can get reaction. So what is it? It's a microcontroller with a Z80, a MOS 6502 and a Motorola 68000 core on it. So this is just a logo for that but it will be combined on one chip on the board so that you can use it. More details later in the presentation. So why did I do it? You're in Retro Computing, so it's a hype I think now, Retro Computing. All these guys who are young and grow up with the Commodore 64 or Spectrum, they want to go back, they have money now to feel young again. Like if you get gray hair and these kind of things. Actually I started with the Commodore 64 and afterwards I moved to an Amiga and so I've been a quite Amiga. If you see the Retro Computing guys you find in this world people who currently at this stage pay 240 euros for a 40 megahertz accelerator with 100 megabytes of RAM on them. So that's what people pay now for in the Retro Computing guy. And also you have the MISTF PGA which simulates quite some old computers that's for 200 euros and they're even people making a new Atari clone for more than 500 euros and they seem to be able to sell these things. So what I just want to say is that some people would like to do it and they probably want to spend some money on it. Of course there is always a border you cannot go above, but yeah. And then the other part which is now also I think hype is the maker movement, obviously. You have the Arduinos, the Raspberry Pi's, ESP32 and these kind of things. And I thought yeah these two things maybe I can combine them. Maybe somebody wants to do these maker type things but with an old instruction set. So that's what I'm doing. But it's actually a broader view is that you have the open source movement for software which started around 20 years ago with Linux and all these things. And what you can do there is that you have people who could act at night at the PC and overnight they could start working on these OS systems and Linux and all these things. And they could do things and yeah you had what is called a news, what do you call it again? The news system that before you had Facebook and Twitter and all these things you had this forum type things on the net. Yeah news groups, yes. Sorry. So but if you want to do custom ASICs it's typically ASICs are considered that you need high startup cost and you need quite some volume. So I would like to make it possible for people to also work more in that regime. But of course you probably cannot do it alone. But what you do have now you have crowdfunding, you have Kickstarter crowd supply all these things. So if some people can come to a minimum number of 50 or 100 then maybe we can also do it for ASICs. And get the open source vibe also getting in the hardware ASICs world and not pure in the software world. And you also have the distributed development kit to get love so it's much easier to cooperate on things worldwide. So you only need to find 50 or 100 crazy people in the whole world that want to work on something and to make something to do that. So what is my dream is to make it possible to have low volume open ASIC service. So typically like I said it's considered that you need high startup cost and it's sorry. So chips are made with projecting things on that and what you use as projecting is called the masks and these are quite expensive. You have the tools that you have to make which are commercial cadence synopsis these companies and you also have to pay a lot for them. So even if you can make cheap chips you have to use expensive tools and if you make ASICs with a hacked tool they probably will find you. When it becomes popular. So and also typically these done by experts which are paid to do the work. So you need to pay the people writing these things. So you have the IP blocks. If you have a block that does something special then it will also cost money and everything else. And also all these things they come with NDAs ULAS which are typically not open source friendly. And there is already a few years that we have the open hardware or the open EDA deaf room here at FOSDEM where they try to look at these things and solve these things and I also said maybe I can solve them. Actually I'm working as professional live in IMEG here in Belgium which is a research institute for market electronics but they also have a group that provides services to make ASICs and that's why I know how this works and what the costs are and I'm trying to with this knowledge to get this working. It's a hobby project so it's not my because my work doesn't see enough volume in this yet. Hopefully it's a yet to spend resources on that because it's typically for high. So how do I want to solve this is I would like to be able to make boards with open source ASICs on them. Less than 100 euro per piece if you order 100 boards so it's around 10k that you need to find but with crowdfunding I don't think if you see for remaking some old games of old times that they can spend hundreds of thousands of money so 10k should be possible I think if we spread the word and get people knowing that it is there. So and I also want to have a library of open source RTL so RTL is the type of flages in which you write hardware. It's called the registered transfer language which is actually event driven. It has special languages VHDL very long that you have to learn and I want to have that open source also. So typically it's propriety. In order for this to work you probably still have to pull four or five projects on one run and then that you still can share some of the setup costs. But again if you do that with crowdfunding side it should be possible. Say yeah we have six projects if four of these projects are making it then we can go for the run. So this is that implications on how far you delete time. So you're talking about months there before you start your project and you get the final product. But yeah this is retro computing so what's one year more than about computers of 20 years old. So I also talked about this registered transfer language. You have to be a really expert to do that. So I want to have a flow that is fully push button that you actually don't have to take care of yourself. But actually it can be in the cloud somewhere that you don't have to do it yourself because I don't think it's possible to get everybody an expert. I would already be happy if people could start writing this RTL type of code. And also I have no company. I want that to be as an intermediary for the legal affair so that I can take care of the legal stuff. And the people want to make something that they don't have to take care about that and don't have to mind of it. Of course it means that if I use something propriety I cannot give it to the people. So I'm pro open source but I'm also a little bit pragmatic. I have to pick my words carefully I think. I don't see that everything has to be open source. So being pragmatic and combining open source with closed proprietary software sometimes I think is not a problem. But I do like open source because I think in this EDA flow I think there is still a lot of innovation that can be done if people can work on them in their free time. Because this is now following the new technology in nodes 28 and 14 nanometer and 10 nanometer and 7 nanometer. And actually the companies who make this software are actually focusing on getting their tool working for that node. Actually these older nodes they don't look at them anymore. And if we could have a flow that's open source I think also a lot of innovation could happen still there even for the mature nodes. Okay, so then I have this project which is actually a pilot project to test some things about costs about the flow. To then later on maybe go for, I do this project myself that later on I can let other people do projects. So what's the current status? I have a project page on hackaday.io. You can find the site here. I don't know if you know hackaday.io. That's a site where a lot of people who do this kind of open source things, hacking, put their projects. One of the projects I like a lot or they are doing really amazing thing. You have a relay with real coils. And if you take two of them you can make an all feather with them. And then he made four PCB boards and there was a 16-bit header with real relays with coils. And I really feel it's amazing what people are doing and spend their time on. So I also have a block site where I once in a while post something. But of course the time I spend on making blocks I cannot spend on the other thing. So it's not that I block every week or so. But you can follow me what's happening. If there is major technical process I will put it on my blog. So that you don't have to follow the github closely so that you still know what's going on. And then I have the source code. So everything I do I make I want to make that open source and I have that on github. That's also personal preference. I prefer github over github because github is closed source. A few years ago I used sourceforce.net and then that company was bought. And then at a certain point they went pro-party and they made problems. And they lost a lot of people. And the same thing can happen with github. Github is fully open source so even if github.com stops then I can host my own github server. Yeah, github also has I think corporate or version that you can install it yourself but I think you have to pay for that. So let's go over the source code I have. These are the sub-modules. So my chip will also have a GTAG interface. It's used for testing PCB boards. So they call it boundary scan. So you can put the IOs in a certain state so you can test your PCB afterwards. That's for testing the chip. But it will also be, I will also use that to program the device. So you can load your programs in RAM on the CPU, on the microcontroller in that way. I probably won't have non-volatile on the microcontroller because that's own IP. So it has to be booted from something external. But what I do plan to do is that you can boot it from an I2C flash chip so that it has I2C that if you enable that it just loads what's in the flash into this realm of your CPU and that it boots in that way. But you can also turn it off so that you can boot it through the GTAG interface. Then I have the T65 and T80. A course which are actually coming from these FPGA boards that make these old computers. So I took the course that they used for emulating the Commodore 64 and the ZITX spectrum. I used that one because they are battle tested. They have been run to the demos that the people made at that time on the machine so I can rely on it that it will work and it will function. And then you have the AO68000 which is a separate project. I first had another core selected but that is GPL licensed and there are some complications because if you have something GPL licensed everything you use have to make public and at the moment cannot make everything public. You implement an ASIC with what they call standard cells which are a standard cell is a block that implements logic functions and then an OR or a jister, a logic memory element and these I will use propriety for that. That's for I needed a permifix licensed open source course for now. In the longer term I also want to make this standard cell library. I want to make an open source standard cell library. There is one available but that's GPL code and that's also what I want. I don't want that the standard cell library sides the license that you can use for everything you put on top of it. I don't want to force everybody to make only GPL licensed products based on the library. So this is the RTL code. I didn't make a schematic of this but this actually will represent the block diagram of the chip. You have the different cores. You see I don't have the 68000 yet integrated here. There will be only a few kilobytes of memory probably but for Arduino type of things I think that should be enough. There will be an arbiter that determines which of the cores get access to the memory but it's determined at boot time for the moment that you enable one of the two when you boot your thing. People also ask if you can let them run at the same time. Maybe but then I have to be careful that I don't make any mistake that I don't have the risk that when the chip is there that it doesn't work. So it's always a risk of providing features but making a bug in a feature is you cannot fix a feature in a hardware chip and you have to order a new set. It's not an FPGA or some other thing. So I have to be careful there. And then the wishbone bus which is actually the memory block so it interfaces to the on-chip RAM but also the IOS. The IOS will be memory mapped in the memory map so that you can write to the IOS to put the tunnel off. And it's not there yet but I also plan to include some blocks like an I2C controller, a UART controller, a PWM controller. I think all these things you want to have in a microcontroller. I will include some of them. I also have to see how much area they take but that's still under development but so follow my project and you will see what I will implement. So I also do simulates what I write. So typically you want to be sure that everything works so you do simulation of your code. And this is then I use CocoaDB which is a Python thing that does co-routine simulation of hardware descriptions. And I'm using that and you see that I'm testing everything to see if it works. And actually I wanted to show a demo today but actually the simulation showed that I was not ready and that I still had problems so that it wouldn't work so there's no excuse but of course I could have brought in and say it doesn't work but I'm not that kind of guy. Then I'm actually testing this on an XLR8 board. So it's a board with an FPGA on it that really tries to mimic an Arduino. So they even implemented, so they included the voltage transfer because the original Arduino is five-fold and most FPGAs are 3.3-volt yet so they included the voltage shifting even for the analog one. So they used the five-volt analog signals to 3.3-volt signals on their board. And I'm using that to test everything. So then the question is do we need hardware? I think some people want to have hardware and not just FPGAs. So I hope. I'm doing crowdfunding so I will see if I'm the only one who wants that or if there are other people who want it. Then also I also make boards different so I will have different options I will show you later on. So you can also find the keycard which is a PCB design tool, a source file in that GitHub. So these are the three boards and then the bar chip. So like I said I'm doing crowdfunding so this is on cloud supply so this is my site where you can go for the... So I haven't launched it yet so you see that I'm from the software side I think it's doable but there are still a few loose ends on the budgeting side I have to fix. And I hope it will be in the next weeks but I've thought it already a few times and then always some things pop up. So I only want to really launch the campaign where I'm sure that I... I'm 90% sure that I can do it actually. I don't want to launch it and then say oh later on I cannot do it. So if you're interested you can register the email there you can register the mail when it's launched and then you can buy it. So what are then the planned productions? It's the chip itself. Maybe let's first say the first idea I had was to make three different chips one for each core but then I saw that actually the area of the on-chip problem was higher than actually the core itself and then it would be not cost saving it would not cost much more to put all three on the same die and then combine them and then just choose which one you want to run than making three different chips and also having three different chips makes the logistics much more difficult because you have to separate in the whole flow your three chips all the time if you put them on a PCB then you have to know this is a PCB with a 6502 this is a PCB with a Z80 and this thing so putting on one chip is easy also I've seen that the packaging also takes quite part of the cost so originally I also planned to have one with lower IO so the normal Arduino and one with higher number of IO's the Mega, Arduino Mega I took as an example but I saw that the price of the two was so low that I just went for the high IO and then only had one chip left which is the logistics easier again so you have the chip only I also want to make a board where the chip is on that and that you can use for breadboarding so you can a breadboardable one you can just use the two outer so you can make it fully functional by the two outer rows but if you really want to have more IO's you can also use the inner arrays you will need to provide a clock and these things so it won't function on its own but people who use a 6502 now want a PCB board are used to providing these things crystal oscillator and these kind of things and you see that is also a deep switcher so that is to be able to select which core you want to run and if you want to boot from I2C or not so that is the feature I planned there if you don't boot from I2C some of the pins are the GTAC interface you have to program through the GTAC interface then also I have there was a crowd supply where they have some kind of prototyping boards but there were special it was called Perv Plus 2 and actually it's a prototyping board where on the front side of your PCB you have horizontal lines and on the back side you have vertical lines and you can make connections by soldering actually the wires here so I think and it allows you to make prototyping boards without needing jumper wires so you could do the routing with soldering I find that very interesting and I also want to provide an option that you can select a board with that so then you get the chip and then you put your own components on there and then finally I want to have a Retrino an Arduino compatible I call that Retrino so there are a couple my chip with an STM32 microcontroller that actually has a USB interface so that you can just program it to a USB on your PC and this microcontroller next to it has on-chip flash so it should be able to... once it's programmed you just have to provide it 5 volts on the USB port and then it will just boot the Retrino microcontroller from the STM32 so it can be run standalone if you buy it 5 volt and also the 3.3 volt is generated from the 5 volt so the chip for IO use 5 volts but the technology the logic of the technology runs at 3.3 volts or if enough people are interested then we can go to a lower technology node it will be 2.5 volts and that's generated also on this board so once it's programmed you can just run this board by providing it 5 volts with any USB charger so that's the thing so these are the options I foresee now for the crowdfunding campaign so what I'm interested to know is that do you think that people would be interested or some people would be interested in this crowdfunding project so for one project a goal would be 10,000 pys per piece less than 100 dollars and I mean that fully assembled PCB was the chip itself will be cheaper and what is interesting I think by using mature nodes I think we should be able to combine 5 volt or 12 volt or even higher volts on that chip because typically if you go to FPGAs they stop at 3.3 volt and we should be able to even do serial communication RS233 on-chip so everything combined but of course as mentioned before the production will be slower so we're talking about months and not weeks for PCB custom of the cell parts, designs and what are your requirements what do you think are the requirements to make it at ATWIS so that's just a guidance of remarks you may give or you have other questions feel free to ask them why do you think having an ASIC is better than an FPGA on this context so you ask why do you think that the ASIC is better than an FPGA I would not talk about better or worse I think some people just would like to have an an ASIC so there are now also accelerators made for Amiga for example with FPGAs and those people don't like that it's an FPGA, that it's programmable they want to have ASICs but also like I said here the 5 volt capability, the 12 volt capability you typically don't find in FPGA and then you have to use interface chips it depends on your personal preference have you considered making specific ASICs to get heterocomputers from the dead basically for example the ULA from the ZX spectrum or specific chips for the Amiga that we can't find anymore that would be a nice goal I think so the question was if I considered to actually make new batch of existing chips I think the pass per unit will be too high for that I'm talking about yeah 20, 25, 30 so that's the question if it's too high I think I prefer doing that but then maybe combine more than one chip or one chip because the pass won't matter that much from the other side when I can make this a service and if people think this is a project that they want to do they can do it or if you want to do that you can always contact me and we can find a way of doing it it's no problem if you see that is a need for that we can launch it of course I first have to get this first project done before I can start to think about other things but I don't see a problem with that chips have different passes in the original form will you find those passes as well or will they only be reproduced in IO? so the question was if I will provide different buses of the chips currently I choose the microcontroller so that you just have IO and not a memory bus or so on the output it should be no problem to actually make a chip that if the chip is in 65 or 2 mode that these pins or this bus and if you are in Z80 mode these pins or another bus that should all be possible but I wanted to reduce the risk I want to limit the code I have to write on RTL as low as possible to reduce the risk that the chip will have a bug when you get it that's why I want to use for this project battle tested but these things can all be done but that's for later I was wondering why you choose QFN package because typically for the maker such as these type of people it can be really difficult to use it for QFP which can be sold as a maker sold as a maker so the question is why did I use the QFN package and not the QFP package for example it's not fixed yet but that's also so the start-up cost of packaging is so I wanted to have this Arduino Mega so a lot of IOS so you have to have 400 pins and if you want to package something you have to use what they call open tool so packages which are available to package the chip that iMac works with has available because if you don't do it then you have to pay start-up cost to create your package but it's not fixed yet so it can be that I switch to QFP again so that's not fixed yet but it will determine my cost for this first project but do you think it's really easier to QFN or QFP soldering than in sort of a QFN compared to QFP in terms of equipment and QFP you can do it but are we going to have soldering at IMac they told me this is a QFN package with 0.4mm pitch that you should still be able to solder just by just putting solder paste on it and just put it on it and put it in an oven and it should not it's a cost difference in actually packaging QFN versus QFP is about 25% and that's the whole reason that companies have gone to QFN is there's a huge cost savings in that absolutely because you have in the QFP the pins that are sticking out it's more difficult to make them and because the cost is lower having these open tools for QFN and less for QFP exactly because you have to select what's available from the company that will actually okay all right thank you