Home    Bloggers    Messages    Webinars    Resources   
Tw  |  Fb  |  In  |  Rss
Jacek Hanke

Redesigning the Architecture of the 8051

Jacek Hanke
<<   <   Page 2 / 4   >   >>
Duane Benson
Duane Benson
7/5/2012 12:01:36 PM
User Rank
Blogger
Re: I'm embarrased to say that...
Karl - re: command line vs IDE... This is always a frustrating subject for me. I am generally able to eventually get familiar enough with an IDE to do real work. The biggest problems for me come in with an MCU architecture I'm not familiar with plus a new IDE. There are just too many variables. If something won't compile, is it because of my code? Are the includes or libraries in the wrong place? Am I using the wrong operations in the IDE? Just too many variables.

Of course, in general, command line compiling drives me even more nuts. I was lucky with the Xilinx Spartan-6 LX9 board. One of the samples it came with does use command line for compilation, configuration and everything else. In this particular case, it came with pre-set batch files. They would work just with a double click and I knew with confidence that any issue I ran into was caused by me in the code.

I'm on to the IDE now, which, in the long term, will be much more comfortable and much easier for me to use, but it will be a learning process.

50%
50%
Karl
Karl
7/5/2012 11:53:02 AM
User Rank
Guru
Re: I'm embarrased to say that...
@Brian:  I am thinking about things like FIR filters and maybe FFTs where the raw data is processed in the input path.  Also the case of accellerators where the raw data is DMA'd to memory then written back out for processing.

This is based on discussions by DSP designers rather than first hand knowledge, so if incorrect, I apologize.  There seems to be DSP associated with real time as well as algorithms.  Things like GPU's and OpenCL seem to focus on computation intensive vector/array of very large sizes.  In one case it looks like streaming thruput is key and the other time is key.

I suggest maybe look at "Getting Started with FPGAs" on LinkedIn.

Hope I haven't wasted your time with hearsay..........

50%
50%
Brian Bailey
Brian Bailey
7/5/2012 11:16:59 AM
User Rank
Blogger
Re: I'm embarrased to say that...
Karl - I do not quite see how a DSP and CPU are different in terms of having to fetch data, that is worked on in the core and then placed back somewhere. Yes, a DSP usually has multiple busses so that data can be moved in and out quicker. If you build a DSP core in the fabric of an FPGA, then you may use data streaming in and out of the block, but this is a high-level architectural issue rather than one at the core level. In my high-level synthsis blogs, I will most certainly cover memory architectures and how it can affect performance.

50%
50%
Karl
Karl
7/5/2012 10:30:03 AM
User Rank
Guru
8051 programming language(s)
@Jacek:  Which is the most used language for programming the 8051?  You mentioned that the original instruction set had to be used and I see 2 reasons.

First would be compatability with existing applications and the other would be use of existing compiler(s).  Are there others?

 

50%
50%
Jacek Hanke
Jacek Hanke
7/5/2012 9:34:30 AM
User Rank
Blogger
Re: I'm embarrased to say that...
OK, let's go step by step. I cannot agree that 8051 is just a relic, cause even if you look at Brian's link: http://microcontroller.com/8051_Microcontroller_Suppliers/ you can easily see, that 8051 is still in the game. I just don't believe that the big guys like Atmel, Maxim or Microchip would offer something which is relic. From my point of view, I believe that several hundred licenses of "fast and furious as DCD's" (as William said) 8051 IP Cores sold are the sign that this MCU still lives and is doing well.

What I can agree (grin) is that standalone 8051 is just nothing. That's why I think that most of 8051 IP Core vendors offer additional peripherals and functions like Digital Core Design. You can see the example of it here:

http://dcd.pl/ipcore/197/dq8051/

http://dcd.pl/workspace/documentation/xil/dq8051_ds.pdf

 

We must also remember that embedded devices is not only FPGA, it's also ASIC. And 8051 is also doing well there. For example there're several companies which embedded 8-bit processor in their SoC.  Eg Cypress with its PSoC3 with 8051 – a true programmable embedded system-on-chip integrating configurable analog and digital peripheral functions, memory and a microcontroller on a single chip. Can you see an 8051 inside of it? It's a pity that I cannot tell you whose IP is that (grin).

So guys, as Brian said before: "Long live the 8051!"

50%
50%
Karl
Karl
7/4/2012 9:37:01 AM
User Rank
Guru
Re: I'm embarrased to say that...
@Paul:  Thanks. I think I read somewhere that volatile is an embedded C keyword and Yes, it seems to handle that case.  My concern is that the C compilers for the embedded ARM's are GCC which may not be embedded C.  I don't know. 

My point is not really the language, rather the need to understand at least the hardware functions at the MMIO(driver) level.  However that is not sufficient to design an fpga(IC chip).  The data flow among the registers and memories and the conditions gating(enabling) thos transfers along with whatever operators may be applied to the data along the way.

That is why I stressed the "sequential" aspect of HDL.  Amid all the hullabuloo about paralllelism of the FPGA, which is a basic capability, unless the dataflow has several assignments enabled at the same time only on will actually happen.

That is not to say that several independent assignments cannot occur, is is just that is not a performance issue.

As far as I can understand DSP, FPGAs are ideal because the data is processed where it is, rather than getting it from memory, putting iit in registers, doing the op and putting it back into memory,  All that data juggling wastes time and that is the root of FPGA performance.

50%
50%
Paul A. Clayton
Paul A. Clayton
7/3/2012 8:21:34 PM
User Rank
Beginner
Re: I'm embarrased to say that...
@Karl: C is often referred to as a portable assembly (and historically languages have used translation to C code to provide a compiler--Java bytecode serves a similar purpose for some more recent languages).

With the "volatile" keyword, I think one can prevent reads and writes from being optimized away.

50%
50%
Karl
Karl
7/3/2012 1:24:54 PM
User Rank
Guru
Re: I'm embarrased to say that...
@Max:  OK, maybe there is a C compiler.  Is it a full C with all the function libraries?

Does C still qualify as a "High" level language, or is it really a shorthand for assembler that has better syntax?  Anyway, it is very close to the hardware like assembly.

One problem with C has been that the optimizer would throw away the writes to PIO that had no corresponding read because it does not allow "write only" code.  Probably for the gcc based.

So if something is "programmed in C" does that really mean that C syntax is used, or is it the "C language"?

50%
50%
Karl
Karl
7/3/2012 1:07:51 PM
User Rank
Guru
Re: I'm embarrased to say that...
@Max: It is obvious that these acronyms seem ambigous, sorry.  Does the soft 8051 come with timers/counters.  Really, no matter because the designer has to program them and therefore must understand the need and usage

"With regard to the 8051, this is an MCU because it is inherently equipped with a bunch of counter timers and suchlike. Different vendors augment their 8051 cores with different amouns of menory and different numbers / mixes of peripherals."

 So it is not sufficient to say 8051 because it comes in so many flavors.  Again, I thought the focus was to be FPGA and that means "soft core" period.  Another mistake I make is assuming that engineers try to use unambiguous technical terminology.

 
 


50%
50%
Max Maxfield
Max Maxfield
7/3/2012 12:33:20 PM
User Rank
Blogger
Re: I'm embarrased to say that...
@Karl: re your comment: "Since the 8051 is programmed at the assembly level, then the designer must understand the hardware and how to interface, so Jacek is the 8051 a true MCU?"

Well, first of all, to my mind it doesn't matter how you program something (assembly, C/C++, BASIC, Python, whatever...), this doesn't change what it is. An MCU is an MCU based on its architecture (see my previous comment).

Secondly, who said that the 8051 had to be programmed in assembly language? I'm not saying that you can't get assemblers for it, but as far as I know most folks now program their 8051s in C or some other high-level language.

50%
50%
<<   <   Page 2 / 4   >   >>
More Blogs from Jacek Hanke
In this blog we can share our experiences on the topic: "What kind of support can I get from you?"
In order to implement the components of a new chip design, any IP core should be delivered with everything needed to design, test, and validate that core in the target product.
An IP vendor's portfolio should cover the types of cores and designs it can offer, along with previous customers who can share their success stories.
A knowledgeable and skilled IP core development team will always be able to adapt to new requirements based on previous experience.
If you are interested in licensing a third-party IP core, it's a good idea to ensure that the vendor can also supply you with the debugger. The ideal situation is to obtain the debugger together with the IP core -- all from one vendor.
flash poll
follow us on twitter
follow Xilinx on twitter
like us on facebook
like Xilinx on facebook
All Programmable Planet     About Us     Contact Us     Help     Register     Twitter     Facebook     RSS