8052.com proudly presents

Softcores

by Jez Smith


What is a softcore?

In terms of FPGAs a softcore could be considered to be the hardware equivalent of a software library function a blackbox where the user knows the interface details, knows the function performed by the function, but needs to know nothing about the internal workings to be able to use it. Softcores are developed usually by third parties working independently of the FPGA manufacturer and usually sold to end users through partnership deals with the FPGA manufacturer, as is the case with Xilinx and Altera. There are hundreds of different softcores available but most readers of this will be interested in 8052 softcores. Generally 8052 compatible softcores come in two types, those provided by commercial developers such as http://www.aldec.com/products/ipcores/ and http://www.e8051.com/ and those which are produced by enthusiastic amateurs such as http://www.e.kth.se/~e93_daw/vhdl/ The difference between them being that the commercial cores will have been proven to known standards and for a price can be modified without the end user having to get his hands dirty. The amateur produced cores you really don't have the luxury of getting a fully proven design and you may have to rewrite some or even most of a design before it will work for your target device.

Why use a 8052 softcore?

People may be thinking why would you want a 8052 softcore in a FPGA? There are 4 principle reasons why a widget manufacturer might consider using a 8052 softcore in place of a standard 8052 in his design: -

  1. Firstly cost reduction. If our widget has a standard 8052 in a 40 pin dual in line package, or a quad flat package plus several other though hole mount or surface mount devices then the cost of producing and testing the circuit board in closely related to the number of layers and vias that the board needs. Placing the design in an FPGA with a softcore can significantly reduce these costs, increase reliability and add the ability to add functionality such as remote design updates over TCP/IP.

http://www.xilinx.com/xilinxonline/partners/fuwhpaper.pdf

  1. Secondly it might be that the widget is going to be introduced into a very competitive market where it’s highly likely that the competition will buy his product and try to reverse engineer it. All of the circuitry plus a 8052 softcore is placed into a FPGA and we use the inbuilt encryption function of the FPGA to ensure that the design cannot be read out of the FPGA. We have now produced a design in which the internal design and the 8052 code is completely hidden inside an impenetrateable black box. The code prom being included in the FPGA.

An example of the type of design security available with Xilinx FPGAs Actel promotes its nonvolatile-FPGAs as being highly secure, and they also offer a 8052-softcore.

O.K how do I convert my design to one which uses an FPGA and an 8052 softcore?

Glad you asked me that. There are two real possibilities: - The first is that you have no knowledge of hardware design for FPGAs and don’t have the time or inclination to learn. The solution is to go to a commercial softcore producer and ask them to convert your design into a FPGA with a softcore, which they will do for an alarming amount of hard cash. What you get at the end of that process really depends on how well they have understood your design requirements you will have no real control of the design decisions made for the conversion, and you need to ensure that you know exactly what the deliverables are. The other route is that you convert your design yourself using your hardware description language of choice, plugging in the purchased or free 8052 core. This route is more time consuming but its far cheaper and using the correct tools to verify your design http://www.model.com/products/60/downloads.asp You do have a lot more control over the whole process.

Links to various resources

Most popular FPGA manufacturers

Lots of application notes http://www.xilinx.com http://www.altera.com

Various free cores

http://www.opencores.org

IEEE VHDL standards FAQ

http://www.eda.org/comp.lang.vhdl/FAQ1.html#4.8

Random tools, models and resources

http://tech-www.informatik.uni-hamburg.de/vhdl/