Professional Documents
Culture Documents
Hardware
Application
Evaluation
Report
Sylvanus Jenkins Student Number: 000449066 Course Leader: David Israel
Content Page
Introduction: ...........................................................................................................
Task one: Explaining why these particular labs have been chosen to evaluate these
particular examples of technologies use.
Task two: Discusses the advantages of both technologies using referencing citing
from other sources
Task four: Evaluating the two technologies based only on the work carried out using
these technologies.
Subtask two: Gives reasons why preference with the technologies is made using code/
working hardware to support my arguments.
Sylvanus Jenkins Student Number: 000449066 Course Leader: David Israel
Introduction
This report will be critically reviewing two selected labs with an explanation as to how
and this labs where selected. In this report each lab selected is chosen from the two
different technology used during this course, PIC Microprocessor and Xilinx (VHDL). In
other to effectively review each technology, each task has complete a lab with each
using one of the above technology will be evaluated base upon it effective task. Both
technologies will be discussed in details as taking it to account it advantages as well as
citing and examples where it has been used and has been successful in completing that
tasks or area. To give us better understand its disadvantages will also be reviewed with
expand discussion using material where the technology has been used assessing and
why it was not successful in that area. In conclusion the two technologies will be
evaluated based only on the task it has completed with each lab. This will then be
followed by an assessment from which will assess which technology is better using
citing of other works as well as codes used with supporting working hardware where
the hardware is supported using fully functional working code and citing.
To completing the review lab three and lab twelve has been chosen. These labs
corresponds with the standard required expected with each technology so they have
been selected.
Explores the PIC Microprocessor from start to finish in completing the task
Task had been chosen as it explores functionality on all level of the technology this
enable full assessment of the technology suitability for it task. A task also allows MPLAB
ICD 2 an external In-Circuit Debugger to be used making it ideal for assessment.
Explore technological aspect of the technology as well as packages and data type
that are robust and readily available upon declaration within the integrated
environment.
This lab has been chosen for critical review as both has explored each individual
technology in that particular area.
Sylvanus Jenkins Student Number: 000449066 Course Leader: David Israel
Lab twelve chosen or selected as its fit for purpose e.g. explores Xilinx functionalities etc
as well as successfully completing the task as expected.
In evaluation each technology these labs have been chosen as each corresponds to the
technology standard use it allows each area to be explored within it given task.
Screenshot will be created of each task to give better understand.
Sylvanus Jenkins Student Number: 000449066 Course Leader: David Israel
MPLAB Integrated Development Environment (IDE) is a free, integrated toolset for the
development of embedded applications employing Microchip's PIC® and dsPIC®
microcontrollers. MPLAB IDE runs as a 32-bit application on MS Windows®, is easy to
use and includes a host of free software components for fast application development
and super-charged debugging. MPLAB IDE also serves as a single, unified graphical user
interface for additional Microchip and third party software and hardware development
tools. Moving between tools is a snap, and upgrading from the free software simulator
to hardware debug and programming tools is done in a flash because MPLAB IDE has
the same user interface for all tools.
Source:http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=
1406&dDocName=en019469&part=SW007002
The MPLAB IDE allows you to create and edit source code by providing you
with a full-featured text editor.
Further, you can easily debug source code with the aid of a Build Results
window that displays the errors found by the compiler, assembler, and linker
when generating executable files.
A Project Manager allows you to group source files, precompiled object files,
libraries, and linker script files into a project format.
• A variety of windows allowing you to view the contents of all data and
program memory locations
Source:http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=
1406&dDocName=en010046
Sylvanus Jenkins Student Number: 000449066 Course Leader: David Israel
Source:http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=
1406&dDocName=en010046
Xilinx is the world’s largest suppliers for Programmable Logic Array (PLA) the inventor
Field Programmable Logic Gate Array (FPGA). Xilinx was founded in 1984 by two
semiconductor engineers. Xilinx designs, develops and markets programmable logic
products including integrated circuits (ICs), software design tools, predefined system
functions delivered as intellectual property (IP) cores, design services.
What is VHDL?
The use of Very High Speed Integrated s Circuit (VHDL) as a design language is it having
many advantages to its users which will be discuss now.
The first obvious advantage that VHDL has is its Synthesis; Synthesis is the translations
of a design file into a netlist file that describes the structure of a hardware design
however even though it a major advantage
VHDL is the allows users to declare and use library packages and data types which are
robust and tested time and time again and has proved themselves functional, saving the
programmer valuable time in designing their own.
It libraries provide a set of hardware designs, components, and functions that simplify
the task of designing
It packages provide a collection of commonly used data types and subprograms used in
a design
The following is an example of the use of the IEEE library and its STD_LOGIC_1164
package:
LIBRARY IEEE;
USE ieee.std_logic_1164.ALL;
There are also supports in VHDL for unsynthesizable constructs that are useful in writing high-
level models, test benches and other non-hardware or non-synthesizable artifacts that we need
in hardware design.
VHDL can be used throughout a large portion of the design process in different capacities, from
specification to implementation to verification.
VHDL has static type checking—many errors can be caught before synthesis and/or simulation.
Sylvanus Jenkins Student Number: 000449066 Course Leader: David Israel
VHDL
An example where Xilinx technology were used successfully is the creation of a program
implemented a multiplexer using a three control line input producing an eight bit vector
as it output. Using a seven-segment value to represent which input line is being passed
to the display.
During the creation of the program several VHDL feature and in built functionalities
where explored e.g. declaration of libraries, packages and built in data types.
Sylvanus Jenkins Student Number: 000449066 Course Leader: David Israel
Coding
Library IEEE;
Library declarations
Use IEEE.STD_LOGIC_1164.ALL;
The library packages and data typed were declared here.
Entity sjenkins is
J: out STD_LOGIC_VECTOR (3 down to 0); With the entity the input and output port where
Q: in out STD_LOGIC_VECTOR (7 down to 0);
defined as well as Bidirectional port. Declared
the control line two down to zero. Input was
D: in out STD_LOGIC_VECTOR (7 down to 0));
two bit so they were declared one down to zero.
End sjenkins; Output for selecting segment was declared as
Architecture Behavioural of sjenkins is three down to zero. Once the input and output
was declared the bidirectional was then
Begin
declared as a Std_logic_vector (7 down to 0);
With x Select
"00000010" when "11", --3 Within the architecture the behaviour of the program
"00000011" when "01", --4 was defined using a with select statement, which
uses it defined setting in the entity. This area carries
"1000000" when others; --0
out the system request of using two inputs and
J <= "0111"; producing an eight bit vector.
With Q Select
Here the segment which the result was going to be
D <= "0000000" when "00000001", --1
displayed in was declared using it binary
"0100100" when "00000010", --2 representation of the number.
"0110000" when "00000011", --3
"1111000" when "00000111", --7 To produce an output of eight bit I then declared
each value within a (with select statement) to
"0000000" when "10000000", --8
defined the seven segment values displayed here.
"0010000" when "10000001", --9
End Behavioural;
Sylvanus Jenkins Student Number: 000449066 Course Leader: David Israel
To balance views on both technologies MPLAB IDE will have its advantages discuss
below:
The MPLAB IDE is a simple yet powerful development environment, support low-
risk product development by providing a complete management solution for all
development system in one tool.
MAPLAB also allows user to select their device with colours used to indicate the
level of support for the selected device. It feature vary as well as configure it
changing the settings in accordance with the selected device.
MPLAB IDE allows users to select the type of language used thorough it project
wizard.
MPLAB IDE provide a facility it called a project wizard containing the files needed
to build an application (source code, linker script files, etc.) along with their
associations to various build tools and build options.
MPLAB IDE also contains a workspace contains information on the selected device,
debug tool and/or programmer, open windows and their location and other IDE
configuration settings.
12, 14 and 16-bit wide instructions are used upward compatible and tailored to
maximize processing efficiency and boost performance.
Sylvanus Jenkins Student Number: 000449066 Course Leader: David Israel
Single wide word instructions increase software code efficiency and reduce
required program memory.
With only 33-79 instructions, programming and debugging tasks are easy to
learn and perform.
Fig 4: Screenshot shows MPLAB in use temple updating and resetting registers.
Sylvanus Jenkins Student Number: 000449066 Course Leader: David Israel
Codes
;**********************************************************************
; directory. *
; *
; *
; Template file built using MPLAB V3.99.18 with MPASM V2.15.06 and *
;**********************************************************************
; Filename: xxx.asm *
; Date: *
; File Version: *
; *
; Author: *
; Company: *
;**********************************************************************
; Files required: *
;**********************************************************************
; Notes: *
;**********************************************************************
; The lables following the directive are located in the respective .inc file.
TEMP_VAR UDATA
;**********************************************************************
goto start
start
To provide a balance view as well as opinion of each technology during its task each
technology disadvantages will follow discussed below and an example as to why it was
not successful in that area.
The technology has many different ways of saying the same thing.
Constructs that have similar purpose have very different syntax (case vs. select)
Constructs that have similar syntax have very different semantics (variables vs. signals)
Hardware that is synthesized is not always obvious (when is a signal a flip-flop vs. latch vs.
combinational)
"ERROR: Simulator - Failed to link the design. Check to see if any previous simulation
executables are still running."
Source: http://newsgroups.derkeiler.com/Archive/Comp/comp.arch.fpga/2009-
02/msg00457.html
Another example of design file that is not synthesizable is time is used to simulated and
it's possible to identify the design error by observing the waveforms:
However it's more efficient to build in checks which automatically verify the result of a
simulation
....
wait for 10 ns;
x1 <= '1';
x2 <= '1';
assert y = (x1 xor x2)
report "E@TB: circuit failed"
severity Error;
When assembling files in a project, the only file that needs to be there (and that
should be there) is the .asm file. The presence of a linker file (.lnk) in the project
files causes problems with the building of a program that begins at program
memory address 0 (ORG 0). Removing the linker file from the project files
should remove the problem.
When c receive the error message 'The format of the file XYZ.COD can not be
read or written because its extension was not recognized' (see the picture
below), then add '+DF' to the compiler option string.
We only received this error on a Windows 2003 Server machine and could not
reproduce it on any other operating system.
When receiving the error message 'Warning! MPLAB IDE does not currently
support this OS.' on a Windows 2003 Machine, ignore it.
When receiving any warning or error message when compiling code with
MPLAB, e.g. the message above on the .COD file, then the programming of the
PICs with any programmer does not work! You will notice then that MPLAB does
not write the programming region (0x00 - 0x...) in the output window and
programming will be faster.
MPLAB
Source: http://www.hcilab.org/resources/particles/particles-programming-mplab.htm
Sylvanus Jenkins Student Number: 000449066 Course Leader: David Israel
Conclusion
To compare and contrast one technology against the other each technology will be
evaluated before a choice will be made as to which technology was more suited to its
task and whether task exchange could produce a different result, if it was to be
completed using the other technology.
MPLAB IDE
Using MPLAB IDE technology is a good language, however better understand of the
technology would have presented the user with a faster development of a program and
as well as tasks.
Xilinx VHDL
VHDL is simple and easy to use; it is also easy to design a program once it set
functionality has been defined.
Sylvanus Jenkins Student Number: 000449066 Course Leader: David Israel
After carefully assessing both technology it s clear that both are used to be same job, it is
also care that both uses different functionality to get the tasks completed. However, it is
still unclear if one is better in completing its task than the other or better because of its
unique tools or features.
Sylvanus Jenkins Student Number: 000449066 Course Leader: David Israel
Appendix
FPGA
Sources: http://en.wikipedia.org/wiki/Netlist
PLA
Sources: http://en.wikipedia.org/wiki/PLA
VHDL
VHDL (VHSIC (Very High Speed Integrated Circuits) hardware description language) is
commonly used as a design-entry language for field-programmable gate arrays and
application-specific integrated circuits in electronic design automation of digital circuits.
Sources: http://en.wikipedia.org/wiki/VHDL
MPLAB
Sources: http://en.wikipedia.org/wiki/MPLAB
Object files
Sylvanus Jenkins Student Number: 000449066 Course Leader: David Israel
Sources: http://en.wikipedia.org/wiki/Objectfiles
Assembler
Sources: http://en.wikipedia.org/wiki/Assembler
Linker
Sources: http://en.wikipedia.org/wiki/Linker
Emulator
An emulator duplicates (provides an emulation of) the functions of one system using a
different system, so that the second system behaves like (and appears to be) the first
system. This focus on exact reproduction of external behavior is in contrast to some
other forms of computer simulation, which can concern an abstract model of the system
being simulated.
Sources: http://en.wikipedia.org/wiki/Emulator
Debug
Sources: http://en.wikipedia.org/wiki/Debug
Sylvanus Jenkins Student Number: 000449066 Course Leader: David Israel
Program memory
Sources files
Netlist
The word netlist can be used in several different contexts, but perhaps the most
popular is in the field of electronic design. In this context, a "netlist" describes the
connectivity of an electronic design.
Netlists usually convey connectivity information and provide nothing more than
instances, nets, and perhaps some attributes. If they express much more than this, they
are usually considered to be a hardware description language such as Verilog, VHDL, or
any one of several specific languages designed for input to simulators.
Sources: http://en.wikipedia.org/wiki/Netlist
Sylvanus Jenkins Student Number: 000449066 Course Leader: David Israel
References
Software used:
MPLAB IDE
VHDL Xilinx
Books Sources
Mark Zwolinski, 2000, VHDL Digital Systems, Pearson Education Limited 2000
Software Engineering 8
Sommerville, 2006
Addison Wesley
ISBN: 0321313798
Internet Sites
Amazon /FPGA-Prototyping-VHDL
http://www.amazon.com/FPGA-Prototyping-VHDL-Examples-Spartan-3/product-
reviews/0470185317
Measurement uncertainty
http://www.measurementuncertainty.org/mu/guide/introduction.html
VHDL
http://en.wikipedia.org/wiki/VHDL
People.vcu.edu
http://www.people.vcu.edu/~rhklenke/tutorials/vhdl/modules/m13_23/sld006.htm
Digital electronics
http://digitalelectronics.blogspot.com/2007/07/comparison-of-vhdl-to-other-
hardware.html
http://www.google.co.uk/search?hl=en&ei=s13SSZKPGuSrjAfw2On1Bg&sa=X&oi=spell
&resnum=1&ct=result&cd=1&q=PIC+Microprocessor+advantages&spell=1
http://www.google.co.uk/search?hl=en&ei=s13SSZKPGuSrjAfw2On1Bg&sa=X&oi=spell
&resnum=1&ct=result&cd=1&q=PIC+Microprocessor+advantages&spell=1
Microchip
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&d
DocName=en019469&part=SW007002
Newsgroups
http://newsgroups.derkeiler.com/Archive/Comp/comp.arch.fpga/2009-
02/msg00457.html
Appdb.wine, org
http://appdb.winehq.org/objectManager.php?sClass=version&iId=11828&iTestingId=3
1998
Wikipedia
http://en.wikipedia.org/wiki/Netlist
MPLAB
http://www.hcilab.org/resources/particles/particles-programming-mplab.htm
Sylvanus Jenkins Student Number: 000449066 Course Leader: David Israel
Appendix Coding
VHDL LAB 13
Library IEEE;
Use IEEE.STD_LOGIC_1164.ALL;
Entity sjenkins is
J: out STD_LOGIC_VECTOR (3 down to 0); With the entity the input and output port where
Q: in out STD_LOGIC_VECTOR (7 down to 0);
defined as well as Bidirectional port. Declared
the control line two down to zero. Input was
D: in out STD_LOGIC_VECTOR (7 down to 0));
two bit so they were declared one down to zero.
End sjenkins; Output for selecting segment was declared as
Architecture Behavioural of sjenkins is three down to zero. Once the input and output
was declared the bidirectional was then
Begin
declared as a Std_logic_vector (7 down to 0);
With x Select
"00000010" when "11", --3 Within the architecture the behaviour of the program
"00000011" when "01", --4 was defined using a with select statement, which
uses it defined setting in the entity. This area carries
"1000000" when others; --0
out the system request of using two inputs and
J <= "0111"; producing an eight bit vector.
With Q Select
Here the segment which the result was going to be
D <= "0000000" when "00000001", --1
displayed in was declared using it binary
"0100100" when "00000010", --2 representation of the number.
"0110000" when "00000011", --3
"1111000" when "00000111", --7 To produce an output of eight bit I then declared
each value within a (with select statement) to
"0000000" when "10000000", --8
defined the seven segment values displayed here.
"0010000" when "10000001", --9
End Behavioural;
Sylvanus Jenkins Student Number: 000449066 Course Leader: David Israel
MPLAB
Lab 3
David Israel
;*******************************************************************
; Useful information
; Normally you use an include file for the specific PIC as commented out below
; list p=16f88
; include <p16f88.inc> this enables you to use the special register without pre defining them
; To help you understand the process the include file has been left out
;*****************************************************************************
; This is done by defining the register and flag names with their numerical values
;**********************************************************************
trisA equ 05h ; Sets direction of the I/O register (port A). This register is in memory bank 1
trisB equ 06h ; Sets direction of the I/O register (port B). This register is in memory bank 1
;*******************************************************************
org 0h ; gives instruction to the assembly program to set the program at the first memory
location
org 010h ; gives instruction to the assembly program to set this line of the program
;at memory address 0X10
main bsf status, rp0 ; sets the status register so that the program is
movwf trisB ; puts the value from the working register to the special register trisA
bcf status, rp0 ; unsets the flag to the program is back looking at memory block 0
signal movlw pulse_on ; Now the program can move the value pf Pulse_on to the working register
movwf port_B ; it now moves the value in the working register to port_c
; so the last two lines of code have out put the hex value of 0xff
nop ; this line just increments the program counter but changes nothing else in
the system
goto signal ; this line loops the program so it runs for ever