I may need to add a CPU to a design I am doing. I had rolled my own core once with a 16 bit data path and it worked out fairly well. But it was 600 LUT/FFs and I would like to use something smaller if possible. The target is a Lattice XP3 with about 3100 LUT/FFs and about 2000 are currently used. I believe that once I add the CPU core, I can take out a lot of the logic since it runs so slowly. The fastest parallel data rate is 8 kHz with some at 1 kHz and the rest at 100 Hz. I probably would have used a CPU to start with instead of the FPGA, but there was a possible need to handle higher speed signals which seems to have gone away. I recall that someone had started a thread about serial implementations of processors that were supported by a C compiler. I don't think any ever turned up. But the OP had some other requirements that may have excluded a few very small designs. Are there any CPU cores, serial or parallel, that are significantly smaller than 600 LUT/FFs? The Lattice part has LUT memory even dual port, so that is not a constraint, the LUTs can be used for registers. Rick
The littlest CPU
Started by ●July 19, 2008
Reply by ●July 19, 20082008-07-19
On Jul 18, 10:07=A0pm, rickman <gnu...@gmail.com> wrote:> I may need to add a CPU to a design I am doing. =A0I had rolled my own > core once with a 16 bit data path and it worked out fairly well. =A0But > it was 600 LUT/FFs and I would like to use something smaller if > possible. =A0The target is a Lattice XP3 with about 3100 LUT/FFs and > about 2000 are currently used. =A0I believe that once I add the CPU > core, I can take out a lot of the logic since it runs so slowly. =A0The > fastest parallel data rate is 8 kHz with some at 1 kHz and the rest at > 100 Hz. =A0I probably would have used a CPU to start with instead of the > FPGA, but there was a possible need to handle higher speed signals > which seems to have gone away. > > I recall that someone had started a thread about serial > implementations of processors that were supported by a C compiler. =A0I > don't think any ever turned up. =A0But the OP had some other > requirements that may have excluded a few very small designs. =A0Are > there any CPU cores, serial or parallel, that are significantly > smaller than 600 LUT/FFs? =A0The Lattice part has LUT memory even dual > port, so that is not a constraint, the LUTs can be used for > registers. > > RickThe Xilinx PicoBlaze is less than 100 LUTs plus one block ram. Someone has been working on a simple C compiler for the PicoBlaze, but I have not tried it yet. I have used the PicoBlaze in many projects and I am quite happy with it. I have not used it, but Lattice has the Micro8. Have you looked at it? It has been mentioned here as the Lattice equivalent to the PicoBlaze. Regards, John McCaskill www.FasterTechnology.com
Reply by ●July 19, 20082008-07-19
On Jul 18, 11:09=A0pm, John McCaskill <jhmccask...@gmail.com> wrote:> > The Xilinx PicoBlaze is less than 100 LUTs plus one block ram.That should be less than 100 slices. Regards, John McCaskill
Reply by ●July 19, 20082008-07-19
If a 8 bits CPU is fine you may want to see my site. There is VHDL or verilog design. For this CPU it is easy to find free or non free tools. All is discussed in detail at: http://bknpk.no-ip.biz/usb_1.html "I used 8051 from http://www.cs.ucr.edu/~dalton/i8051/i8051syn. The VHDL code has been translated to verilog to avoid mix languages simulation. The cpu is also slightly modified to be able to use XILINX memories: for ROM I use..." On 19 =D7=99=D7=95=D7=9C=D7=99, 07:23, John McCaskill <jhmccask...@gmail.co= m> wrote:> On Jul 18, 11:09 pm, John McCaskill <jhmccask...@gmail.com> wrote: > > > > > The Xilinx PicoBlaze is less than 100 LUTs plus one block ram. > > That should be less than 100 slices. > > Regards, > > John McCaskill
Reply by ●July 19, 20082008-07-19
On 19 juuli, 06:07, rickman <gnu...@gmail.com> wrote:> I may need to add a CPU to a design I am doing. =A0I had rolled my own > core once with a 16 bit data path and it worked out fairly well. =A0But > it was 600 LUT/FFs and I would like to use something smaller if > possible. =A0The target is a Lattice XP3 with about 3100 LUT/FFs and > about 2000 are currently used. =A0I believe that once I add the CPU > core, I can take out a lot of the logic since it runs so slowly. =A0The > fastest parallel data rate is 8 kHz with some at 1 kHz and the rest at > 100 Hz. =A0I probably would have used a CPU to start with instead of the > FPGA, but there was a possible need to handle higher speed signals > which seems to have gone away. > > I recall that someone had started a thread about serial > implementations of processors that were supported by a C compiler. =A0I > don't think any ever turned up. =A0But the OP had some other > requirements that may have excluded a few very small designs. =A0Are > there any CPU cores, serial or parallel, that are significantly > smaller than 600 LUT/FFs? =A0The Lattice part has LUT memory even dual > port, so that is not a constraint, the LUTs can be used for > registers. > > Rickim OP hi I may have different interests, yes smallest nonserialized CPU as for your current task is one of the wishes, and here also there is no one definitive winner pico paco blazes and mico8 are out of the question, most others are too large i have used cut AVR core in XP3 but i dont recall the lut count Antti
Reply by ●July 19, 20082008-07-19
"rickman" <gnuarm@gmail.com> wrote in message news:d9ecb5e5-5712-4430-8156-375bbf0ec7fd@z66g2000hsc.googlegroups.com...>I may need to add a CPU to a design I am doing. I had rolled my own > core once with a 16 bit data path and it worked out fairly well. But > it was 600 LUT/FFs and I would like to use something smaller if > possible. The target is a Lattice XP3 with about 3100 LUT/FFs and > about 2000 are currently used. I believe that once I add the CPU > core, I can take out a lot of the logic since it runs so slowly. The > fastest parallel data rate is 8 kHz with some at 1 kHz and the rest at > 100 Hz. I probably would have used a CPU to start with instead of the > FPGA, but there was a possible need to handle higher speed signals > which seems to have gone away. > > I recall that someone had started a thread about serial > implementations of processors that were supported by a C compiler. I > don't think any ever turned up. But the OP had some other > requirements that may have excluded a few very small designs. Are > there any CPU cores, serial or parallel, that are significantly > smaller than 600 LUT/FFs?I would suggest you check out one of the many free PIC cores available on the web. The reason for suggesting PIC is that it is accompanied by a processional IDE from Microchip. Developing a processor is easy and the web is full of wonderful and clever implementation but at the end of the day if you have to develop some software you need a good IDE. I just tried a quick push-button synthesis of a 16C54, *********************************************** Device Utilization for LFXP3C/PQFP208 *********************************************** Resource Used Avail Utilization ----------------------------------------------- LUTs 374 3072 12.17% Flipflops 83 3072 2.70% Block RAMs 0 6 0.00% IOs 67 136 49.26% ----------------------------------------------- Hans www.ht-lab.com> The Lattice part has LUT memory even dual > port, so that is not a constraint, the LUTs can be used for > registers. > > Rick
Reply by ●July 20, 20082008-07-20
On Jul 19, 2:57 am, Antti <Antti.Luk...@googlemail.com> wrote:> On 19 juuli, 06:07, rickman <gnu...@gmail.com> wrote: > > > > > I may need to add a CPU to a design I am doing. I had rolled my own > > core once with a 16 bit data path and it worked out fairly well. But > > it was 600 LUT/FFs and I would like to use something smaller if > > possible. The target is a Lattice XP3 with about 3100 LUT/FFs and > > about 2000 are currently used. I believe that once I add the CPU > > core, I can take out a lot of the logic since it runs so slowly. The > > fastest parallel data rate is 8 kHz with some at 1 kHz and the rest at > > 100 Hz. I probably would have used a CPU to start with instead of the > > FPGA, but there was a possible need to handle higher speed signals > > which seems to have gone away. > > > I recall that someone had started a thread about serial > > implementations of processors that were supported by a C compiler. I > > don't think any ever turned up. But the OP had some other > > requirements that may have excluded a few very small designs. Are > > there any CPU cores, serial or parallel, that are significantly > > smaller than 600 LUT/FFs? The Lattice part has LUT memory even dual > > port, so that is not a constraint, the LUTs can be used for > > registers. > > > Rick > > im OP > > hi I may have different interests, yes smallest nonserialized CPU > as for your current task is one of the wishes, and here also there > is no one definitive winner > > pico paco blazes and mico8 are out of the question, most others > are too large > > i have used cut AVR core in XP3 but i dont recall the lut countHave you tabulated your findings anywhere? The last time I did a survey of ARM7 processors, I put it all into a spread sheet and posted it on the web. I think it was useful for a while, but the market overtook it and I couldn't keep up! I read your thread about the serial processor and it was interesting. I think my project actually has the time to use such a processor, but I think you never found one that met your requirements. I am not looking for a large address space, but I would like for it to be able to read data from an SD card. My design uses FPGAs both on the application board and the test fixture. Ultimately I want the test fixture to be able to read a programming file from an SD card and configure the target FGPA without a programming cable. Of all the suggestions, so far the PIC sounds like the best one. I couldn't find a C compiler for the picoblaze or the pacoblaze. There is mention of someone creating one, but the web site is no longer accessible. Rick
Reply by ●July 20, 20082008-07-20
On Jul 19, 12:23 am, John McCaskill <jhmccask...@gmail.com> wrote:> On Jul 18, 11:09 pm, John McCaskill <jhmccask...@gmail.com> wrote: > > > > > The Xilinx PicoBlaze is less than 100 LUTs plus one block ram. > > That should be less than 100 slices.Still, that's 200 LUTs which is very small. But I can't find a C compiler for it. Rick
Reply by ●July 20, 20082008-07-20
On 20 juuli, 06:58, rickman <gnu...@gmail.com> wrote:> On Jul 19, 2:57 am, Antti <Antti.Luk...@googlemail.com> wrote: > > > > > On 19 juuli, 06:07, rickman <gnu...@gmail.com> wrote: > > > > I may need to add a CPU to a design I am doing. =A0I had rolled my ow=n> > > core once with a 16 bit data path and it worked out fairly well. =A0B=ut> > > it was 600 LUT/FFs and I would like to use something smaller if > > > possible. =A0The target is a Lattice XP3 with about 3100 LUT/FFs and > > > about 2000 are currently used. =A0I believe that once I add the CPU > > > core, I can take out a lot of the logic since it runs so slowly. =A0T=he> > > fastest parallel data rate is 8 kHz with some at 1 kHz and the rest a=t> > > 100 Hz. =A0I probably would have used a CPU to start with instead of =the> > > FPGA, but there was a possible need to handle higher speed signals > > > which seems to have gone away. > > > > I recall that someone had started a thread about serial > > > implementations of processors that were supported by a C compiler. ==A0I> > > don't think any ever turned up. =A0But the OP had some other > > > requirements that may have excluded a few very small designs. =A0Are > > > there any CPU cores, serial or parallel, that are significantly > > > smaller than 600 LUT/FFs? =A0The Lattice part has LUT memory even dua=l> > > port, so that is not a constraint, the LUTs can be used for > > > registers. > > > > Rick > > > im OP > > > hi I may have different interests, yes smallest nonserialized CPU > > as for your current task is one of the wishes, and here also there > > is no one definitive winner > > > pico paco blazes and mico8 are out of the question, most others > > are too large > > > i have used cut AVR core in XP3 but i dont recall the lut count > > Have you tabulated your findings anywhere? =A0The last time I did a > survey of ARM7 processors, I put it all into a spread sheet and posted > it on the web. =A0I think it was useful for a while, but the market > overtook it and I couldn't keep up! > > I read your thread about the serial processor and it was interesting. > I think my project actually has the time to use such a processor, but > I think you never found one that met your requirements. > > I am not looking for a large address space, but I would like for it to > be able to read data from an SD card. =A0My design uses FPGAs both on > the application board and the test fixture. =A0Ultimately I want the > test fixture to be able to read a programming file from an SD card and > configure the target FGPA without a programming cable. > > Of all the suggestions, so far the PIC sounds like the best one. =A0I > couldn't find a C compiler for the picoblaze or the pacoblaze. =A0There > is mention of someone creating one, but the web site is no longer > accessible. > > RickHi Rick here is reply to your post :) http://antti-lukats.blogspot.com/2008/07/rules-of-life.html in short i am doing almost the same as you intend to at the moment Antti
Reply by ●July 20, 20082008-07-20
> > Of all the suggestions, so far the PIC sounds like the best one. I > couldn't find a Ccompilerfor thepicoblazeor the pacoblaze. There > is mention of someone creating one, but the web site is no longer > accessible. > > RickYou can find a download link here : http://www.asm.ro/fpga/ Disclaimer : I never used it myself Josep





