Upload
hoang-nguyen-ngoc
View
217
Download
0
Embed Size (px)
Citation preview
8/3/2019 NguyenNgocHoang_GrayCounter
1/31
VIETNAM NATIONAL UNIVERSITY, HANOI
UNIVERSITY OF ENGINEERING AND
TECHNOLOGY
DESIGNING A 4-BIT GRAYASYNCHRONOUS COUNTER
by
Nguyen Ngoc Hoang
Digital IC Design
Project
in the
Electronics and Telecommunication
University of Engineering and Technology
December 2011
http://www2.uet.vnu.edu.vn/uet/http://www2.uet.vnu.edu.vn/uet/http://www2.uet.vnu.edu.vn/uet/http://[email protected]/http://uet.vnu.edu.vn/fet/http://uet.vnu.edu.vn/fet/http://uet.vnu.edu.vn/fet/http://uet.vnu.edu.vn/fet/http://[email protected]/http://www2.uet.vnu.edu.vn/uet/http://www2.uet.vnu.edu.vn/uet/http://www2.uet.vnu.edu.vn/uet/8/3/2019 NguyenNgocHoang_GrayCounter
2/31
Contents
List of Figures iii
List of Tables iv
Abbreviations v
1 Gray code 1
1.1 What is Gray code? . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Why use Gray code? . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.3 Binary to Gray encoding . . . . . . . . . . . . . . . . . . . . . . . . 2
2 Specification 3
2.1 Functionality . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
3 Modeling 5
3.1 Graycounter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53.2 Delay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.3 Top-level design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
4 Behavioral simulation 9
4.1 Testbench . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
4.2 Test vector generation . . . . . . . . . . . . . . . . . . . . . . . . . 9
4.3 Behavioral simulation . . . . . . . . . . . . . . . . . . . . . . . . . . 10
5 User constraints 12
5.1 PERIOD constraints . . . . . . . . . . . . . . . . . . . . . . . . . . 125.2 Pin assignment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
5.2.1 Slide Switches . . . . . . . . . . . . . . . . . . . . . . . . . . 13
5.2.1.1 Locations and Labels . . . . . . . . . . . . . . . . . 13
5.2.1.2 Operation . . . . . . . . . . . . . . . . . . . . . . . 13
5.2.1.3 UCF Location Constraint . . . . . . . . . . . . . . 14
5.2.2 Discrete LEDs . . . . . . . . . . . . . . . . . . . . . . . . . . 14
5.2.2.1 Location and Labels . . . . . . . . . . . . . . . . . 14
5.2.2.2 Operation . . . . . . . . . . . . . . . . . . . . . . . 15
5.2.2.3 UCF Location Constraint . . . . . . . . . . . . . . 15
5.2.3 Clock Source . . . . . . . . . . . . . . . . . . . . . . . . . . 15
i
8/3/2019 NguyenNgocHoang_GrayCounter
3/31
Contents ii
5.2.3.1 Overview . . . . . . . . . . . . . . . . . . . . . . . 15
5.2.3.2 Clock Connection . . . . . . . . . . . . . . . . . . . 16
5.2.3.3 UCF Constraint . . . . . . . . . . . . . . . . . . . 17
6 Synthesis and Implementation 186.1 Xilinx Flow Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 18
6.1.1 Synthesis with Xilinx XST . . . . . . . . . . . . . . . . . . . 18
6.1.2 Translate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
6.1.3 Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
6.1.4 Place and Route . . . . . . . . . . . . . . . . . . . . . . . . 19
6.1.5 Bit-file generation . . . . . . . . . . . . . . . . . . . . . . . . 19
6.2 Synthesizing Design . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
6.2.1 Synthesis Tool Functionality . . . . . . . . . . . . . . . . . . 19
6.2.2 Generating Post-Synthesis Simulation Model . . . . . . . . . 19
6.3 Translating Design . . . . . . . . . . . . . . . . . . . . . . . . . . . 206.3.1 Translate Process Functionality . . . . . . . . . . . . . . . . 20
6.3.2 Translate Process File Types . . . . . . . . . . . . . . . . . . 20
6.4 Mapping the Design . . . . . . . . . . . . . . . . . . . . . . . . . . 21
6.4.1 MAP Process Functionality . . . . . . . . . . . . . . . . . . 21
6.4.2 MAP Process File Types . . . . . . . . . . . . . . . . . . . . 21
6.5 Placing and Routing the Design . . . . . . . . . . . . . . . . . . . . 22
6.5.1 Place and Route Process Functionality . . . . . . . . . . . . 22
6.5.2 PAR Process File Types . . . . . . . . . . . . . . . . . . . . 23
6.6 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
8/3/2019 NguyenNgocHoang_GrayCounter
4/31
List of Figures
1.1 Gray code and binary code . . . . . . . . . . . . . . . . . . . . . . . 2
2.1 Gray counter top level . . . . . . . . . . . . . . . . . . . . . . . . . 4
4.1 Behavioral simulation with enable = 1, direction = 0, reset = 0 10
4.2 Behavioral simulation with direction = 1 . . . . . . . . . . . . . . 104.3 Behavioral simulation with reset = 0 . . . . . . . . . . . . . . . . . 11
4.4 Behavioral simulation reset = 1, direction = 1 . . . . . . . . . . . 11
4.5 Behavioral simulation with enable down to 0 . . . . . . . . . . . . . 11
4.6 Behavioral simulation with enable return 1 . . . . . . . . . . . . . 11
5.1 Four slide switches . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
5.2 Eight Discrete LEDs . . . . . . . . . . . . . . . . . . . . . . . . . . 14
5.3 Avaiable clock input . . . . . . . . . . . . . . . . . . . . . . . . . . 16
6.1 Post-Synthesis Simulation . . . . . . . . . . . . . . . . . . . . . . . 20
6.2 Post-Translate Simulation . . . . . . . . . . . . . . . . . . . . . . . 216.3 Post-Map Simulation . . . . . . . . . . . . . . . . . . . . . . . . . . 22
6.4 Place and Route Simulation . . . . . . . . . . . . . . . . . . . . . . 23
iii
8/3/2019 NguyenNgocHoang_GrayCounter
5/31
List of Tables
5.1 Clock inputs and Associated Global Buffers and DCMs . . . . . . . 17
iv
8/3/2019 NguyenNgocHoang_GrayCounter
6/31
Abbreviations
FPGA Field Programmable Gate Array
VHDL VHSIC Harware Discription Language
VHSIC Very High Speed Integrated Circuit
CBL Combinational Logic Blocks
IOB Input Output Block
v
8/3/2019 NguyenNgocHoang_GrayCounter
7/31
Chapter 1
Gray code
1.1 What is Gray code?
The reflected binary code, also known as Gray code, is a binary numeral system
that uses a different method of incrementing from one number to the next.
The advantage of Gray code is that only one bit changes state from one posi-
tion to another.
1.2 Why use Gray code?
Gray code is the most popular Absolute encoder output type because it can be
prevent cetain data errors which can ocur with natural binary during state changes.
For example, in a highly capacitive circuit, a natural binary state changes from
0011 to 0100 could cause the counter to see 0111. This sort of error is not possible
with Gray code so that data is more reliable.
1
8/3/2019 NguyenNgocHoang_GrayCounter
8/31
Chapter 1. Gray code 2
Figure 1.1: Gray code and binary code
1.3 Binary to Gray encoding
When we have a code of binary type, Gray code will be otained by using three
xor gates to obtain 4-bit gray code from natural binary code with the following
equation:
G0 = A0 A1 (1.1)
G1 = A1 A2 (1.2)
G2 = A2 A3 (1.3)
G3 = A3 (1.4)
8/3/2019 NguyenNgocHoang_GrayCounter
9/31
Chapter 2
Specification
2.1 Functionality
The aim of 4-bit gray counter is that counting the gray code in sequence of 16
states.
There are 4 control input signals perform the operation of counter as follow:
Enable signal decides whether counting process is started or stopped.
The countings direction (upward or downward) is depended on the value of
direction signal (0 or 1).
The state of counter will be reset when the asynchronous reset signal is active
low, counting value must be return to 0000.
Clock signal used for synchronization circuit.
3
8/3/2019 NguyenNgocHoang_GrayCounter
10/31
Chapter 2. Specification 4
Figure 2.1: Gray counter top level
8/3/2019 NguyenNgocHoang_GrayCounter
11/31
Chapter 3
Modeling
In this project, VHDL language to be used to model the design. The behavioral
of graycounter is illustrated in section 3.1. Because the output will be presented
by LEDs, the delay component should be created help easier observe and verify
the correctness of design. The operation of delay component is shown in section
3.2. Finally, section 3.3 shows the connection between ports of graycounter and
delay component.
3.1 Graycounter
l i b r ar y I E EE ;
u s e I E EE . S T D _ L O G I C _1 1 6 4 . A L L ;
u s e I E EE . S T D _ L O G I C _ UN S I G N E D . A LL ;
E N T I TY g r a y c ou n t e r I S
P OR T ( c lk : i n S TD _L OG IC ;
r st _n : i n S TD _L OG IC ;
d ir ec ti on : in S TD _L OG IC ;
e n_ in : i n S TD _L OG IC ;
l e ds _ ou t : o ut S T D_ L O GI C _V E CT O R ( 7 d o wn t o 0 ) );
E N D g r a y co u n t e r ;
A R C H I TE C T U RE s t r u ct u r e O F g r a y co u n t e r I S
S I G NA L b i n a r y_ c n t : S T D _ L OG I C _ V E CT O R ( 3 D O W NT O 0 ) ;
S I G NA L l e d s _ ou t _ s : S T D _ L OG I C _ V E CT O R ( 7 D O W NT O 0 ) ;
B E G I N
5
8/3/2019 NguyenNgocHoang_GrayCounter
12/31
Chapter 3. Modeling 6
P R O C ES S ( c lk , r s t _n )
BEGIN
I F r s t_ n = 0 t he n
b i n a ry _ c n t < = " 0 0 0 0 " ;
l e d s _o u t _ s < = " 0 0 0 0 0 0 0 0 " ;
E L S IF r i s i ng _ e d g e ( c lk ) t h en
I F e n_ i n = 1 t h en
I F d i r e ct i o n = 0 t h e n
b i na r y_ c nt < = b i na r y_ c nt + 1 ;
ELSE
b i na r y_ c nt < = b i na r y_ c nt - 1 ;
E ND i f ;
l e ds _ ou t _s ( 3 d o wn t o 0 ) < = ( ( 0 & b i na r y_ c nt ( 3 D O WN T O 1 )) X OR b i
l e d s _ ou t _ s ( 7 D O W NT O 4 ) < = b i n a r y _ c nt ;
E ND i f ;
E ND i f ;
E N D P R O C ES S ;
l e d s _o u t < = l e d s _ o u t _ s ;
E N D s t r u c tu r e ;
3.2 Delay
L I B R AR Y i e ee ;
U S E i e ee . s t d _ l o g i c _1 1 6 4 . A L L ;
U S E i e ee . n u m e r i c _ st d . A L L ;
E N T I TY d e l a y_ c n t I S
P OR T (
clk : IN S T D _ LO G I C ;
r st _n : IN S TD _L OG IC ;
e n_ in : IN S TD _L OG IC ;
e n _o u t : O UT S T D_ L OG I C );
E N D E N T I T Y d e l a y_ c n t ;
A R CH I TE C TU R E r tl O F d e la y _c n t I S
S I GN A L d e la y _r e g : U N SI G NE D ( 23 D O WN T O 0 );
B E G I N - - A R C H IT E C T U RE r t l
d e la y _r e g_ p ro c : P R OC E SS ( c lk , r s t_ n ) I S
B E G I N - - P R O C ES S d e l a y_ r e g
I F r st _n = 0 T HE N
d e la y _r e g < = ( O T H E RS = > 0 ) ;
E L S IF r i s i n g_ e d g e ( c lk ) T H E N
I F e n_ in = 1 T HE N
d e l a y_ r e g < = d e l a y_ r e g + t o _ u ns i g n e d ( 1 , d e l ay _ r eg L E N G TH ) ;
8/3/2019 NguyenNgocHoang_GrayCounter
13/31
Chapter 3. Modeling 7
E ND I F ;
E ND I F ;
E N D P R O C ES S d e l a y _r e g _ p r oc ;
e n _o u t < = 1 W H EN d e la y _r e g = ( d e la y _r e g L E NG T H - 1 D O WN T O 0 = > 1 ) E L SE 0 ;
E N D A R C H IT E C T U RE r t l ;
3.3 Top-level design
L I B R AR Y i e ee ;
U S E i e ee . s t d _ l o g i c _1 1 6 4 . A L L ;
E N T I TY t o p _ le v e l I S
P OR T (
clk : IN S T D _ LO G I C ;
rs t_ n : IN S T D _ LO G I C ;
en _i n : IN S T D _ LO G I C ;
u p_ n_ in : IN S TD _L OG IC ;
l e d s _o u t : O U T S T D _ L OG I C _ V EC T O R ( 7 D O W NT O 0 ) ) ;
E N D E N T I T Y t o p _ le v e l ;
A R CH I TE C TU R E r tl O F t o p_ l ev e l I S
C O M P ON E N T d e l a y_ c n t I S
P OR T (
clk : IN S T D _ LO G I C ;
r st _n : IN S TD _L OG IC ;
e n_ in : IN S TD _L OG IC ;
e n _o u t : O UT S T D_ L OG I C );
E N D C O M P ON E N T d e l a y_ c n t ;
C O M P ON E N T g r a y c ou n t e r I S
P OR T (
clk : IN S T D _L O G I C ;
rs t_n : IN S T D _L O G I C ;
d i re c ti o n : I N S T D_ L OG I C ;
en _in : IN S T D _L O G I C ;
l e ds _ ou t : O UT S T D _L O GI C _V E CT O R ( 7 D O WN T O 0 ) );
E N D C O M P ON E N T g r a y c ou n t e r ;
S I G NA L d e l a y _e n _ o ut : S T D _ LO G I C ;
B E G I N - - A R C H IT E C T U RE r t l
8/3/2019 NguyenNgocHoang_GrayCounter
14/31
Chapter 3. Modeling 8
d e l a y_ c n t _ 1 : E N T IT Y w o r k . d e l ay _ c n t
P OR T M AP (
clk = > clk ,
r st _n = > rs t_n ,
e n_ in = > en _in ,
e n _ ou t = > d e l a y _e n _ o u t ) ;
c o u n te r _ 1 : E N T IT Y w o rk . g r a y c o u n te r
P OR T M AP (
clk = > clk ,
rs t_n = > rst_n ,
d i re c ti o n = > u p_ n_ in ,
e n_ in = > d el ay _e n_ ou t ,
l e d s _o u t = > l e d s _o u t ) ;
E N D A R C H IT E C T U RE r t l ;
8/3/2019 NguyenNgocHoang_GrayCounter
15/31
Chapter 4
Behavioral simulation
4.1 Testbench
Test bench is not defined by the VHDL Language Reference Manual and has no
formal definition. We can know that a test bench is a virtual environment used to
verify the correctness or soundness of a design or model. In digital IC design, the
test bench is a specification in VHDL
4.2 Test vector generation
As mentioned before, there are three control signals that effect the systems opera-
tion. While enable decides whether counting process is continuous or not, direction
signal with two stages high or low drives the increase or decrease of output signal.
The value of counter will be return to 0000 when reset signal to be asserted. Thus,
6 test vectors are proposed to test all possible case as follow:
Case 1: Enable = 1, direction = 0, reset = 0.
Case 2: direction = 1, counter should count with downward direction.
Case 3: reset = 0, the value of counter should return to 0000.
9
8/3/2019 NguyenNgocHoang_GrayCounter
16/31
Chapter 4. Behavioral simulation 10
Figure 4.1: Behavioral simulation with enable = 1, direction = 0, reset =
0
Figure 4.2: Behavioral simulation with direction = 1
Case 4: reset returns to 1, direction returns to 1. Counter continuously
counts from 0000 by upward direction
Case 5: enable down to 0. The output value should remain the value before
enable down to 0.
Case 6: enable return 1.counter continuously counts with initial value equal
to the value before enable changes.
4.3 Behavioral simulation
Using ISE Project Navigator tool, in the Design Menu we choose Behavioral
Simulation. The testbench for this design was set as a top level. In the Process
menu choose ISim Simulator, Simulate Behavioral Model, right click and
choose Run.
The binary counting value will be added to output to observe more clearly. Finally,
we get the waveform in figure 4.1 to 4.6 corresponding to case 1 to case 6:
8/3/2019 NguyenNgocHoang_GrayCounter
17/31
Chapter 4. Behavioral simulation 11
Figure 4.3: Behavioral simulation with reset = 0
Figure 4.4: Behavioral simulation reset = 1, direction = 1
Figure 4.5: Behavioral simulation with enable down to 0
Figure 4.6: Behavioral simulation with enable return 1
8/3/2019 NguyenNgocHoang_GrayCounter
18/31
Chapter 5
User constraints
5.1 PERIOD constraints
The PERIOD constraints is a fundamental timing and synthesis constraint. PE-
RIOD constraints:
Define each clock within the design.
Cover all synchronous paths within each clock domain.
Define the duaration of clock.
Can be configured to have different duty cycles.
12
8/3/2019 NguyenNgocHoang_GrayCounter
19/31
Chapter 5. User constraints 13
Figure 5.1: Four slide switches
5.2 Pin assignment
5.2.1 Slide Switches
5.2.1.1 Locations and Labels
The Spartan-3E Starter Kit board has four slide switches, as show in figure 5.1.
The slide switches are located in the lower right corner of the board and are la-
beled SW3 to SW0 inwhich SW3 is the left-most switch, and SW0 is the right-most
switch.
5.2.1.2 Operation
When in the UP or ON position, swith connects the FPGA pin to 3.3V, a logic
High. When DOWN or in the OFF position, the switch connects the FPGA pin
8/3/2019 NguyenNgocHoang_GrayCounter
20/31
Chapter 5. User constraints 14
Figure 5.2: Eight Discrete LEDs
to ground, a logic Low.
5.2.1.3 UCF Location Constraint
In my project, three switches, SW0, SW1 and SW2 are used corresponding to
reset, enable and direction signal. UCF constraint for three switches as follow:
NET " rst _n " LOC = " L13 " | IO ST AN DA RD = L VTTL | P ULL UP ;
N ET " en _i n" L OC = "H 18 " | I OS TA ND AR D = LV TT L | P UL LU P;
N ET " u p _n _i n " L OC = " L 1 4 " | I O ST AN DA RD = L VT TL | P UL LU P ;
5.2.2 Discrete LEDs
5.2.2.1 Location and Labels
The Spartan-3E Starter Kit board has eight individual surface-mount LEDs lo-
cated above the slide switches as show in figure 5.2.
The LEDs are labeled LED7 through LED0 inwhich LED7 is the most LED, LED0
is the right-most LED.
8/3/2019 NguyenNgocHoang_GrayCounter
21/31
8/3/2019 NguyenNgocHoang_GrayCounter
22/31
Chapter 5. User constraints 16
Figure 5.3: Avaiable clock input
The board includes an on-board 50 MHz clock oscillator.
Clocks can be supplied off-board via an SMA-style connecter.
Alternatively, the FPGA can generate clock signal or other high-speed signals
on the SMA-style connecter.
Optionally install a separate 8-pin DIP-style clock oscillator in the supplied
socket.
5.2.3.2 Clock Connection
Each of the clock inputs connect directly to a global buffer input in I/O Bank 0,
along the top of FPGA. As show in table 6.1, each of clock inputs also optimally
connects to an associated DCM.
8/3/2019 NguyenNgocHoang_GrayCounter
23/31
Chapter 5. User constraints 17
Table 5.1: Clock inputs and Associated Global Buffers and DCMs
Clock Input FPGA pin Global Buffer Associated DCMs
CLK50M HZ C 9 GCLK10 DC MX0Y1CLKAU X B
8GCLK
8DC MX
0Y
1CLKSM A A10 GCLK7 DC MX1Y1
5.2.3.3 UCF Constraint
In my project, on-board 50 MHz clock to be used for input source. UCF constraint
of on-board 50 MHz clock is :
N ET " c lk " L OC = " C9 " | I OS TA ND AR D = L VC MO S3 3 ;
N ET " c lk " P E RI O D = 1 0 ns H IG H 4 0 %;
8/3/2019 NguyenNgocHoang_GrayCounter
24/31
Chapter 6
Synthesis and Implementation
6.1 Xilinx Flow Overview
6.1.1 Synthesis with Xilinx XST
In this step, HDL design entry will be converted to equivalent boolean equationsaccording to which logic gates are then correspondingly packed into Logic Cells,
LUTs and Flip-flops from Xilinx UNISIM Library.
6.1.2 Translate
Translate step checks the design and ensures that netlist is consistent with chosen
architecture. Translate also checks User-defined Constraints file, for any inconsis-
tencies.
6.1.3 Map
This step performs two operation calculating and allocating Physical CBL and
IOB Components in Targeted Device, to Logic Element symbols in Netlist that is
generated during Translation Process.
18
8/3/2019 NguyenNgocHoang_GrayCounter
25/31
Chapter 6. Synthesis and Implementation 19
6.1.4 Place and Route
Place and Route process places CLBs into logical position and utilizes the routing
resources on target device, to connect logic cell on Xilinx Product such that desired
Timing Specification are met.
6.1.5 Bit-file generation
The result of bit-file generation step is bit-stream file that containing configuration
data for target FPGA device.
6.2 Synthesizing Design
6.2.1 Synthesis Tool Functionality
During synthesis, HDL files are translated into gates and optimized for the tar-
get architecture. Thus, XST Synthesis tool uses designs HDL code generates a
supported netlist type (NGC) for Xilinx inplementation tools.
6.2.2 Generating Post-Synthesis Simulation Model
For the generated Post-Synthesis Simulation Model, no standard delay file (.sdf
file) is back-annotated during simulation.(Thus, UNISIM Library primitives, in-
cluded in the synthesis generated netlist, do not have any delay associated with
it). Therefore, expected Post-Synthesis Simulation result is same as Functional
Verification result of HDL Design.
After synthesizing completes successfully by using Generate Post-Synthesis
Simulation Model, synthesis file will be generated in to direction /netgen/syn-
thesis. The simulation of this file have been done and shown in figure 6.1
8/3/2019 NguyenNgocHoang_GrayCounter
26/31
Chapter 6. Synthesis and Implementation 20
Figure 6.1: Post-Synthesis Simulation
6.3 Translating Design
6.3.1 Translate Process Functionality
During translation, the NGDBuild program performs the following functions
Converts input design netlists and writes results to a single merged NGD
netlist. The merged netlist describes thelogic in the design as well as any
location and timing constraints.
Performs timing specification and logical design rule checks.
Adds constraints from the User Constraints File (UCF) to the merged netlist.
6.3.2 Translate Process File Types
Translate Process uses following file as input:
NGC netlist file from Synthesis Process.
UCF constraint file containing timing and layout constraints.
Translate Process uses following file as output:
NGD file, containing logical description of the design, expressed in terms oflower level Xilinx Primitives, with constraint applied to design.
8/3/2019 NguyenNgocHoang_GrayCounter
27/31
Chapter 6. Synthesis and Implementation 21
Figure 6.2: Post-Translate Simulation
BLD Report file shows following error in design or UCF file.
Missing or untranslatable hierarchical blocks
Invalid or incomplete timing constraints
Output contention, loadless outputs, and sourceless inputs
After translating completes successfully by run Generate Post-Translate Sim-
ulation Model under Implementation design Translate, translate file will
be generated in to direction /netgen/translate. The simulation of translate file
is shown in figure 6.2.
6.4 Mapping the Design
6.4.1 MAP Process Functionality
Allocates CLB and IOB resources for all basic logic elements in the design.
Processes all location and timing constraints, performs target device opti-
mizations, and runs a design rule check on theresulting mapped netlist.
6.4.2 MAP Process File Types
MAP Process uses NGD file, created during Translate Process, as Input file.
MAP Process creates following files as output.
8/3/2019 NguyenNgocHoang_GrayCounter
28/31
Chapter 6. Synthesis and Implementation 22
Figure 6.3: Post-Map Simulation
NCD (Native Circuit Description) file containing physical description of de-
sign in terms of the components in the target Xilinx device
PCF (Physical Constraints File) contains constraints specified during design
entry expressed in terms of physical elements.
MRP (MAP Report File) confirms the resources used within the device; and
describes trimmed and merged logic.Detailed Report also describes exactly
where each portion of the design is located in the device.
After mapping completes successfully by using Generate Post-Map Simulation
Model, map file will be generated in to direction /netgen/map. The simulation
of this file have been done and shown in figure 6.3
6.5 Placing and Routing the Design
6.5.1 Place and Route Process Functionality
During placement, PAR places components into sites based on factors such
as constraints, the length of connections,and the available routing resources
After placing the design, the router performs a converging procedure for a
solution that routes the design to completion and meets timing constraints
8/3/2019 NguyenNgocHoang_GrayCounter
29/31
Chapter 6. Synthesis and Implementation 23
Figure 6.4: Place and Route Simulation
6.5.2 PAR Process File Types
PAR Process uses Mapped Design (NCD) File and Physical Constraint (PCF)file
created during MAP Process, as Input File
PAR Process creates following files as output
Placed and Routed NCD Design File.
PCF (Physical Constraints File) contains constraints specified during design
entry expressed in terms of physical elements.
PAR Report File, including summary information of all placementand rout-
ing iterations
After Place and Route completes successfully by using Generate Post-Place
Simulation Model, timesim file will be generated in to direction /netgen/par.
The simulation of this file have been done and shown in figure 6.4
6.6 Conclusion
In conclusion, expected Post-Synthesis Simulation and Post-Translate Simulation
results are the same as Functional Verification result of HDL Design by using the
same UNISIM library which do not have any delay associated with it. In contrast,
Post-Map and Post-Place and Route with SDF file containing logic/routing delay
information are back-annotated to the netlist, simulation waveform result shows
8/3/2019 NguyenNgocHoang_GrayCounter
30/31
Chapter 6. Synthesis and Implementation 24
delay in updating output signal ports after input clock and data are applied to
the design.
8/3/2019 NguyenNgocHoang_GrayCounter
31/31
Bibliography
[1] Spartan-3E FPGA Starter Kit Board User Guide, UG230 (v1.2)January
20, 2011, http://www.xilinx.com/support/documentation/boards_and_
kits/ug230.pdf
[2] ISE Design Suite Software Manuals - PDF Collection, ISE Design Suite Soft-
ware Manuals(v 12.4) December 14, 2010, http://www.xilinx.com/support/
documentation/sw_manuals/xilinx12_4/manuals.pdf
http://www.xilinx.com/support/documentation/boards_and_kits/ug230.pdfhttp://www.xilinx.com/support/documentation/boards_and_kits/ug230.pdfhttp://www.xilinx.com/support/documentation/sw_manuals/xilinx12_4/manuals.pdfhttp://www.xilinx.com/support/documentation/sw_manuals/xilinx12_4/manuals.pdfhttp://www.xilinx.com/support/documentation/sw_manuals/xilinx12_4/manuals.pdfhttp://www.xilinx.com/support/documentation/sw_manuals/xilinx12_4/manuals.pdfhttp://www.xilinx.com/support/documentation/boards_and_kits/ug230.pdfhttp://www.xilinx.com/support/documentation/boards_and_kits/ug230.pdf