 Cymru o'i ddysgu ddweud ydydd yng Nghymru yn ymdegi amdano oedd y byddai'r hordwyr. Dwi'n rhai bod yn ystod o gael, rydw i roi'n gilydd i'r holl ddweud eich cyffredinol. Roeddwn i'n meddwl o'r ddweud o'ch cyfaint o'ch cyfaint, a'u'n mynd i'n gofynu ystod o'r cyfaint, o'n meddwl i'r rhai o'r cyfeiri i'r holl i'r holl ddweud mewn dyfodol o'r holl ddweud o'u cyffredinol? Efallai yma'r bwysig? Mae'n ddod. Rhaid. Mae'n teimlo i'r bobl, ac mae'r bobl. Mae'r bobl yw'r bobl. Mae'n ddweud eich bod yn rhywbeth mewn gwirionedd. Mae'n inventedd. Mae'r bobl sy'n ei ddweud, ac mae'r bobl eich bod yn rai gwneud. Felly, mae'n ddweud i'r bobl. Mae'n ei ddweud. Ac rwy'n gweithio i ni'n ddweud fel o'r hollfa, o'r oedgar iawn i fynd eisiau, i fynd i unrhywbeth, i fynd i fynd i mwynhau neu'r hollfa. Felly, ydych chi'n cael ei siarad, ac aen nhw'n gallwn hynny mewn maen nhw'n gynnal. Yn hyn, mae'r tyniad yn y gallwn yn maesio. Yn ymgyrchu, nid yna defnydd yna hi wedyn ni wedi yağr hynny, ond mae'n gallu i gael yn ffordd mynd i gael. Mae ydych yn simlir am y pwynd i ddechrau. Not identicul. It's actually quite difficult to find the one that I have on the internet or pictures thereof. I certainly don't own it anymore. But it was a great little device, I could hook up my little electronic circuits and that really got me into looking at electronics from an early age. Likewise, I mean we didn't have the internet at this point in time. We had magazines that you'd buy from the local stationers. WH Smiths etc. This was a fairly entry level one called Everyday Electronics. chickens cyd fails ond oed lef睡liad wych cyffl onion meny банngaeth ychydigion o wef Hunan cymrylu, yr aelod gyffredin cyffredin, ac mae� newid yinkle mae ail gymell y galliau sy'n mynd i'n gilydd yn risks fydd ni wedi cyffredin cymer爷ajaidd, syles no fyddc ychydig bod rhai cyfrinetiaeth safelyn neu i bezig ydych chi'n gweld yn yma'r magasins? A phobl yw'r amser yn ffyrdd, ychydig yng Nghaerysiolonau'r magasins ar y dyfodol, sy'n ddau'r cyflwyno yw'r cyflwyno. Felly mae'r cyflwyno'r cyflwyno'r cyflwyno yw'r cyflwyno. Rwy'n meddwl i'r gweithio'u gwybod. Rwy'n meddwl i'r gweithio'u gweithio. Mae'r gweithio'u gweithio'u gweithio'u gweithio'u gweithio'u gweithio'u gweithio. Mae'n meddwl i'r meddwl i'r gweithio, yw rwy'n meddwl i'r gweithio'u gweithio'u gweithio'u gweithio'u gweithio'u gweithio'u gweithio'u gweithio'u gweithio. Bydd iawn i'r bych hyn, yw'r gweithio'r cyflwyno, rydyn iddiw ddweud o bobl eisiau i'r geometrônain i'r perceidgau a respectbwysig ni. Mae'r fyddiad yw'r unrhyw bethau. Yn chi'n gweld fydd, rydyn ni'n defnyddwch i'r cwestiynau bod ei wneud ei ChYPS, ar Fournys 6809, a R6502, a Zilog Z80. Efallai'r rbyn wedi gweld gweld fyddion cwrtaiddio. Felly, yn y dyfan y pwysig, rwy'n eithaf rwy'n gwneud y rhywbeth ond how to program these because you are very much confined to things like hex editing and or writing out machine code that got loaded via a basic command, etc. In order to get round this, I had to understand this, which is basically the Von Neumann architecture. This is pretty much how every computer is today in one shape or form. There are variations on it. This is the recipe, if you like, that has been taken to its logical extreme, as I will point out shortly. There's the man himself. I now had to learn all this stuff. In these days, we had to write it in notebooks and things. We couldn't actually do it on screens. We didn't have computers that were capable of doing that in many cases. We had to write it in square notebooks, etc. Later, if we were lucky, we would get a hex keyboard like this where we could enter the codes indirectly to actually program things. Then a bit later on, dot matrix printing as well, so we could actually print out our listings of assembly for keeping for all long purposes, etc. Rather than having to rely on writing them out by hand. Then this, for example, is the Apple II. At this point, we're getting into having screens and being able to edit machine code on the fly, do assembly code on the screens itself, and save them back to disks, etc. I was still very much into the electronics, and into digital electronics in particular. I was still thinking a lot in terms of logic gates, boolean, algebra, etc. This guy, who I showed you in 1957, created something called the perceptron. Has anyone heard of the perceptron? A few people. He was a little before his time. What the perceptron does is really emulates the basic operation of a neuron. It's a very rough and ready electronic model that he built in order to do this. That was in 1957. When I was at college, a university in Kingston, I came across this in a book shop, which fascinated me. This is about parallel distributed processing. In that day and age, that didn't mean lots and lots of computers working in parallel. What they were talking about in this book is different ways of computing based on natural algorithms, neural networks, perceptrons, and all sorts of different things. It was a fascinating book. I did wonder whether I could combine these disciplines in some way at this point. I did spend some time researching on it, but I had trouble getting hold of the technology I needed to actually make any sense of this, other than building just a very small number of neurons or perceptrons. Then suddenly this happened, 68,000. That made this possible. Does anyone recognise the name of that machine? That's right. That was the predecessor to the Apple Macs. It had a cast iron base. It weighed a ton, but this is what actually preceded the small Mac Pluses, which became the more popular graphical user interface products from Apple. That got me into using things like Pascal. We had to learn that at college. That was the high-level language that we had to learn along with assembly and machine codes. I was a bit disappointed. I really wanted to learn C at this point. Then the big change was the 8086, the 80186, the 286, 386, et cetera. That happened creating these. Then things started getting really, really prolific. I actually had one of these temporarily from work and used this to do some programming. I did revisit my parallel distributed processing in those days on the 55SX, doing some basic perceptrons. Again, I had maybe a few hundred neurons. Again, not much was happening. It was taking an awful long time to do anything with these things. In particular, you had a co-processor that you needed to add to the 55SX, which I couldn't afford. Then there was this AI winter. I couldn't find any good, snowy pictures, by the way. We'll just take the wine. The bottom dropped out of AI in terms of interest. People stopped working on it. Funding stopped coming through, et cetera. It kind of got lost for a while. At the same time this was happening, I recognized this very early version of Windows. At this point I ended up working with companies producing graphics cards, et cetera. You'd see that on one screen. On the other screen you'd see DOS, which was where you'd be controlling this from, which got me into these, which are graphics cards. I'm working with companies producing these on the electronics and the software side. Meanwhile, the internet happened with lots of data centres, racks of computers started emerging, and because we run out of megahertz, things began to go parallel rather than just faster and faster. At that point I moved into lambda calculus and pie calculus, learning languages such as Erlang, et cetera. The number of processors grew. Here we're showing some examples from Adaptiva. The parallella type products. I then got into using in hardware the XMOS chips, which are parallel chord chips. On the right there we've got the parallella, which is a 16-core embedded machine. Anyone recognise what's on the bottom? That's a bit from the past. That's right, it's a transputer. I always wanted to work on those and never had a chance. I was working in graphics at the time. Couldn't get an error one. The main man who created that and the OCam language, David May, also created the XMOS chip in conjunction with one of his PhD students out of Bristol. Meanwhile, because of this, the perception re-emerged and it got used in neural networks in more sophisticated versions and it's made a real comeback. These examples are showing convolution neural networks, which are very good for processing, categorising images, for example. A lot of the image work you see if you do an image search, that kind of thing on Google, it will be based on machine categorisation using convolution networks and neural networks. Remember these guys? They've grown up into this kind of thing. That's a Titan, which was up until last year, pretty much the state of the art in terms of GPUs, very high performance mathematical floating point calculating on a board. That, in turn, this year has turned into Pascal. There are literally thousands of these GPU cores all working in parallel in order to crunch numbers. That's the kind of thing that you need if you want to train a large neural network. Certainly with the likes of Google, Facebook, IBM, Microsoft, they're all spending a lot of time crunching neural networks, training neural networks for processing images, conversations, et cetera. They're using them to train these neural networks and convolutions, but we're all still dancing to that old Van Newman tune. In essence, they are the same thing. They are all multiple versions of this. That took me back to my work on PDP and in thinking how I would use these developments to produce robotics at lower cost and make them accessible. To make them smart, I also need to put artificial intelligence into embedded hardware as well. However, we're not going to be cramming any craze and XC30s into robots any time soon. We're going to have to find some other way of doing that. We don't have the power envelope for these type of things. What we need is a kind of brain chips for want of a better term, and that's what really took me back away from John Van Newman and looking back at Alan Turing's work and looking back at basic Turing machines. There's an example there of the diagram of a Turing machine. Reshuffling the pack, making Turing and Rosenblatt's work more important and re-looking at the energy envelopes that are required. What I envisaged will probably happen if we can imagine on this first curve here is the von Neumann architecture what we will probably see is these new architectures emerging for processing these very large amounts of data when it comes to neural network, not just training the neural networks, but actually inference machines. That's the machines that actually run the neural networks. It might be running the actual intelligent car, driving the cars automatically, for example. The problem we have is the amount of power per neuron. If you're using Van Newman architectures in order to train and infer your networks, you need enormous amounts of power. In order to get it down to something similar, if we look at this particularly good computer that we have inside here, this is a kind of two-watt device and per neuron, we're down in pickajaws of energy. That's where we've kind of got to get down to in terms of processing in order to make these things embedded, portable, and to run off batteries, et cetera, and be properly used in robotics environments. That's what this new S-curve is about. What you will see a lot of is the old Van Newman architectures and some of these new technologies being used together in combination. Hybrids, if you like. If you look at what people like Intel are doing right now, their next generations of Xeons will actually include their ulterior FPGAs from their acquisition, so that you've got reprogrammer or parallel cells in there that can accelerate specific functions such as training neural networks, inferring neural networks, et cetera, and you'll see this in servers and there will be similar work from people like IBM, et cetera, as well, and Xilinx, which means new building blocks, really. The old algorithms aren't going to work in the same way. We have to work at a different level. We have to break problems down differently. Anyone that's done any AI work using neural networks will find it a slightly different exercise. It's a bit more mathematical. One of the new tools that I'm going to talk about here is this is an example of Verilog, which is a language that we can use to actually programme logic, to actually create chips very fast, parallel components. On the FPGA side, what's changed for me is this chap, Clifford Wolfe, has developed, he announced in September, he developed his ice storm collection of tools, which was the first open source re-engineering of an FPGA bitstream, as well as a Verilog HDL toolchain. That really changes the playing field. That's the first time we've ever had that. Before, you would have to download the tools that come with the FPGA vendor. If you were using, say, Xilinx FPGA, you would have to download literally hundreds of gigabytes of their development tools. They are huge. What does this open stack consist of? Well, Yosis is the piece that will take your Verilog and convert it into a hardware description language, a HDL. It takes that algorithmic code and it actually produces a HDL output that can then be placed and routed into the FPGA fabric itself, into the chip. As it says there, project ice storm aims to document the bitstream format, the lattice. He's focused on re-engineering the lattice bitfile simply because they have very good documentation. One of the most difficult things with this is actually working out how the bitfile is constructed. So, Yosis, and what about the other tools? Well, first of all, it's open source. That means anyone can take this, expand this, they can look into it and see exactly how this works. That's very important. It's also extensible. It's not necessarily tied to one vendor. Although he's tied it to the lattice chips for the moment, there are other variants being developed by other people that basically connect into his work that provide support for other chips and we'll see more and more of that coming. It's actually really small. It's not tens of gigabytes of a download. The example we're going to be using in the workshop tomorrow if we get all the bitfiles written will actually run on the Raspberry Pi. So the entire toolset for creating from verylog down to the bitfile and running on the FPGA actually runs on the Raspberry Pi. And it's fast. All you need is an editor and a command line and you can just get your stuff done. EOSIS was created to support these small one to 8,000 logic blocks which will enable you to build one picco or several picco cores based on a RISC 5 or an AVR. Very small type cores. They also have available to them low voltage differential signalling which is great for accessing things like cameras, digital video outputs or very fast digital signal converters and digital to analog converters. And they're very low power these lattice chips. They're very good. They're actually used primarily in mobile markets. They're in telephones for flashing LEDs in a nice Apple like way in many cases. They're available in CSP and BGA. Those are pretty difficult packages to work with particularly the CSP. They are tiny, but they are also available in QFPs and some of them are available in QFNs as well. So it's actually handleable by hobbyists and people like ourselves. And they're relatively low cost. They're five to ten dollars a piece. So what would you use an FPGA to make if you're getting into them? Some of the popular applications are things like vintage games consoles and emulation. These are ideal for recreating something like a Z80 Commodore 64 or some odd thing that you just cannot buy anymore, but you like to emulate. LED arrays. Video and graphics, they're great for producing stuff that's really fast and parallel. Whether that's LED arrays or just outputting raw VGA or DVI. They're also really good for doing complex multiple audio channels. So if you want to actually produce multi-track audio with DSP effects, echoes, that kind of thing, they're great for doing it. Real-time digital signal processing and ADC that can be used in lots of different areas for control and robotics. PicoRisk 5 is a very up and coming design, a completely open design of a core, including all the instructions that is completely open. You can run those in these lattice chips in their smaller Pico variants. Or you could, for example, model a 300 neuron worm, which is something that I'm doing some work on, just because I can. Here you'll see some examples. Down there we've got the eye stick on the left-hand side. It's about $25, $20. There's a more, the larger chip down here, the 8K version. There's Clifford and Edmund's ICO board, which is a pie daughter board as well. You can also target other chips. I mentioned this briefly. Siligo Green Pack is a very small FPGA. They're about 50 cents each. They're like CPLDs. And then you've got larger Xilinx series 7s. But we can't target the bitfiles. You still have to install their bitfile tiles. Even though you can use Yosis to create the HGL from the very log, you have to use their tiles to put the bitfile on. I'm not going to go into too much detail here. We can talk about some of that at a workshop tomorrow. So Yosis has been likened to be the GCC of hardware. So if we look at what GCC enabled, GCC and Binutil enabled Linux, Yosis is going to enable all sorts of different possibilities, open source chips and all sorts of new processing ideas, et cetera. It's a very exciting time. So what happens next? What do I work on next? Given this, one of the most affordable open source hardware, an FPGA development platform at OSHOG 49 in May, I did an FPGA talk. I met with Ken afterwards in the pub and we decided we should put a board together that could be used along with the Yosis tours in order for people to actually start developing on FPGAs in a simple way. In June, after Ken passed to start the design over to me, I worked on the schematics and the CAD. Ken went off and did his UK tour with Toby. In July, after experimenting with different layouts and functions, we settled on an STM32 ARM chip which would help program the lattice instead of the FTDI chip but we can also run programs on that as well so it's useful. It's like having an Arduino built in and we included the maximum connectivity we could which includes Arduino, Shield type compatibility. We've got a Raspberry Pi header so we can interact with a Raspberry Pi and we've got P-mods for the FPGA and for rapid development. P-mods allow modular type development. They're small pieces that can be added on. They're very simple to actually make and design which makes it good for the development system and in August we prototyped free in the UK and then we started manufacturing 50 via Toby in China in Shenzhen which arrived this week and there is the puppy. This is what we're going to be using tomorrow in the workshop for those of you attending. Just a quick show around here. The connectors on the outside are P-mods. They're available in a single P-mod format which is four 1-bit ports and then two power lines or in a double where you've got two locks of that. So you've got four bit ports, two power and then another four bits above that another two bit power. It's kind of a Goldilocks size in terms of interfacing. It makes a nice size card. So now we can work together on all of these kind of interesting things and make it all open source and available for everyone so that we can all benefit. We can make accelerators. This is a very popular way of packaging up some FPGA functionality wrapping an API around it that can be talked to from the STM32 or from the Raspberry Pi called from Python or from C languages. Dynamic processing and that's the ability to reorganise the FPGA depending on what sort of jobs running on the system at the time and we see a lot of work in that sort of area. Innovative cores and arrays what you see is things like forf engines. So rather than actually designing a core that runs instructions you design a core that runs forf straight out of the box and we've got some good examples of that. Perhaps Ken might show us a bit of that tomorrow if we get time at the end of the workshop. We've got some examples. Digital signal processing which I mentioned earlier. High speed video and audio. Software defined radio is another good area for FPGA work. Motion prediction and control is very important in the robotics market and you need very fast processing for this. We're seeing a lot of this being run on FPGAs now rather than just algorithms. Hard coded hardware PIDs process control algorithms that are very fast and responsive for fast motor loops for example. And then one of the other things I think we're going to see a lot more of and stuff that I'm working on are what I call the NTM's Neural Turing Machines which are more fuzzy processing engines that can complement the harder algorithms running on the microcontrollers and processors. Now all this helps me and my friends to better robots any questions?