I want to execute the encryption algorithm on ML 506 board.So how can I give inputs to board and how can I receive the output from the board. In some papers they mentioned it is possible using HYPER TERMINAL. Can anyone know this?
U can send data and receive data from memory card on ML506 or u can use rs232 cable with this u can send data from pc to board and board to pc. u need to install hyper terminal and install cd given along with fpga kit .
Sir, anything we need to change the settings of hyper terminal. Some told me that we need to write the UART program.Can you explain the procedure for data transfer and receiving.
if u are using rs232 then u need to configure the pin using hdl language for uart. if u are sending store dat from flash to board and from board to flash thenn u need the tutorial. but if u are asking fp DPA power analysis for crypto algorithm then i think u need different fpga board. look at my paper for cryptography
If your purpose is to conect your crypto setup so you can automate your analisys, It is not something you will find a ready-made solution. First, as Bhoopal has said, it is important to know if you will need to read some information that can not be made available as an input or output of the FPGA. For instance, if you are willing to make a DPA attack some way to receive power data must be available. In this case the problema is very different and you will need a special board with external circuitry to read this data. Assuming you only want to feed plain text to your circuit and get the encripted data out you will have to make two things: 1) First you have to design a block (using some HDL of your preference) that will receive octets and assemble the input word of your crypto block (for instance 64bits, 128bits, etc, depending on your algorithm). The same will have to be made for your outputs: a block will take the words and serialize then in groups of eigth bits (octets). Since this "connection block" will interface to your design it must be custom made by you. 2) You must include a UART that will take each octet and transmit serially, and also will receive serially and convert data to octets. Fortunatelly, a UART is a ready made block and you will find many in the Opencores.org as Maryam said. You can use a very simple one (I believe there is one called tinyUART that works well). Usually to send data your "connection block" will provide one octet, sinalize some 'send' input of the UART and wait untill the octet is sent (there is always a UART pin that will sinalize when ready somehow). After that, it will send the next octet and so on. To receive data, the UART will indicate in a pin that a octet has arrived and your "connection block" will read the octet from another set of pins. If you choose a simple UART and keep your communication protocol simple the "connection block" is a relativelly small state machine and a few registers. This proccess does, however, recquires some experience with HDL and FPGA. If you choose a SOC FPGA with internal microprocessor core there is an alternative: you can map your cryptographic block inputs and outputs to memory and use the development tools of the system to access the internal memory. There are different procedures to to this in each manufacturer tool and it usually requires the inclusion of some sort of predefined IP core in the system assembly tool (f.i. Qsys in Altera) . Although I think using a UART may be better if you are not used to your SoC development tool, there are advantages to each approach.
Even though you mentioned you have Altera and Xilinx board, you have not mentioned if you plan to develop the encryption algorithm using an embedded microcontroller as control unit of your project. For the ML506 you can use the MicroBlaze soft processor and insert a UART block (provided by Xilinx) as part of your design. For this, you would have to use the Xilinx XPS (Xilinx Platform Studio, aka Xilinx EDK). Also, for Altera board you have the option to work with NiosII soft processor and add a UART as part of the project, working with Qsys. Of course, working with MicroBlaze/NiosII would require you to work with C language to interact with the hard part of your project (the encryptor). The UART provides the physical signals to be used and connect the board with your PC or laptop, using a USB to serial cable, and use the hyperterminal if you work with Windows or another flavor such as minicom for Linux Ubuntu. You would need to configure the speed, number of bits for data, stop bits, etc for your serial connection between PC and board.