1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Digital embedded design a comparative an

4 1 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 4
Dung lượng 277,39 KB

Nội dung

International Journal of Emerging Technology and Advanced Engineering Website: www.ijetae.com (ISSN 2250-2459, ISO 9001:2008 Certified Journal, Volume 3, Issue 3, March 2013) Digital Embedded Design:A Comparative Analysis on Methodoligies Jai Gidwani1, Pranay Lahoty2,Vidhi Vart Chandrodaya3, Gaurav Kumar Sharma4 1,4 B.Tech Student, 2,3Assistant Professor, Arya Institute of Engineering & Technology, Jaipur, INDIA Abstract—the inquisitiveness to present this paper arises after making projects on microcontroller, FPGA and CPLD in trainings This paper will clear the architectural and programming differences between them The microcontrollers are computers in an IC while FPGA comprises logical blocks only that can be rewired with software tools CPLD has architectural features of both PAL and FPGA, but it has less complexity than FPGA The knowledge of hardware circuits is needed to implement VHDL programs but a algorithm approach is sufficient to write a code in C II MICROCONTROLLER AND FPGA A microcontroller is a computing system The structure of microcontroller is compatible to a simple computer placed in a single chip with all necessary components like memory and timing inside It is programmed to simple task for other hardware It has lots of hierarchical rules and commands over its input and output It has its own processing unit It can perform loops, execute timed instructions, and process calculations like a small PC under program control FPGA, the first thing which creates problems into mind is related with acronym‟s meaning i.e field programmable gate array or field gate programmable area Hence they are a matrix of logic gates which can be programmed (or better said reprogrammed) in any way to suits the needs of the application With the help of flip-flop and a logic gate any digital circuit can be designed This is how they work They are programmable logic means the hardware configuration may change according to the application This is the first basic difference that microcontroller cannot be rewired It stuck to the configuration that the supplier provides But the FPGA, on the other hand, not stick to any hardware configuration [2] The next difference is in terms of program execution On FPGA code is executed concurrently [in parallel] and on MCU‟s the code written in C is transformed into machine code via a compile-linking process and then executed step by step by the processor Parallel calculation and increased execution speed made FPGA quite useless in application where power consumption is critical For example they will never replace ARMs in the Smartphone FPGA is only an array of gate that can be connected as the user wishes That does not mean the user has to define switch connections individually It is done using software It will translate HDL‟s code and then places and routes the translated design Some circuits are already made in libraries and optimized for speed or area It is not computing system FPGA‟s are used for relatively simpler operations but higher processing speeds in comparison to microcontrollers [3] Keywords—ASM, FPGA, HDL, Microcontroller, UCF I INTRODUCTION The word „digital‟ is used for the systems operating on discrete values [1] Converting the real world information into these discrete values is the main idea used in all digital systems The entry of microprocessor and embedded system in the 1970‟s changed the concept of „control‟ Embedded systems are dedicated to specific tasks (not stand alone like a personal computer) The number of transistors that can be designed on silicon wafer are increasing and realizing complex functions on them is not a daunting task And hence the cost per unit is decreasing The concept of programmable logic came by combining gates and flipflops Gate array is the basic component used in VLSI It is the repetition of pattern of gates fabricated in area of silicon Interconnection between these gate arrays is done according the requirement This paper will cover the various aspects of microcontroller, FPGA and CPLD The first commercial FPGA was launched in 1985 The computer based tools in mid 1980‟s has transformed electronic industry worldwide By changing the program in a programmable device, the same hardware can be used for many applications After that, commercialization of development boards started Digital designers are diverting their attention from microcontroller to FPGA But it is not appropriate to state that FPGA will rule over microcontroller due to its complex pin configuration and synthesis tools used for it The paper is intended to throw light on their internal architectures and the available tools to configure them 161 International Journal of Emerging Technology and Advanced Engineering Website: www.ijetae.com (ISSN 2250-2459, ISO 9001:2008 Certified Journal, Volume 3, Issue 3, March 2013) The greatest advantage that FPGA bring into play is that they can host completely different and independent digital systems executing, in parallel of course, absolutely non related tasks But the power consumption and cost of FPGA dominate its incredible flexibility and above discussed advantages In case of MCU‟s the hardware is pre-decided at fabrication The hardware consists of a CPU, a program memory and a data memory There is always explicit separation between data path and program memory All commands are read from program memory and executed sequentially Also number of modules, called on-chip peripherals as timers and communication interfaces are integrated [4] In case of FPGA the hardware is programmable A high number of programmable logic blocks is available which can be individually connected by programmable interconnect matrices Execution is of parallel nature, but sequential behavior can be realized through the use of state matrices, control/enable signals and pipelining The processor could also be integrated into FPGA‟s so called soft processors [5] The microcontroller as stated is a sequential logic machine that requires a program counter to execute a next instruction (indeterminate timing), the FPGA has no program counter and instructions processed simultaneously (determinate timing) The fact that there is no sequential program counter make FPGA less vulnerable to missed instruction more commonly associated with microcontroller Figure1 FPGA Architecture [9] CPLD has architectural feature of both PAL and FPGA but less complex than FPGA Macro cell is the building block of CPLD A macro cell on most modern CPLD‟s contains a SOP combinational logic function and an optional flip-flop III FPGA AND CPLD An FPGA is an IC designed to configured after manufacturing, hence it is called field programmable FPGA‟s contain programmable logic components termed as “logic blocks” and hierarchy of reconfigurable interconnects that allows the blocks to be wired together [6] The primary difference between CPLD and FPGA are architectural A CPLD has restrictive structure which results in less flexibility The FPGA architecture is dominated by interconnects which makes them not only far more flexible but also far more complex to design The one more major difference between architecture of CPLD and FPGA device is that FPGA‟s are internally based on look up tables(LUT‟s) and CPLD„s form the logic functions with sea of gates K input LUT can implement any K input output logic functions [7, 8] Figure 2.CPLD Architecture [9] Configurable Logic Blocks (CLB‟s) is the logical unit of FPGA FPGA have latches available in their CLB‟s to store the input data FPGA‟s are “fine grained” devices that mean they contain a lot (up to 100000) of tiny blocks of logic with flip- flops CPLD‟s are coarse-grained devices- they contain relatively few (a few 100‟s) large blocks of logic with flipflops We can build large digital designs on FPGA while CPLD can contain small designs only FPGA‟s lose their functionality when the power goes away (like RAM in the computer that loses its content) [9] CPLD is typically a device that retains its configuration once programmed 162 International Journal of Emerging Technology and Advanced Engineering Website: www.ijetae.com (ISSN 2250-2459, ISO 9001:2008 Certified Journal, Volume 3, Issue 3, March 2013) After writing code for it, the next step is to write a UCF (User Constraints File) in which the pin details of various inputs and outputs is mentioned The choices are more here compared to microcontroller And then generate a programming file Finally a bit or XSVF (Xilinx serial Vector Format) file is transformed to a target device Next let‟s consider the same case with microcontroller programming in assembly language In this case generating a „hex‟ file from „asm‟ file is a bit easier than generating a „bit‟ or XSVF file The subroutine is designed to give a delay of a second and written at the end of the program The subroutine is doing nothing but eating machine cycles to generate a delay in microcontroller It is designed for the oscillator‟s frequency 11.0592 MHz IV IMPLEMENTATION [10-15] We have implemented some projects on both FPGA and microcontroller as well Here is a description of blinking of LED‟s A variety of available tools are available to accomplish the design entry step for FPGA Some designers prefer to use their favorite schematic entry package while others prefer to specify their design using a hardware description language such as Verilog, VHDL, or ABEL For programming FPGA‟s we have learnt VHDL (Very High Speed Integrated Circuit Hardware Description Language) This language has the biggest advantage that it allows the modeling of the digitals system (description) and verification before translating it to real hardware The pre testing of IC is done using VHDL The language supports 9-valued logic(U,X,0,1,Z,W,H,L,-), while in case of assembly or C, the designer is only capable of sending or receiving „1‟ or „0‟ to the pins of microcontroller The VHDL code for blinking of LED‟s with time interval of one second look like- $mod52 Org 0000h main:clr p1.0 clr p1.1 acall delay sjmp main delay:mov r0,#07h main1:mov r1,#0ffh main2:mov r2,#0ffh main3:djnz r2,main3 djnz r1,main2; djnz r0,main1; ret end Process (clk1, cnt) Begin If (clk1'event and clk1='1') then cnt

Ngày đăng: 16/12/2021, 11:13

w