8052.com proudly presents
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: -
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.
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.
Thirdly our intrepid widget manufacturer has decided that he wants his core to have some custom features. Which will allow him to perform some time consuming task in hardware and he needs a 8052 core which is almost but not quite 8052 compatible so he either pays the commercial provider to make the design changes or he rolls his sleeves up and makes the changes himself.
Fourthly our widget manufacturer has had such huge sales that he is churning out thousands a month and his major cost is now actually making and populating the circuit board. He is going to move his design into an FPGA as in the first example but not this time for reasons of security but because he is going to get the FPGA design converted into an ASIC using the FPGA as a prototype ASIC. An example of company that provides this type of conversion service is Oxford Semiconductors.
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
Lots of application notes http://www.xilinx.com http://www.altera.com