xpc98v1 L
xpc98v1 L
xpc98v1 L
Training Course
fe
1998 V 1
- Outline -
Outline I
fe
- Outline -
Outline II
Synchronous Logic Design
Input / Output Design
Lab 3
Memory Design
Lab 4
Simulation Basics
Lab 8, Lab 9
fe
- Outline -
Outline III
XACTstep M1 Software Flow
M1 Implementation Options
Lab 10
Timing Analyzer
Lab 11
Design Constraints
Lab 12, Lab 13
CIC
EPIC
Configuration
Hardware Debugger and XChecker Cable
Xilinx Conversion
fe
- Outline -
Design
Ideas
Detailed
Design
Functional
Simulation
Device
Programming
Timing
Simulation
Synthesis
Synthesis&&
Implementation
Implementation
FPGA
CIC
fe
tpd=22.1ns
fmax=47.1MHz
- swflow -
M
M11
Design Flow
Xilinx Unified Libraries
VHDL/VERILOG Models
Functional Simulation
Synthesis
LogiBlox
Synthesis
Library
Synopsys
FPGA Compiler or
Design Compiler
Synopsys
VHDL System Simulator
or
3rd Party
VHDL/VERILOG Simulator
Simulation
Library
LogiCores
Optional
Netlist
(XNF or *EDIF)
Post-layout Verification
Static Timing
Verification
Constraints
File
Netlist Launcher
NGDBUILD
Implementation Tools
VHDL,
VERILOG,
*SDF
CIC
fe
** Standard
- swflow -
Timing Simulation
Synopsys
VSS Simulator
or
3rd Party
VHDL/VERILOG Simulator
Design Entry
HDL design files
Must learn synthesizable RTL Verilog/VHDL coding
style for Synopsys
Tool: text editor
xedit, textedit, vi, joe, ...
module converter(i3,i2,i1,i0,a,b,c,d,e,f,g);
input i3, i2, i1, i0 ;
output a, b, c, d, e, f, g;
reg a,b,c,d,e,f,g;
always @(i3 or i2 or i1 or i0) begin
case({i3,i2,i1,i0})
4'b0000: {a,b,c,d,e,f,g}=7'b1111110;
4'b0001: {a,b,c,d,e,f,g}=7'b1100000;
4'b0010: {a,b,c,d,e,f,g}=7'b1011011;
4'b0011: {a,b,c,d,e,f,g}=7'b1110011;
4'b0100: {a,b,c,d,e,f,g}=7'b1100101;
4'b0101: {a,b,c,d,e,f,g}=7'b0110111;
4'b0110: {a,b,c,d,e,f,g}=7'b0111111;
4'b0111: {a,b,c,d,e,f,g}=7'b1100010;
4'b1000: {a,b,c,d,e,f,g}=7'b1111111;
4'b1001: {a,b,c,d,e,f,g}=7'b1110111;
4'b1010: {a,b,c,d,e,f,g}=7'b1101111;
4'b1011: {a,b,c,d,e,f,g}=7'b0111101;
4'b1100: {a,b,c,d,e,f,g}=7'b0011110;
4'b1101: {a,b,c,d,e,f,g}=7'b1111001;
4'b1110: {a,b,c,d,e,f,g}=7'b0011111;
4'b1111: {a,b,c,d,e,f,g}=7'b0001111;
endcase
end
endmodule
CIC
fe
- swflow -
Functional Simulation
HDL simulation
Tool: Verilog simulator
Cadence Verilog-XL
Viewlogic VCS
Tool: VHDL simulator
Synopsys
VSS
Viewlogic
Speedwave
CIC
fe
- swflow -
Logic Synthesis
RTL Verilog/VHDL -> XNF (Xilinx Netlist Format)
Tool: Synopsys software
Design Analyzer
HDL Compiler
VHDL Compiler
FPGA Compiler
CIC
fe
- swflow -
Xilinx Implementation
EDIF, XNF -> configuration bitstream & timing
netlist
CIC
fe
- swflow -
Timing Analysis
Critical path & clock rate analysis
Tool: Xilinx XACTstep Timing Analyzer
CIC
fe
- swflow -
Timing Simulation
Generate the Verilog file with timing
Tool: ngd2ver utility
Verilog simulation
Tool: Verilog simulator
VHDL simulation
Tool: Synopsys VSS
CIC
fe
- swflow -
Device Programming
Use configuration bitstream files to program
Xilinx devices
CIC
fe
- swflow -
Design Tools
Verilog simulator
Verilog-XL or VCS
Verilog simulation model for Xilinx primitives &
macrofunctions
VHDL simulator
VSS or Speedwave
VHDL simulation model for Xilinx primitives &
macrofunctions
Verilog/VHDL synthesis
Synopsys
Xilinx-Synopsys interface (XSI)
Synthesis libraries
DesignWare libraries
Interface programs
CIC
fe
- swflow -
Design Tools
Implementation
Xilinx XACTstep
Our focus:
Synopsys FPGA Compiler
Xilinx XACTstep
Knowledge of Verilog-HDL design & simulation is assumed.
CIC
fe
- swflow -
HDL Compiler
Translate Verilog descriptions into Design
Compiler/FPGA Compiler
VHDL Compiler
Translate VHDL descriptions into Design
Compiler/FPGA Compiler
Design Compiler
Constraint-driven logic optimizer
FPGA Compiler
Design Compiler Family synthesis tool that targets
FPGA technologies
Optimization for LUT architectures
CIC
fe
- swflow -
(V)HDL
Compiler
.db
.sldb
Design Analyzer
Optimized Netlist
CIC
fe
- swflow -
Synthesis Reports
CIC
fe
- swflow -
XACTstep M1.3
OS
GUI
Netlists
Binaries
16 bit code
Place&Route
* v5.2/6.0 tools ran on these operating systems but were not 100% tested
**XC9500 operation required modification of path variable. M1.3 integrates XC9500.
*** XC3x00A and XC5000 will be supported by M1 in the M1.4 release.
Note XC4000A is not supported by M1.
CIC
fe
- swflow -
Internet site
Home page http://www.xilinx.com
XUP http://www.xilinx.com/programs/univ.htm
SmartSearch http://www.xilinx.com/search.htm
Technical seminars
CIC
fe
- swflow -
CIC Supports
Xilinx software
PC :
WS :
Xilinx hardware
FPGA demo board, XChecker download cable
Technical support
WWW http://cic01.cic.edu.tw/software/Xilinx
[email protected]
TEL:03-5773693 ext 146
[email protected]
TEL:03-5773693 ext 148
<|
o
CIC
fe
- swflow -
XC9500
CPLDs
In-System
Programming Controller
JTAG
Controller
JTAG Port
programmable (ISP)
CPLDs
Function
Block 1
I/O
I/O
I/O
Global
Clocks
Global
Set/Reset
Global
TriStates
CIC
Function
Block 2
I/O
Blocks
I/O
FastCONNECT
Switch Matrix
Function
Block 3
5 ns pin-to-pin
36 to 288
macrocells
(6400 gates)
10,000
program/erase
cycles
1
Function
Block 4
Complete IEEE
1149.1 JTAG
capability
2 or 4
fe
5 volt in-system
- ARCH -
CIC
fe
- ARCH -
Complete Interconnectivity
with FastCONNECT
Global
3-State
Global
S/R
Function
Block
Function
Block
Function
Block
FastCONNECT
Function
Block
Function
Block
Function
Block
fe
Function
Block
Global
Clocks
JTAG
CIC
Function
Block
- ARCH -
AND
Array
Global
Tri-State
2 or 4
Macrocell 1
I/O
Macrocell 18
I/O
ProductTerm
Allocator
36
From
FastCONNECT
To
FastCONNECT
CIC
fe
- ARCH -
XC9500 Macrocell
to/from other macrocells
From
FastCONNECT
SUM-Term
Logic
36
P-Term
Allocator
XOR
D/T
fe
- ARCH -
R S
P-term Clk
P-term R&S
P-term OE
CIC
Register
Global
Clocks
2 or 4
Global Global
R/S
OEs
18
9572
95108
95144
95216
95288
Macrocells
36
72
108
144
216
288
Usable
Gates
800
1600
2400
3200
4800
6400
tPD (ns)
7.5
7.5
7.5
10
10
Registers
36
72
108
144
216
288
Max I/O
34
72
108
133
166
192
PC84
TQ100
PQ100
PQ160
PQ100
PQ160
Packages
CIC
VQ44
PC44
fe
PC44
PC84
TQ100
PQ100
- ARCH -
PQ160
HQ208
BG352
HQ208
BG352
ASIC-like
ASIC-like
Architectures
Architectures
(FPGAs)
(FPGAs)
XC3100A
5V ISP
Family
HIGH DENSITY
SRAM
XC7300
OTP
XC3000A
XC4000E,EX,XL
Performance
Optimized SRAM
XC4000
XC5200
Cost/Performance
Optimized
SRAM
fe
0
620 GA
C
X
FP
M
RA
New Markets
PAL-like
PAL-like
Architectures
Architectures
(CPLDs)
(CPLDs)
CIC
HIGH DENSITY
5ns
LOW COST
- ARCH -
XC3100A
Key Feature
Speed
XC4000E/EX/XL
XC5200
Speed
Low Cost
Density
Density
RAM
Speed
to 95 MHz
to 66 MHz
to 50 MHz
Density
1K-7.5K gates
3K-62K gates
2K-23K gates
I/O
64-176
80-384
84-244
Flip-flops
256-1320
360-5376
256-1936
Features
2 global clocks
4 global clocks
Internal buses
(same)
(same)
Edge decode
Cascade
Carry
Carry
Scan
Scan
RAM
CIC
fe
- ARCH -
XC4000 Architecture
CLB
Slew
Rate
Control
CLB
S witch
Matrix
CLB
Input
Buffer
Programmable
Interconnect
C1 C2 C3 C4
S/R
Control
F4
F3
F2
F1
DIN
H'
H
Func.
Gen.
F
Func.
Gen.
SD
F'
G'
EC
RD
G'
H'
S/R
Control
DIN
SD
F'
G'
H'
EC
1
H'
F'
RD
Configurable
Logic Blocks (CLBs)
CIC
fe
Delay
H1 DIN S/R EC
G
Func.
Gen.
Vcc
Output
Buffer
CLB
Q
G4
G3
G2
G1
Passive
Pull-Up,
Pull-Down
- ARCH -
Pad
Inputs
CIC
fe
Combinatorial
Logic
Function(s)
- ARCH -
FlipFlops
Outputs
Look Up Tables
Combinatorial Logic is stored in 16x1 SRAM Look Up
Tables (LUTs) in a CLB
Look Up Table
4-bit address
Example:
Combinatorial Logic
A B C D
A
B
Z
C
D
CIC
fe
- ARCH -
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
1
0
1
0
1
Z
0
0
0
1
1
1
. . .
1
1
1
1
1
1
1
1
0
0
1
1
0
1
0
1
0
0
0
1
WE
G4
G3
G2
G1
G
Func.
Gen.
C1 C2 C3 C4
function
generators (Look
Up Tables)
16x1 RAM or
Logic function
2 Registers
Each can be
configured as
Flip Flop or
Latch
Independent
clock polarity
Synchronous
and
asynchronous
Set/Reset
CIC
fe
H1 DIN S/R EC
S/R
Control
G4
G3
G2
G1
F4
F3
F2
F1
- ARCH -
DIN
G
Func.
Gen.
SD
F'
G'
YQ
H'
EC
RD
H
Func
.Gen.
F
Func.
Gen.
1
G'
H'
Y
S/R
Control
DIN
SD
F'
G'
XQ
H'
EC
RD
1
H'
F'
F
H
G
CIC
fe
- ARCH -
I
O
TS
Clocks
CIC
fe
- ARCH -
IOB
Pad
Bonded to
Package Pin
Passive
Pull-Up,
Pull-Down
Vcc
T/OE
O
Output
Buffer
OK (Output
Clock)
I1
Input
Buffer
I2
CE
IK (Input
Clock)
Delay
CIC
fe
- ARCH -
Pad
XC4000EX IOB
Slew Rate
Control
Passive
Pull-Up/
Pull-Down
T
Output Mux
Flip-Flop
D
Out
Output
Buffer
CE
Output
Clock
Pad
Input
Buffer
I1
I2
Clock
Enable
Flip-Flop/
Latch
Q
CE
Input
Clock
CIC
fe
Delay
Fast
Capture
Latch
Delay
Q D
Latch
G
X6550
- ARCH -
Long Lines
CLB
Segmented across
chip
Global clocks, lowest
skew
2 Tri-states per CLB
for busses
CIC
fe
- ARCH -
Switch
Matrix
CLB
Switch
Matrix
CLB
CLB
XC4000EX Interconnect
Hierarchy
CIC
fe
- ARCH -
CIC
fe
- ARCH -
XC4000EX VersaRingTM
CIC
fe
- ARCH -
CIC
fe
- ARCH -
Direct
Interconnect
(Green)
CLB
(Red)
Long Lines
(Purple)
CIC
fe
- ARCH -
Available
NOW
XC4000E
Speed
3-25K Gates
60 MHz
XC4000EX
28-125K Gates
66 MHz
Conversion
During
1996
XC4000
3-25K Gates
40 MHz
CIC
fe
Density
- ARCH -
XC4000E
CIC
fe
- ARCH -
XC4000E Architectural
Enhancements
Select-RAM
TM
Memory
CIC
fe
- ARCH -
New
XC4000
RAM
Data
Address
Address
WE
WE
XC4000E
RAM
Data 2
Address 2
Optional
Dual Port
Clock
Asynchronous
Asynchronous Single
SinglePort
Port
Synchronous
Synchronous
Timing
Timing
Critical
Critical
Simple
SimpleTiming
Timing Programmable
Programmableduring
during
device
operation
device operationororatat
start-up
start-upconfiguration
configuration
Simple
SimpletotoUse
Use 33nsnsread
readtime
time
Longer
Longer
Design
DesignTimes
Times
CIC
Programmable
Programmableonly
only
during
device
during device
operation
operation
44ns
nsread
readtime
time
fe
- ARCH -
Dual
DualPort
Port
XC4000EX
The XC4000EX Contains XC4000E Features:
Synchronous, single and dual-port Select RAM memory
Dedicated JTAG boundary scan logic
High speed carry logic
Wide Edge decoders
In Addition to:
Twice the routing resources
New high speed quad interconnect resources
High speed 3 level clocking network
VersaRing I/O added for pin assignment flexibility
Improved carry logic for faster adders, multipliers and
DSP functions
CIC
fe
- ARCH -
CIC
fe
- ARCH -
CIC
fe
- ARCH -
238
466
608
770
950
1,368
1,862
2,432
3K
5K
6K
8K
10K
13K
20K
25K
3-9K
(Logic + Select-RAM)
Max I/O
Packages:
100%
Footprint
Compatible
80
112
128
144
160
PC84
PC84
192
224
256
TQ144 TQ144
PQ160 PQ160 PQ160 PQ160
PQ208 PQ208 PQ208 PQ208 PQ208 HQ208
HQ240 HQ240 HQ240
HQ304
PG120 PG156 PG156 PG191 PG191 PG223 PG223 PG223
fe
CIC
BG225BG225
- ARCH -
PG299
XC4000EX Family
4028EX** 4036EX** 4044EX** 4052XL 4062XL 4085XL 40125XL
Typ Logic Gates
28,000
36,000
44,000
52,000
62,000
85,000
125,000
56,000
72,000
90,000
110,000
130,000
175,000
250,000
32,768
41,472
51,200
61,952
73,728
100,352
157,968
Number CLBs
1,024
1,296
1,600
1,936
2,304
3,136
4,624
Flip-Flops
2,560
3,168
3,840
4,576
5,376
7,168
10,336
I/O
256
288
320
352
384
448
544
Supply Voltage
5/3
5/3
5/3
Packages:
HQ208
HQ208
HQ208
HQ208
HQ208
HQ240
HQ240
HQ240
HQ240
HQ240
HQ304
HQ304
BG352
BG352
BG352
BG352
BG352
BG432
BG432
BG432
BG560
BG560
BG560
BG560
PG411
PG411
PG475
PG475
(Logic + Select-RAM)
100% Footprint
Compatible
PG299
PG411
CIC
fe
- ARCH -
LC3
LC2
LC1
DO
(.LC0)
DI
F4
F3
F2
F1
D Q
CE
CLR
CIC
fe
CI
- ARCH -
CE CK CLR
CIC
fe
- ARCH -
Slew
Rate
Control
Passive
Pull-Up,
Pull-Down
Vcc
T/OE
O
Output
Buffer
I
Delay
Input
Buffer
CIC
fe
- ARCH -
Pad
XC5000 Family
CIC
Part
5202
3000
8x8
64
256
84
5204
6000
10x12
120
480
124
5206
10000
14x14
196
784
148
5210
16000
18x18
324
1296
196
5215
23000
22x22
484
1936
244
fe
- ARCH -
function generator
CLB inputs
5 generalpurpose (A-E)
Internal
feedback
from flip-flops
2 CLB outputs
CIC
F, G, or
registered
fe
- ARCH -
M
U
X
CIC
fe
F
F
- ARCH -
M
U
X
Slew
Rate
Control
Passive
Pull-Up
Vcc
T/OE
O
Q
Output
Buffer
OK (Output
Clock)
I
Q
IK (Input
Clock)
CIC
fe
- ARCH -
Input
Buffer
TTL or
CMOS
Pad
XC3000 Family
Part
CLBs
Flip-Flops
3120A
1300-1800
3130A
8x8
64
256
64
2000-2700
10x10
100
360
80
3142A
2500-3700
12x12
144
480
96
3164A
4000-5500
14x16
224
688
120
3190A
5000-7000
16x20
320
928
144
3195A
6500-8500
22x22
484
1320
176
CIC
fe
- ARCH -
IOBs
XC6200 Architecture
16x16 Tile
4x4 Block
User I/Os
Address
Data
Control
y y
y
y
y y
User I/Os
CIC
fe
- ARCH -
User I/Os
FastMAPtm
Interface
User I/Os
Function Cell
HardWireTM
Unique no-risk 100% compatible mask-programmed cost
reduction of Xilinx FPGA
HARDWIRE
FPGA
CIC
fe
- ARCH -
CPLD or FPGA?
CPLD
FPGA
SRAM reconfiguration
Excellent for computer
Non-volatile
JTAG Testing
architecture, DSP,
registered designs
Wide fan-in
Fast counters, state
machines
Combinational Logic
Small student projects,
lower level courses
CIC
fe
- ARCH -
XC4000
Feature
EX
XL
Shortest Pin-To-Pin
Bi-directional Busses
DSP (Multiply/Accumulate)
RAM
CIC
fe
- ARCH -
5200
6200
9500
X
X
X
EX
XL
5200
Tolerant of pin-locking
In-System Programmable
Boundary Scan
Fast/Partial Configuration
6200
X
X
CIC
fe
X
X
- ARCH -
9500
XC4000
Feature
TTL & CMOS 5v Output
EX
XL
5200
6200
9500
T, C
T, C
T, C
T, C
T, C
3.3 V Operation
CIC
fe
Opt.
X
- ARCH -
Opt.
Foundation and
TM
XACTstep Software
XACTstepTM M1 Software
ALLIANCE Series
Software Backplane
)RXQGDWLRQ Series
fe
- Soft -
Design Tools
Standard CAE entry and verification tools
XACT software implements the design
The design is optimized for best performance and
minimal size
Graphical User Interface and Command Line Interface
Easy access to other Xilinx programs
Manages and tracks design revisions
Functional Simulation
Design
Entry
Foundation
or Alliance
Back Annotation
Simulation
Schematic,
HDL Code
XACT
Xilinx
CIC
fe
Design Implementation
- Soft -
Design
Verification
Multi-Source Integration
Mixed-Level Flows
+'/
6FKHPDWLF
([LVWLQJ
'HVLJQV
&RUHV
EDIF
VHDL
Verilog
SDF
Knowledge
Driven
Implementation
Check Point
Verification
Design Source
Integration
Standards
Based
translations
CIC
fe
- Soft -
Xilinx Libraries
Optimized components for use in any Xilinx FPGA or CPLD
Wide range of functions
Comparators, Arithmetic functions, memory
DSP and PCI interfaces
Easy to use with ABEL, VHDL, Verilog, schematic entry
CIC
fe
- Soft -
fe
- Soft -
DESIGN ENTRY
Schematic
HDL
(X-VHDL/X-ABEL)
Finite State
Machine Diagram
User-Created Stimulus
LogiBLOX
Gate-Level
Functional
Simulation
Netlist Merging
Mapping to Target
Architecture
Post-MapStatic Timing
Analysis
IMPLEMENTATION
Multi-Pass
PAR
Knowledge-Driven
Place and Route
User-Created Stimulus
Creation of Device
Programming Data
Interactive
Hardware
Debuggung (Optional)
PROM File
Formatting
CIC
fe
- Soft -
HDL Editor
Finite State
Machine Editor
VHD
ABL
X-VHDL
Compiler
X-ABEL
Compiler
Symbol
Descriptor
Viewlogic
Import Utility
Schematic
Capture
EDN
EDN
Simulation
Only
EDN
Design Netlist
and Constraints
EDN UCF PCF
User-Created
Simulation
Stimulus
CIC
Gate-Level Simulation
fe
- Soft -
Netlist Merging/Mapping
SXNF
SXNF
XNF
XNF
EDIF
EDIF
UCF
UCF
NGDBUILD
NCF
NCF
NGD
NGD
M1
Design Flow
MAP
NCD
NCD
PCF
PCF
TRCE
TRCE
PAR
BITGEN
NCD
NCD
BIT
BIT
CIC
fe
- Soft -
Foundation Overview
Integrated Aldec front end and Xilinx implmentation
tools
CIC
fe
- Soft -
CIC
fe
- Soft -
Schematic Entry
CIC
fe
- Soft -
CIC
fe
- Soft -
fe
- Soft -
Foundation Simulator
CIC
fe
- Soft -
Implementation - M1 Design
Manager
Manages
design data
Access
reports
Supports
CPLDs,
FPGAs
Flow Engine
Timing Analyzer
CIC
fe
- Soft -
Toolbox Programs
Flow Engine
Controls start/stop points
and custom options
Timing Analyzer
Report on net and path
delays
Hardware Debugger
Download configuration file
fe
- Soft -
Flow Engine
View
status of
tools
Control
tool
options
Implement
design to
the
bitstream
CIC
fe
- Soft -
Library Types
CIC
fe
- Lib -
CIC
fe
- Lib -
Arithmetic:
COUNTER, ADDER, SUBTRACTOR,
ACCUMULATOR, COMPARATOR
Storage:
SHIFT, DATA_REG, ROM, RAM, SYNC_RAM,
DP_RAM
Logic:
ANDBUS, ORBUS, MUXBUS, DECODE, TRISTATE,
MULITIPLEXER, SIMPLE GATES
I/O:
INPUTS, OUTPUTS, BIDIR_IO
CIC
fe
- Lib -
CIC
fe
- Lib -
CIC
fe
- Lib -
Three-State Drivers
Constants
CIC
fe
- Lib -
Project Manager
Schematic Editor
HDL Editor
State Diagram Editor
Fast gate-level Logic Simulator
External third-party programs
CIC
fe
- FndPM -
fe
- FndPM -
fe
- FndPM -
Library &
Schematic
List
Message
CIC
fe
- FndPM -
File Menu I
New Project - Creates and opens new project.
CIC
fe
- FndPM -
File Menu II
Project Info - Displays project information.
Libraries - Enables operations on project libraries.
CIC
fe
- FndPM -
CIC
fe
- FndPM -
Tools Menu I
CIC
fe
- FndPM -
Tools Menu II
Symbol Editor - Starts Symbol Editor
LogiBLOX - Starts a facility designed to define
LogiBLOX components. (FPGA Only)
CIC
fe
- FndPM -
CIC
fe
- FndPM -
IOB IN1
IN1
CIC
fe
D Q
- FndSch -
Q2
CIC
fe
- FndSch -
Component Naming
Conventions
Common component names, pin names and
functions for all families
Basic format is
<function><width><control_inputs>
CB4CLE = Counter, Binary, 4 bits, Clear, Load, Enable
FD16RE = Flip-flops, D-type, 16 bits, Reset, Enable
CIC
fe
- FndSch -
CIC
fe
- FndSch -
CIC
fe
- FndSch -
Schematic Editor
CIC
fe
- FndSch -
in the
flowchart
CIC
fe
- FndSch -
Component Libraries I
Library Types
System Libraries
User Libraries
Project Libraries
System libraries - These libraries are automatically
added to the project by rule. ex: XC4000E
Project working library - It is the default storage for user
macros generated throughout the development of the
project. This library is created automatically when you
are setting up a new project.
fe
- FndSch -
Component Libraries II
2. To add a library to the project, select it in the
Attached Libraries box and click Add>>.
3. To remove a library from the project, select it in
the Project Libraries box and click <<Remove.
4. Click Close to complete the operation.
CIC
fe
- FndSch -
Placing Symbols
1. Select the desired symbol from the list in the toolbox.
2. Move the mouse pointer over the desired location on
the schematic.
3. If you need to rotate or mirror the symbol before
placement, do one of the following:
Press Ctrl + R to rotate the symbol by 90 degrees
right (clock-wise).
Press Ctrl + L to rotate the symbol by 90 degrees
left.
Press Ctrl + M to mirror the symbol.
4. Click the mouse button to place the symbol.
CIC
fe
- FndSch -
fe
- FndSch -
Moving Symbols
1. Move the mouse pointer over the symbol you wish to
move.
2. Press the mouse button, and holding it move the
symbol to a new location.
3. Release the mouse button to place the symbol at the
new location.
CIC
fe
- FndSch -
CIC
fe
- FndSch -
CIC
fe
- FndSch -
CIC
fe
- FndSch -
Drawing Wires I
Switch to the Draw Wires mode
Choose Draw Wires from the Mode menu or click the
Draw Wires button in the Schematic toolbar.
In this mode the mouse looks as
Draw a wire
1. To Start a wire, Click a pin or terminal or existing
wire. When you move the mouse pointer now, a
temporal wire line will be stretched between its origin
and the current location of the mouse pointer. To
anchor a corner, click the mouse button. The fixed
segment of the wire will turn blue.
2. Cancel the connection by pressing the Esc key, thus
switching back to the Drag and Select mode.
3. To complete the connection, move the mouse pointer
over another pin, terminal or wire, and then click the
mouse button.
CIC
fe
- FndSch -
Drawing Wires II
Naming Wires
1. Switch to the Select and Drag mode
2. Double click the wire you want to name, the Net
Name window will open.
3. Type the desired name in the Net Name box, and
then click OK.
Renaming Wires
1. Double-click an appropriate wire. The Net Name
dialog box will open.
2. Edit the name in the Net Name box, and then click
OK. All labels attached to the net will change to the new
name.
CIC
fe
- FndSch -
Moving Names
1. Switch to the Select and Drag mode.
2. Select it and drag to the desired location.
Moving Wires
1. Switch to the Select and Drag mode.
2. Move the mouse pointer over the wire segment you
wish to move.
3. Press the mouse button and holding it, move the wire
segment to a new location.
4. Release the mouse button to place the wire segment
at the new location.
CIC
fe
- FndSch -
Using Buses I
Naming Conventions
A generic bus name consists of an identifier followed by
index bounds enclosed in square brackets:
BUS_NAME[X:Y]
X and Y are integer numbers greater or equal 0.
There can be both X>Y and X<Y. If the both index
bounds can be equal (X=Y), the bus consists of a
single discrete signal.
Data[3:0] = (Data3, Data2, Data1, Data0)
Data[0:3] = (Data0, Data1, Data2, Data3)
Data[2:2] = Data2
Bus Pins
Bus pin
Regular pin
CIC
fe
- FndSch -
Using Buses II
Bus Taps
Bus Terminals
Input
Output
BiDirectional
Unspecified
Connectivity Rules
DT7=A7
DT6=A6
DT5=A5
DT4=A4
DT3=A3
DT2=A2
DT1=A1
DT0=A0
CIC
EA15=B7
EA14=B6
EA13=B5
EA12=B4
EA11=B3
EA10=B2
EA9=B1
EA8=B0
fe
XOUT8=S7
XOUT9=S6
XOUT10=S5
XOUT11=S4
- FndSch -
bus terminal
CIC
fe
- FndSch -
Using Buses IV
Editing Bus Connections
Double-clicking a bus pin opens the Bus Pin
Connections dialog box, which allows you to enter the
exact sequence of signals connected to the bus pin.
XA7=A3
XA6=A2
XA5=A1
XA4=A0
XA3=QA
XA2=QB
XA1=QC
XA0=A7
CIC
fe
- FndSch -
Using Buses V
Drawing Buses
switch to the Draw Buses mode, choose Draw Buses
from the Mode menu or click the Draw Buses button
in the Schematic toolbar.
The mouse pointer in the Draw Buses mode looks as
To connect a bus pin or bus terminal with another bus
pin or bus terminal:
1. Click the first bus pin or bus terminal.
2. Cancel the connection by pressing the Esc key,
thus switching back to the Drag and Select mode.
3. To complete the connection, move the mouse
pointer over another bus pin or bus terminal, and
then click the mouse button.
CIC
fe
- FndSch -
Using Buses VI
Adding Bus Terminals
To add a bus terminal to an existing bus segment:
1. In the Drag and Drop mode, double-click the bus
segment close to its end where you wish to add a
terminal. The Add Bus Terminal /Label dialog box will
open.
2. Specify the name of the bus segment, index bounds
and the type of the terminal (I/O marker).
3. Click OK to complete the operation.
fe
- FndSch -
CIC
fe
- FndSch -
Checking Connections
SC Query /Find window that allows you to
Querying Connections
find out what symbols and pins are
connected by a given wire or bus net
select the net with the mouse.
find out what nets are connected to a
given component symbol
select the symbol with the mouse.
CIC
fe
- FndSch -
Page Setup
When you open a new sheet in Schematic Editor, it has
a default setup, including the page size, frame,
information table, etc.
CIC
fe
- FndSch -
CIC
fe
- FndSch -
Zooming Schematics
Zoom in or out a schematic
Using Scanner
Zoom in
CIC
fe
- FndSch -
Zoom area
Full Page
CIC
fe
- FndSch -
Exporting Netlists
Schematic Editor supports conversion of the
binary ALB netlist into a selected text format
CIC
fe
- FndSch -
Importing Netlists
Schematic Editor allows you to import an
CIC
fe
- FndSch -
CIC
fe
- FndSch -
CIC
fe
- Fndmld -
fe
- Fndmld -
CIC
fe
- Fndmld -
CIC
fe
- Fndmld -
fe
- Fndmld -
CIC
fe
- Fndmld -
CIC
fe
- Fndmld -
CIC
fe
- Fndmld -
CIC
fe
- Fndmld -
Symbol Properties
To specify symbol attributes select the desired
symbol in the Select mode and click on the
Properties icon
CIC
fe
- Fndmld -
to
CIC
fe
- Fndmld -
fe
- Fndmld -
Integrity Test
The integrity test performs a comprehensive
analysis of the project netlist. It does not
create a netlist but detects all design errors
and inconsistencies.
CIC
fe
- Fndmld -
Family
Type
CLBs
Levels
AppLINX
XC3000A
Bit-Serial
16
16
XAPP 022
XC3000A
Parallel
24
XAPP 022
XC3000A
Lookahead
30
XAPP 022
XC3000A
Conditional
41
XAPP 022
XC4000E-3
Carry
10.1ns
XAPP 018
XC5200-5
Carry
20ns
5200 DataSheet
CIC
fe
- COMB -
Arithmetic Functions
Arithmetic Macros are optimized for density
and speed
CIC
fe
- COMB -
Z<3>
Z<2>
Z<1>
Z<0>
Three-State Buffers
Each CLB is associated with two Three-State
buffers (BUFT)
CIC
fe
- COMB -
_ENABLE_B
A3
B3
A2
B2
A1
B1
A0
B0
BUS<3>
BUS<2>
BUS<1>
BUS<0>
CIC
fe
- COMB -
BUFT
CIC
fe
- COMB -
Wide Decoders
The Wide Decoder is a dedicated wired-AND
Useful for address decoding
DECODE8
A0
A1
A2
A3
A4
A5
A6
A7
CIC
fe
- COMB -
PULLUP
XC3000
CLBMap can specify entire CLB
XC4000/XC5000
FMap specifies a function generator in a CLB
HMap specifies an XC4000 H function generator in a
CLB
A0
FMAP
B0
C0
A2
B2
CIC
fe
- COMB -
A0
B0
A2
B2
I1
I2
I3
I4
C0
Synchronous Logic
(Flip-Flops and Latches)
Library Offerings
Types of Register Functions
Shift Registers
Left/Right, Arithmetic, Logical, Circular
Clock Dividers
Output Duty Cycle
Counters
LFSR, Binary, One_Hot, Carry Logic
Accumulators
CIC
fe
- Sync -
Naming Conventions
FD PE _1
Flip-Flop
D-Type (D), JK-Type (JK), Toggle-Type (T)
Asynchronous Preset (P), Asynchronous Clear (C)
Synchronous Set (S), Synchronous Reset (R)
Clock Enable
Inverted Clock
LDCE_1
Transparent D Latch
Asynchronous Preset (P),
Asynchronous Clear (C)
Gate Enable
Inverted Gate
CIC
fe
- Sync -
FD16 R E
Flip-Flop, D Type
Size
Synchronous Reset
Clock Enable
Counters
Libraries support a wide variety of fast and
efficient counters
CIC
fe
- Sync -
CLBs
Clock
CB16CLE/D
18 - 20
23 - 24 ns
CC16CLED
19
19 ns
CC16CLE
16 ns
LogiBLOX: LFSR
7 ns
fe
- Sync -
CIC
fe
- Sync -
IPAD
BUFG
CIC
fe
- Sync -
XC3000: 2
XC4000: 8
XC5000: 4
CIC
fe
- Sync -
IPAD
GCLK
CIC
fe
- Sync -
IPAD
BUFGS
CIC
fe
- Sync -
Description
Applications
BUFGLS
Global Low
Skew Buffer
Recommended
driver for CLBs
BUFGE
Global Early
Buffer
BUFFCLK
FastCLK
Faster than
BUFGLS; fast IO
interface
Faster than
BUFGE for IOBs
Limitations
Cell type
Primarily
drives CLB
Drives only
one FPGA
quadrant
Slower than
BUFGLS for
CLBs
IOB or CLB
Primarily
CLB
fe
- Sync -
IPAD
BUFG
CIC
fe
- Sync -
F8M
F500k
F16k
F490
F15
CIC
fe
- Sync -
BUFGS
Global Reset
All flip-flops are initialized during power up
via Global Set/Reset network
CIC
fe
- Sync -
Q1
Q2
STARTUP
Q3
Q4
DONEIN
Avoid Gated-Clock or
Asynchronous Reset
Move gating to non-clock pin to prevent glitch from
affecting logic
Binary Counter
Binary Counter
Q0
Q1
Q2
D Q
Carry
Q0
Q1
Q2
Carry-1
D Q
CE
CLB Delay
fe
- Sync -
Qi-1
Left/Right
Q
EC
Qi+2
fe
Qi
EC
CIC
- Sync -
Qi+1
Fast
Small
Counter
CIC
fe
TC
- Sync -
CE
D Q
CIC
fe
D Q
- Sync -
D Q
D Q
D Q
State
A
State
A1
State
A2
cond1
cond1
cond1
State
B
CIC
fe
- Sync -
State
B
Fast TC
Small
Counter
CE
Large Dense
Counter
with Slower
Carry
CIC
fe
- Sync -
Q0
10-bit SR
Q6
Q9
CIC
fe
- Sync -
IOB IN1_PAD
IPAD
IN1_PAD
IN1
IBUF
CIC
fe
- IO -
FAST
OPAD
OBUF
CIC
fe
- IO -
Use Pull-ups/Pull-downs to
Prevent Floating
Pull-up automatically connected on unused
IOBs
CIC
fe
- IO -
CIC
fe
- IO -
I/O Logic
4000E families have no boolean logic other
than inverters in the IOBs
BUFFCLK
IPAD
F
FROM INTERNAL LOGIC
CIC
OAND2
fe
- IO -
OPAD
FAST
Example
ILFFX or ILFLX macro includes Fast Capture Latch and
IFDX
Connect BUFGE to fast capture latch
Opposite edge of same clock via BUFGLS drives IFDX
Data
IPAD
BUFGE
D
GF
Clock
CIC
IPAD
feBUFGLS
- IO -
D Q
CE
to
internal
logic
Output MUX
Fast output signal (from output clock pin)
D1
OPAD
S0
IPAD
CIC
fe
- IO -
External
Delay
Pad
Q D
Routing
Delay
Delay
Input
Buffer
CIC
fe
- IO -
OBUFT
OE
CIC
fe
- IO -
STARTUP
GTS
IPAD
CIC
fe
BUFG
- IO -
fe
- IO -
CIC
fe
- IO -
CIC
fe
- IO -
Memory Design
(RAM and ROM)
CIC
F1
A0
O = I1*I2
F2
fe
O
A1
- MEM -
As ROM
DATA(0)=0
F1
DATA(1)=0 X
F2 DATA(2)=0
DATA(3)=1
DOUT
32 bits
WE
CLB
D1
DQ
Q1
D2
2 bits
DQ
Q2
O1
CLK
fe
- MEM -
RAM Types
Synchronous RAM
(SYNC_RAM)
Synchronous Write
Operation
Data
Write Enable
Write Clock
Address
Data
Write Enable
Write Clock
CIC
fe
- MEM -
Output
SP
Output
DP
Output
RAM Guidelines
Less than 32 words is best
32x1 or 16x2 per RAM requires only one CLB
Delays are short, (one level of logic)
Data and output MUXes are required to expand depth
CIC
fe
- MEM -
Memory Use
Most synthesis tools can synthesize ROM from
behavioral HDL code, but RAMS must be
instantiated
D
WE
A0
A1
A2
A3
A4
RAM/ROM16X1S to 32X8S
Use S suffix for Synchronous RAM
Use D suffix for Dual-Port RAM
CIC
fe
- MEM -
O
RAM32X1S
CIC
fe
- MEM -
Memory Function
Data file for
initialization
CIC
fe
- MEM -
CIC
fe
- MEM -
4: 2, 7,
7: 3
CIC
fe
- MEM -
CIC
fe
- MEM -
CIC
fe
- MEM -
CIC
fe
Whats ABEL
ABEL Structure
ABEL Syntax
Designing with FPGAs
Foundation HDL Entry
- Abel -
Whats ABEL
ABEL-HDL (Advanced Boolean Equation Language)
A hardware description language optimized for, but not
limited to, PLD design.
Supports a variety of behavioral input forms, including
high-level equations, state diagrams, and true tables.
Allows designs to be entered and verified with little or
no concern for the target transfer files.
Easy to learn & debug under Foundation.
Completely integrated into Foundation.
CIC
fe
- Abel -
Test
End Vectors
Logic
Descriptions
Declarations Header
ABEL Structure I
CIC
Module source
Options -trace wave
Title 'Example of a Source File
Declarations
in1, in2, in3, clk PIN;
all, none, other PIN istype 'reg';
out = [all, none, other];
@MESSAGE Declarations completed
Equations
out.clk = clk;
all := in1 & in2 & in3;
none := !in1& !in2 & !in3;
other := (in1 & in2 & !in3) # (in1 & !in2 & in3)
# (in1 & !in2 & !in3) # (!in1 & in2 & in3)
# (!in1 & in2 & !in3) # (!in1 & !in2 & in3)
Test_Vectors
([in1, in2, in3, clk ] -> [all, none, other])
[1, 1, 1, .c.] -> [1, 0, 0];
[0, 1, 1, .c.] -> [0, 0, 1];
[1, 0, 1, .c.] -> [0, 0, 1];
[0, 0, 0, .c.] -> [0, 1, 0];
End source
fe
- Abel -
ABEL Structure II
Header
Module (Required): names the module and indicates if
dummy arguments are used.
Options : controls processing of the source file using
command line options.
Title : used to give a title or description for the module.
Declarations
CIC
fe
- Abel -
Euqations
Truth Tables
State Diagrams
Fuses
XOR Factors
Test Vectors
Test Vectors
Trace Statement
Test Script
End
A module is lcosed with the end statement
Other Elements
Directives can be placed anywhere needed
CIC
fe
- Abel -
General Formats I
block format
{ set of instructions }
comment format
" comment text "
" comment text to the end of line
// comment text to the end of line
count := count.fb + 2; " count by 2
count.clk = clk; "clock equation" count.oe = !enable; // enable equation
identifier format
first character: letter, underscore (_) or tilde (~)
other characters: letters, digits, underscores (_) or tildes (~)
input pin;
_Q13 node;
~inv pin;
CIC
fe
- Abel -
General Formats II
number notation
binary: ^B or ^b
decimal: ^D or ^d
hex: ^H or ^h
octal: ^O or ^o
default is decimal, but it can be changed by directive
@RADIX
input = ^b010101;
DATA = ^HFA0;
Address1 = 101; " default is decimal - 'Address1' is decimal value 101
@RADIX 2;
Address2 = 101; " NOW default is binary - 'Address2' is decimal value 5
@RADIX 10; " return to default decimal
string format
' string '
` string `
` this is also correct string '
title 'Abel HDL binary adder'
CIC
fe
- Abel -
Operators I
arithmetic operators
- (one argument)
- (two argument)
+
*
/
%
<<
>>
multiplication
unsigned integer division
modulus: remainder from /
shift left
shift right
assignment operators
=
:=
?=
?:=
Operators with '?' specify don't-care set conditions which enhances optimization.
NOTE: directive '@DCSET' or attribute 'DC' must be specified or the '?' equations are
ignored.
CIC
fe
- Abel -
Operators II
logic operators
!
&
#
$
!$
relational operators
CIC
==
!=
<
<=
>
>=
fe
- Abel -
equal
not equal
less than
less than or equal
greater than
greater than or equal
Signal Declarations I
Pin declarations
Q7 .. Q0
Q7 .. Q0
pin 15 .. 22;
istype 'reg,invert';
Clk,OC,E,I2,I1,I0 pin;
CIC
fe
- Abel -
Signal Declarations II
Node declarations
Attribute declarations
F0, A istype 'neg, reg' ;
q3,q2,q1,q0 node istype 'reg_SR';
reset pin;
reset istype 'com';
fe
CIC
- Abel -
Attributes I
Valid attributes are:
CIC
'buffer'
'collapse'
'com'
'dc'
'invert'
'keep'
'neg'
'pos'
'retain'
'reg'
'reg_d'
'reg_g'
'reg_jk'
'reg_sr'
fe
Attributes II
'reg_t'
'xor'
q3,q2,q1,q0
reset
reset
Output
QOUT
CIC
fe
- Abel -
- T-type flip-flop
- xor gate
NODE ISTYPE 'reg_SR';
PIN;
ISTYPE 'com';
PIN 15 ISTYPE 'reg,invert';
PIN ISTYPE 'reg,dc,keep';
Constant Declarations
Constant declarations
id [,id]... = expr [,expr]... ;
id - The id is an identifier that names a constant to
be used within a module.
expr - The expr is an expression that defines the
constant value.
X =.X.;
ADDR = [1,0,15];
G = [1,2]+[3,4];
A = B & C;
Set declarations
"multiple syntax of set declaration
RPM
= [RPM3,RPM2,RPM1,RPM0];
SREG
= [ Q2 , Q1 , Q0 ];
BRAKE
= [ H , L , H ];
MULOUT
= [B0..B7];
SELECT
= [S3..S2];
CIC
fe
- Abel -
State declarations
State_id [, state_id ...] STATE [state_value [,
state_value ...]];
S0, S1, S2, S3 state;
CIC
fe
- Abel -
Macro Declarations
Macro declarations
CIC
fe
- Abel -
Equations
Syntax
Module comp4
Title '4-bit look-ahead comparator'
equations
Declarations
element [?] := condition
element [?] = condition
A3..A0,B3..B0
pin;
or
E3..E0
pin istype 'com';
[ WHEN condition THEN ] [ ! ]
A_EQ_B,A_NE_B,A_GT_B,A_LT_B pin istype 'com';
element=expression;
A = [A3,A2,A1,A0];
[ ELSE equation ];
B = [B3,B2,B1,B0];
E = [E3,E2,E1,E0];
Equations
E = A !$ B;
" intermediate An = Bn
CIC
fe
- Abel -
When-Then-Else
Syntax
[ WHEN condition THEN ] [ ! ] element=expression;
[ ELSE equation ];
or
[ WHEN condition THEN ] equation; [ ELSE equation ];
Examples
WHEN (Mode == S_Data) THEN
{ Out_data := S_in;
S_Valid := 1;
}
ELSE WHEN (Mode == T_Data) THEN
{ Out_data := T_in;
T_Valid := 1;
}
module Mux12T4
title `12 to 4 multiplexer Dave Pellerin
Data I/O Corp. Redmond WA.`
a0..a3
b0..b3
c0..c3
s1,s0
y0..3
pin
pin
pin
pin
pin
1..4;
5..8;
9..13;
18,19;
14..17;
H
= [1,1,1,1];
L
= [0,0,0,0];
select = .X. ;
y
= [y3..y0];
a
= [a3..a0];
b
= [b3..b0];
c
= [c3..c0];
equations
when (select == 0) then y = a;
when (select == 1) then y = b;
when (select == 2) then y = c;
when (select == 3) then y = c;
end
CIC
fe
- Abel -
State Diagram I
Declaration
state_id [, state_id ... ] STATE;
State_diagram
State_digram state_reg
[-> state_out]
[STATE state_exp : [equation]
[equation]
:
trans_stmt; ... ]
CIC
fe
- Abel -
State Diagram II
Example
Module scanner1
Title '4-Channel Digital Scanner Example
clk pin; clock
input1, input2, input3, input4 pin; control inputs
output, sync pin; output pins
state diagram declaration and assignment
scanreg state_register istype reg_D;
scan1, scan2, scan3, scan4 state;
xilinx property Initialstate scan1;
Equations
scanreg.clk = clk;
sync = scan1;
output = (scan1 * input1)
# (scan2 * input2)
# (scan3 * input3)
# (scan4 * input4);
State_diagram scanreg
State scan1: GOTO scan2;
State scan2: GOTO scan3;
State scan3: GOTO scan4;
State scan4: GOTO scan1;
End
CIC
fe
- Abel -
Examples
case a==0 : S1;
a==1 : S2;
a==2 : S3;
a==3 : S0;
endcase;
CIC
fe
- Abel -
Examples
GOTO 0; goto state 0
GOTO x+y; goto the state x+y
CIC
fe
- Abel -
IF-THEN-ELSE
IF exp Then state_exp
[ ELSE state_exp];
Chained IF-THEN-ELSE
IF exp THEN state_exp
ELSE IF exp THEN state_exp
ELSE state_exp;
Nested IF-THEN-ELSE
IF exp THEN state_exp
ELSE IF exp THEN
IF exp THEN state_exp
ELSE state_exp
ELSE state_exp;
CIC
fe
- Abel -
Examples
STATE S0:
IF (reset) THEN S9 WITH { ErrorFlag := 1;
ErrorAddress := address;}
Else IF (address <= ^hE100)
THEN S2
ELSE S0;
CIC
fe
- Abel -
Truth Table I
Syntax
TRUTH_TABLE ( in_ids -> out_ids )
inputs -> outputs ;
or
TRUTH_TABLE ( in_ids :> out_ids )
inputs :> outputs ;
or
TRUTH_TABLE ( in_ids :> reg_ids -> out_ids )
inputs :> reg_outs -> outputs ;
CIC
fe
- Abel -
Truth Table II
Examples
TRUTH_TABLE ( [A,B] :> [C,D] -> E)
0 :> 1 -> 1;
1 :> 2 -> 0;
2 :> 3 -> 1;
3 :> 0 -> 1;
TRUTH_TABLE ( [en, A, B] -> C )
[0,.X.,.X.] -> .X.; dont care w/enab off
[1, 0, 0 ] -> 0;
[1, 0, 1 ] -> 1;
[1, 1, 0 ] -> 1;
[1, 1, 1 ] -> 0;
CIC
fe
- Abel -
Dot Extensions I
clock control
" .CE
" .CLK
declarations
DFFCE
PIN ISTYPE 'reg_G';
Clk,ClkEn,DIn PIN;
equations
DFFCE.CLK = Clk;
DFFCE.CE = ClkEn;
DFFCE := DIn;
CIC
fe
- Abel -
Dot Extensions II
feedback control
" .COM
" .FB
" .PIN
" .D
" .Q
combinational feedback from the flip-flop data input, normalized to the pin value
register feedback
pin feedback
combinational feedback from the flip-flop data input
register feedback
declarations
Q1
pin istype 'reg';
Q2
pin istype 'reg_D,buffer';
CQ1,CQ2 pin istype 'com';
CLK
pin;
equations
Q1.CLK = CLK;
Q2.CLK = CLK;
" device-independent description
Q1 := !Q1.FB;
CQ1 = Q1.COM;
" device-specific description
Q2.D = !Q2.Q;
" on the left side .D specifies flip-flop input
CQ2 = Q2.D;
" on the right side .D specifies combinational feedback
CIC
fe
- Abel -
Q1.COM
Q1
D
CLK
Q1.CLK
Q
Q1.CLR(.ACLR)
Q1.FB
Q2.OE
Q1(.PIN)
Q2.SP(.AP)
CQ2
Q2.D
RESET
D
Q
Q2.CLK
Q
CLEAR
Q2.SR(.ASR)
Q2.Q
Q2(.PIN)
CIC
fe
- Abel -
Q2
Dot Extensions IV
register control
" .D
" .J
" .K
" .R
" .S
" .T
D input to a D flip-flop
J input to a JK flip-flop
K input to a JK flip-flop
R input to a SR flip-flop
S input to a SR flip-flop
T input to a T flip-flop
declarations
foo
PIN ISTYPE 'reg_JK ;
Clock,A,B,C
PIN;
equations
foo.clk = Clock;
foo.J = A & B;
foo.K = A $ C;
CIC
fe
- Abel -
Dot Extensions V
set/reset control
" Device-independet
" .ACLR
asynchronus register reset
" .ASET
asynchronous register reset
" .CLR
synchronous register preset
" .SET
synchronous register reset
" Device-specific
" .AP
asynchronous register preset
" .AR
asynchronous register reset
" .SP
synchronous register preset
" .SR
synchronous register reset
CIC
fe
- Abel -
declarations
RST,A,B
Q
pin;
pin istype 'reg';
equations
Q := A & B;
" flip-flop Q output condition
Q.ACLR = !RST;
" flip-flop Q reset condition
Dot Extensions VI
tristate control
" .OE
output enable
declarations
OUT
A,B,C,D
equations
OUT = A $ D;
OUT.OE = C & D;
CIC
fe
- Abel -
Special Constants
CIC
fe
- Abel -
equations
Count.clk = Clk;
Count := (Count.fb + 1) & !Clear;
test_vectors
( [ Clk, Clear ] -> [Count] )
[ .C., 1 ] -> [ 0 ]; "clear the counter
[ .U., 0 ] -> [ 1 ]; "trigger the counter to next state
[ .D., 0 ] -> [ 1 ]; "transition down
Directives I
@Carry - Maximum Bit-width for Arithmetic Functions
syntax : @carry expression;
Use : For examples, for an 8-bit adder, an @CARRY
statement with an expression that results in 2 would
divide the 8-bit adder into four 2-bit adders. @CARRY 2
limits the lookahead carry by generating chain of 2-bit
adders.
fe
- Abel -
Directives II
@Dcstate - State Output Dont Cares
Syntax : @dcstate
Use : all unspecified state diagram states and transitions
are applied to the design outputs as dont cares.This
option must be used in combination with @dcset or with
the dc attribute.
@If - If Directive
Syntax : @if expression {block}
Use : If the expression is non-zero(logical true), the block
of code is included.
Example : @if ( A > 17 ) { C = D $ F ; }
@Include - Include
Syntax : @include filespec
Use : cause the contents of the specified file to be placed
in the ABEL-HDL source file.
Example : @include \\inc\\macros.abl
CIC
fe
- Abel -
XILINX PROPERTIES I
You can specify the following attributes in your XABEL
source file using the ABEL "XILINX PROPERTY"
statement:
fe
- Abel -
XILINX PROPERTIES II
XILINX PROPERTY '{FAST | SLOW} output_pin...';
(Selects output slew rate for output pins in top-level XABEL
design.)
XILINX PROPERTY 'BUFG={CLK | OE | SR} input_pin...';
(Assigns global buffers to input pins in top-level XABEL design.)
XILINX PROPERTY 'IO reg_signal...';
(Defines registers to be implemented in the IOBs.)
XILINX PROPERTY 'INIT={R | S} reg_signal...';
(Defines initial state of registers.)
XILINX PROPERTY 'WIREAND node_name...';
(Defines logic nodes to be implemented in the CPLD
interconnect array.)
XILINX PROPERTY 'PWR_MODE={LOW | STD}
signal_name...';
(Selects macrocell power mode for nodes or outputs in CPLD
designs.)
CIC
fe
- Abel -
Timespec.)
CIC
fe
- Abel -
XILINX PROPERTIES IV
Xilinx Property Example
module test
Title 'This is a test.'
XILINX PROPERTY 'OPTIMIZE OFF';
Declarations
A PIN 3;
B PIN 5;
SUM PIN 15 istype 'com';
Carry_out PIN 18 istype 'com';
t1, t2 node istype keep;
Equations
t1=A&!B;
t2=!A&B;
SUM=t1#t2;
Carry_out=A&B;
end test
CIC
fe
- Abel -
Hierarchy (Example)
Module ANDORINV
Title 'And - Or - Invert gate'
Declarations
Module AND
Interface ( A,B -> Y );
pin;
pin istype 'com';
node istype 'com';
Equations
A1.A = I1;
A1.B = I2;
N1 = A1.Y;
N.A = N1;
N.B = N2;
Y = N.Y;
fe
A2.A = I3;
A2.B = I4;
N2 = A2.Y;
End ANDORINV
CIC
- Abel -
Using Hierarchy
You use hierarchy declarations in an upper-level ABELHDL source to refer to (instantiate) another ABEL-HDL
source. To instantiate an ABEL-HDL source file, you
need to do the following:
In the lower-level source: (optional)
1. Identify lower-level I/O Ports (signals) with an
Interface statement
In the top-level source:
2. Declare the lower-level source with an Interface
declaration
3. Instantiate the lower-level source with
Functional_block declarations.
CIC
fe
- Abel -
CIC
fe
- Abel -
CIC
fe
- Abel -
CIC
fe
- Abel -
CIC
fe
- Abel -
CIC
fe
- Abel -
CIC
fe
- Abel -
Synthesize ABEL
Configuration
Synthesis -> Configuration
Check Syntax
Synthesis -> Check Syntax
Choose Options
Synthesis -> Options
Synthesize
Synthesis -> Synthesize
CIC
fe
- Abel -
ABEL Details
To know more about ABEL
Refer to DATA I/Os XILINX-ABEL manual
Foundation HDL Entry - Language Assistant
Xilinx Foundation Series On-Line Help System
CIC
fe
- Abel -
CIC
fe
- FndStat -
CIC
fe
- FndStat -
CIC
fe
- FndStat -
CIC
fe
- FndStat -
CIC
fe
- FndStat -
Edit a Diagram I
To add a port to a diagram
1. Choose Input Port, Output Port or
Bidirectional Port command from the FSM menu.
2. Place the port on the current diagram.
CIC
fe
- FndStat -
Edit a Diagram II
To add a state to a machine
State is a fundamental element of the machine. Each
state represents a certain condition of the machine,
including values of its ports and signals.
1. Choose the State command from the FSM menu.
2. Place the state bubble on the current diagram (within
machines frame).
CIC
fe
- FndStat -
CIC
fe
- FndStat -
Edit a Diagram IV
To add a condition to a transition
Condition is a Boolean HDL expression associated with
a transition. If it is true, the machine goes from one
state to another.
1. Choose the Condition command from the FSM
menu.
2. Click on the transition you wish to add condition for.
3. Enter the condition's text.
4. End conditions editing by clicking the left mouse
button.
CIC
fe
- FndStat -
Edit a Diagram V
To add an action to a state
Action is a set of HDL statements, which assigns new
values to ports or internal signals/variables.
1. Choose the Action command from the FSM menu. It
displays a submenu.
2. Select either Entry, State or Exit, depending on the
type of action you want to add. The mouse pointer
changes into an action line, with a black dot at the
beginning.
3. Click with the black dot end over the desired state.
4. Enter the action's text.
5. End actions editing by clicking the left mouse button.
Entry Action is executed when a machine is entering the state with which the action is
associated.
State Action is executed when a machine remains in the state with which the action is
associated.
Exit Action is executed when a machine is leaving the state with which the action is associated.
Transition Action is executed when a machine is going through the transition with which the
action is associated.
Diagram Action is executed concurrently with the machines.
CIC
fe
- FndStat -
Edit a Diagram VI
To choose the clock of a machine
1. Choose the Machines command from the FSM
menu.
2. Select the machine from the displayed submenu. It
displays the Machine Properties dialog box.
3. Select the desired clock from the list of clock ports.
4. Click OK.
CIC
fe
- FndStat -
CIC
fe
- FndStat -
Simulation Basics
Start to Simulate
From Project Manager
Press SIM Funct or SIM Timing button
CIC
fe
- FndSim -
Simulation toolbox
CIC
fe
- FndSim -
Select Probes
Logical States
Bus On/Off
Stimulus
Delete all
waveforms
Ruler On/Off
simulator name
logical state at the
current cursor
position
CIC
fe
- FndSim -
Delete all waveforms - this button allows you to delete all waveforms and
comments.
Display Comments On/Off - this button allows you to toggle on/off the
comment display. The comments are used to document important situations on the
waveform diagram and can be both displayed at the specified screen locations and printed
with the waveform diagram.
Bus On/Off - clicking on this button is meaningful only if you have defined some
buses either in the waveform window or on the schematic. Buses are comprised of several
signals or pins and can be displayed in HEX (Condensed) mode or in Discrete mode, in which each
signal line is shown individually.
Select Probes button - this button is used to invoke the Probes Selection
fe
window which is used to select signals and IC pins to the waveform window.
CIC
- FndSim -
that allows you to select and assign any logical state to a signal name or device pin.
Logical states can be assigned to input pins and signals, and they can also be forced
on the output pins.
CIC
fe
- FndSim -
Simulator I
Schematic editor button - clicking on this button switches the
screen to the ACTIVE-CAD schematic editor program. If this editor has already been
started, ACTIVE-CAD will display its window. Otherwise the schematic editor will be
started, and the schematics associated with the simulator netlist will be loaded.
used to perform short and long simulation steps with a single click of the mouse button.
Binary counter - the status of the 16 bit binary counter is displayed in the
form of red and yellow LED lights. The red means that the bit is at a logical high or 1,
and the yellow means logical 0.
mode with a 10 picoseconds resolution, UN - unit delay mode with propagation delays
equal to simulation precision, GL - glitch mode with propagation delays set to
simulation step and FN - functional mode with zero propagation delays.
CIC
fe
- FndSim -
Simulator II
Search Forward and Backward buttons - they allow
for a quick search of timing areas that have been marked red by the simulator program.
Schematic editor
Short and Long Step
Search
Power On
Stop Simulation
Simulation mode
setup
CIC
fe
- FndSim -
CIC
fe
- FndSim -
Formula
16 signals in the simulator selection tool can each be
assigned a formula.
fe
- FndSim -
CS - Custom Signal;
indicates a manually
drawn test vector
Software-emulated
binary counter
TRUE outputs
INVERTED outputs
Formula stimulators
defined in the Formula Editor
CIC
fe
Control buttons
- FndSim -
CIC
fe
- FndSim -
Applying Formulas
Examples:
CIC
DESCRIPTION
high and low logic level (1 and 0)
unknown ( high or low)
high impedance
numbers user for defining duration
and repetitions
parentheses for selecting subexpressions
time unit definition for duration
arguments, default is ns
brackets for defining hex bus value
fe
- FndSim -
Drawing Waveforms I
CIC
fe
- FndSim -
Drawing Waveforms II
CIC
fe
- FndSim -
CIC
fe
- FndSim -
CIC
fe
- FndSim -
CIC
fe
- FndSim -
Output Waveforms box lets you choose what will be done with
the previous output waveforms
the old waveforms will be deleted during Power On (Delete)
the new waveforms will overwrite the old waveforms
(Overwrite)
old and new waveforms will be compared (Compare)
CIC
fe
- FndSim -
CIC
fe
- FndSim -
CIC
fe
- FndSim -
CIC
fe
- FndSim -
CIC
fe
- FndSim -
GENERAL I
How to run macro operations
Run Script File
Files > Run Script File...
Edit Script File
Tools > Script File > Edit...
Run Script File step by step
Tools > Script File > Single Step Mode
Interactive
Window > Command
Naming conventions
Component Names - root/U1 (or U1) - Chip U1 at the
root level
Pin Names - B11/B12/U25.Y1
Signal Names - root/RESET (or RESET) - signal
RESET at the root level
CIC
fe
- FndSim -
GENERAL II
Logical states
Description
HI_Z
RES_LOW
RES_HIGH
RES_X
LOW
HIGH
UNKN_X
UA_LOW
A_HIGH
CONF_X
REF_V
HIGH_V
SV_LOW
SV_HIGH
SV_X
CIC
fe
- FndSim -
CIC
Comments: |
fe
- FndSim -
fe
- FndSim -
Test Vectors
Test Vector File Example:
Assign A ab.dat | assigns the first data (10101101) from ab.dat to the A bus
Assign B ab.dat | assigns the second data (2\D) from ab.dat to the B bus
sim | simulates the assigned bus values
Assign A ab.dat (AB\H) | assigns the 3rd data from ab.dat file
Assign B ab.dat (0111) | assigns the 4th data from ab.dat file
sim
Assign A ab.dat (10001111)
Assign B ab.dat (Z)
sim
|The Assign macro automatically loads the consecutive data from
| the ab. dat file.
CIC
fe
- FndSim -
l gsr
assign SW 00\h
sim 1000
h gsr
assign SW 61\h
CIC
fe
- FndSim -
l exc_p
cycle 2
CIC
Breakpoints
Tags
Milestones
Presets
Selective Simulation
Cross Point Probing With The Schematic
fe
- AnSim -
Breakpoints
A Breakpoint is a software routine that checks
for selected signal conditions in the design.
CIC
Stop simulation
Place a marker on the screen
Save test vectors
Load a new test vector file
Modify the existing test vectors using the Append
operation
fe
- AnSim -
2) Invoke simulator
3) Select
Tools ->
Breakpoints Editor...
CIC
fe
- AnSim -
CIC
fe
- AnSim -
CIC
fe
- AnSim -
CIC
fe
- AnSim -
Tags
A TAG is a combination or sequence of signals
What is the difference between a TAG and a
Breakpoint
CIC
fe
- AnSim -
CIC
fe
- AnSim -
CIC
fe
- AnSim -
Milestones
A milestone is used to store the complete
CIC
fe
- AnSim -
Active Milestones
All active (saved) milestones are listed in this area.
Click Save to manually save the current design data as
a milestone.
Select a milestone and click Load to return to the
previously saved design state.
Click Delete to remove the selected milestone from the
memory.
Click Delete All to remove all milestones.
CIC
fe
- AnSim -
Breakpoint Milestones.
Milestones can be generated by breakpoints. The
Number list box allows selecting the maximum number
of milestones that can be saved under control of
breakpoints.
CIC
fe
- AnSim -
Presets
The simulator allows any signal or device pin
to be preset to any logical state.
CIC
fe
- AnSim -
2) Highlight nodes in
this window
3) Click on Add
CIC
fe
- AnSim -
CIC
fe
- AnSim -
Selective Simulation
Running a large design for a long simulation
period can produce... long simulation times!
CIC
fe
- AnSim -
CIC
fe
disabled
active
- AnSim -
CIC
fe
- AnSim -
CIC
fe
- M1Flow -
CIC
fe
- M1Flow -
NGD Files:
Native Generic Design (NGD)
Have varying extensions
NGD, NGM, NGA, NGO, etc.
Logical design netlisting tools work with each of these
files
ngd2edif, ngd2ver, ngd2vhdl
(ngd2xnf is included with M1, but will be obsoleted in
M2)
CIC
fe
- M1Flow -
CIC
fe
- M1Flow -
NCD Files:
Native Circuit Design (NCD)
all physical design files have an NCD extension
NCD files contain varying degrees of information
Mapping information only
(refered to as partitioning in XACT)
Mapping, Placement and Routing information
CIC
fe
- M1Flow -
ngdbuild <design_name>
map <design_name>
par <design_name> <routed_name>
bitgen <routed_name>
Analysis Commands:
trce <design_name>
ngdanno <design_name>
ngd2??? <design_name> (where???= EDIF, VER,
VHDL)
Compatability Commands:
lca2ncd
csttrans
CIC
fe
- M1Flow -
FFX
G_LUT
H_LUT
F_LUT
FFY
4000E CLB
CIC
fe
- M1Flow -
The COMP
shown here is a
CLB, which
contains BELS:
F_LUT, G_LUT,
H_LUT, FFX, and
FFY
UCF
User Constraint File
NGDBUILD
Flatten Hierarchical Design
XACT-M1
Design Flow
.NGD
MAP
Logical to Physical translation
Groups LUTs and FFs Into CLBs
.NCD
.PCF
TRCE
Static Timing Estimates
TRCE
Static Timing Analysis
PAR
CIC
BITGEN
.NCD
.BIT
fe
- M1Flow -
MAP
Maps logical components to physical components
found in Xilinx FPGA: look up tables, Flip-Flops, three
state buffers, etc.
Packs physical components into COMPS
Creates internal .ncd (Native Circuit Design) file
TRCE
Analyzes Timing
Use before PAR to analyze constraints
CIC
fe
- M1Flow -
TRCE
Analyzes Timing
Use after PAR to check delays
NGDANNO
Back-annotate timing delays for Simulation
BITGEN
Create file to configure FPGA
CIC
fe
- M1Flow -
CIC
fe
- M1Flow -
Select Part
fe
- M1Flow -
Report Browser
Automatically opens with the run-only Flow
Engine
CIC
fe
- M1Flow -
CIC
fe
- M1Flow -
M1 Implementation Options
LogiBlox
EDIF
NCF
EDIF2NGD
EDIF2NGD
NGO
NGO
NGO
NGDBUILD
UCF
Logical DRC
Check-point
CIC
fe
- M1Imp -
NGD
NGDBUILD :
The Design Translation Control
Center
What NGDBUILD does
Translation of logical design (netlist) to Xilinx internal
netlist (NGD)
Merges multiple design netlist files which make up a
design into an NGD file for use by map
User constraints are also included in the NGD file
CIC
fe
- M1Imp -
NCD
MDF
NGD
MAP
NCD
PCF
NGM
MDF
MRP
CIC
fe
- M1Imp -
PCF
Timing
Check-point
Functions of MAP
MAP transforms a logic design into an
equivalent physical implementation
CIC
fe
- M1Imp -
configuration options
Implementation
has four sub-menus:
Optimize and Map,
Place and Route,
Timing, and
Interface
CIC
fe
- M1Imp -
Trim Unconnected
is on)
Duplicates logic with
high fan-out
Increases utilization,
decreases delay
CIC
fe
- M1Imp -
CIC
fe
- M1Imp -
NCD
NCD
PCF
PAR
Single-PAR run
Multi-PAR run
PAR
DIR
NCD
PAR
NCD
PAR
NCD
PAR
CIC
fe
- M1Imp -
NCD
PAR
NCD
PAR
CIC
fe
- M1Imp -
is Auto)
The Router will run
until no improvement is
made to meet timing
constraints.
Set Router passes to
avoid very long run
times for difficult designs
Start with 5 passes
for 4000EX/XL chips, 7
passes for 4000E chips
CIC
fe
- M1Imp -
fe
- M1Imp -
fe
- M1Imp -
Timing Report
Logic Level Timing
Report is created
before PAR
Has zero net delays
Used to analyze
constraints
Post Layout Timing
Report is created after
PAR
Verify that the
design meets
constraints
CIC
fe
- M1Imp -
CIC
fe
- M1Imp -
CIC
fe
- M1Imp -
Starting Strategy
Specify a placement initialization value with which to
begin the place and route attempts.
Each subsequent attempt is assigned an incremental
value based on the starting strategy value.
CIC
fe
- M1Imp -
Iterations to Attempt
Specify the number of place and route iterations to
attempt. Choose a number from 1 to 100. The default is
1.
Iterations to Save
Specify the number of place and route iterations to
save.
CIC
fe
- M1Imp -
CIC
fe
- M1Imp -
CIC
fe
- M1Imp -
CIC
fe
- M1Imp -
CIC
fe
- M1Imp -
CIC
Previous
Design
New Design
Guide
fe
- M1Imp -
CIC
fe
- M1Imp -
CIC
fe
- M1Imp -
Timing Analyzer
Timing Analyzer
Analyze delays before and after
implementation
CIC
fe
- Timing -
IOB
I F1
CLB1
X F3
DQ
CLB2
block net block net block
CIC
fe
- Timing -
Element
PAD to IOB.I
IOB.I to CLB1.F1
CLB1.F1 to CLB1.X
CLB1.X to CLB2.F3
CLB2.F3 to Clock
Delay
2.2
1.1
2.7
1.2
2.1
Total
2.2 block
3.3 net
6.0 block
7.2 net
9.3 block
It includes
the clock-to-Q delay of a flip-flop,
the path delay from that flip-flop to the next flip-flop,
the setup requirement of the next flip-flop.
CIC
fe
- Timing -
Same Clock
CIC
fe
- Timing -
Diffent Clocks
CIC
fe
- Timing -
It includes
the clock-to-Q delay of the flip-flop
the path delay from that flip-flop to the chip output.
CIC
fe
- Timing -
Pad to Setup
CIC
fe
- Timing -
Pad to Pad
CIC
fe
- Timing -
Clock Input
CIC
fe
- Timing -
Clock Skew I
CIC
fe
- Timing -
Clock Skew II
CIC
fe
- Timing -
Toolbar buttons
Performance to TimeSpec (?TS)
Shows XACT-Performance specs and details for
each controlled path
Design Performance Summary (?MHZ)
Shows worst-case delays of each path type
Detailed Analysis (?ALL)
Shows all paths
CIC
fe
- Timing -
CIC
fe
- Timing -
Limiting Paths by
Sources/Destinations
Can be Flip-Flops, Pads, Nets, Pins, CLBs,
Clocks, or All
Defaults to All
Select << to
delete All before
selecting specific
items
CIC
fe
- Timing -
CIC
fe
- Timing -
CIC
fe
- Timing -
Default
Disabled
Disabled
Disabled
Enabled
Enabled
Enabled
Enabled
Enabled
Enabled
Enabled
XACT-Performance Filters
Report Paths Failing TimeSpec only lists paths
that dont meet TIMESPECs
CIC
fe
- Timing -
Report Options
Summary Report Only
Generates a summary report containing only the path
source and end point.
Lists one delay path per line and does not display
cumulative delays through CLBs.
Applies only to FPGAs.
CIC
fe
- Timing -
Report Options
Maximum Paths per Timing Constraint
Sets the limit for the number of paths reported per
timing constraint.
For FPGAs, the default is one path reported per timing
constraint.
For CPLDs, the default is unlimited.
Not specifying a value is equivalent to "no limit."
Wide Report
Creates a report formatted into 132 characters per line,
If not selected, a "normal" report (80 characters per
line) is generated.
CIC
fe
- Timing -
Recommended Verification
Flow
Netlist
FUNCTIONAL SIMULATION
Implement
TIMING SIMULATION
Timing Analysis
Bitgen
Prom File Formatter
Download
IN-CIRCUIT VERIFICATION
CIC
fe
- Timing -
Design Constraints
.ncf
User netlist
and logical
constraints
NGDBUILD
DESIGN
TRANSLATION
MAP
PHYSICAL
DOMAIN
PAR
CIC
fe
- UCF -
Mapped design
and physical
constraints
.pcf
.ncd
TRCE
EPIC
NGDANNO
DRC
Types of Constraints
Constraint commands define the maximum
allowable delay or placement along paths
Location Constraints
Specify location of components on FPGA
Timing Constraints
Specify maximum allowable delay along logic paths
Allows both quick and dirty and highly detailed timing
control.
CIC
fe
- UCF -
Example:
INST U45 LOC = CLB_R1C5;
Occupies Row 1, Column 5 in the FPGA
CIC
fe
- UCF -
Syntax:
single components (e.g. CLBs)
INST U45 LOC=CLB_R1C5;
ranges of components (but not IOs)
INST U46 LOC=CLB_R2C2:CLB_R4C6;
multiple sites for single component
INST U50 LOC=CLB_R1C1; CLB_R2C1;
INST /top/ddf LOC=CLB_R*C2;
Pin assignments use similar syntax:
INST QOUT<3> = P32;
NET outa = P18;
CIC
fe
- UCF -
CIC
fe
- UCF -
Physical Constraints
XACT translates the your contraints (from
schematic and UCF file) into a physical
constraint (PCF) file.
CIC
fe
- UCF -
Path Types
Timing constraints are applied to logic paths
Logic paths typically start and stop at pads,
registers, latches, and RAM
CIC
fe
- UCF -
Syntax:
TIMESPEC NAME = FROM: ENDPOINT:TO: ENDPOINT: Value;
Example:
TIMESPEC TS_01 = FROM : FFS: TO : FFS : 30;
TS_01 will constrain all flip-flop to flip-flop paths in your
design to 30 ns
CIC
fe
- UCF -
TS_02
FF1
TS_04
TS_01
FF2
CLK
1 Level of Logic
2 Levels of Logic
Z<0:9>
TS_04
CIC
fe
TS_03
- UCF -
OUT1
OUT2
FF1
CLK
FF2
1 Level of Logic
2 Levels of Logic
Z<0:9>
9 ns
CIC
fe
- UCF -
OUT1
OUT2
CIC
fe
- UCF -
Group Subsets I
Subsets of pre-defined groups will pathspecific constraints:
Example:
Instance FIFORAM drives a bank of registers
TIMESPEC TS_FIFOS = FROM : RAMS(FIFORAM) : TO : FFS(MY_REG*) : 25;
MY_REG_00
FIFORAM
DATA PATH
MY_REG_01
YOUR_REG_00
YOUR_REG_01
CIC
fe
- UCF -
Group Subsets II
You can create subgroups based on names
with EXCEPT
FIFORAM
DATA PATH
MY_REG_01
YOUR_REG_00
YOUR_REG_01
CIC
fe
- UCF -
Forward Tracing
Assign constraints to a net
Constraint is applied to all endpoints driven by
the net
Example:
NET DATA0 TNM = MYBUS;
TIMESPEC TS_MYBUS = FROM : FFS(CNT25) : TO : MYBUS : 30;
TS_MYBUS
MY_REG_00
DATA0
CNT25
DATA PATH
...
MY_REG_01
MY_REG_15
CIC
fe
- UCF -
Constraining clocks
Clock period is constrained with the FFS: TO :
FFS constraint
40ns
CIC
fe
- UCF -
Example:
The TPTHRU attribute is attached to
net/instance/macro in top blob.
TIMESPEC TS_FIFOS = FROM : RAMS(FIFORAM) : THRU : ABC : TO : FFS(MY_REG*) : 25;
my_reg00
fiforam
TPTHRU=abc
my_reg01
my_reg02
my_reg03
fe
CIC
- UCF -
comb _a
$3M17/BLUE
comb_b
TPSYNC = BLUE_S
RAM/
FFS/
PADS/
LATCH
fe
- UCF -
Ignoring Paths
Informs XACT to ignore a path through a net
for specific timing specifications
Example:
Assume that TS_GENERAL and TS_FASTER would
ordinarily cover paths through net $I67/MAYBE_SLOW
A UCF constraint could be written:
NET : $I67/MAYBE_SLOW : TIG = TS_GENERAL; TS_FASTER;
CIC
fe
- UCF -
CIC
fe
- UCF -
Example:
See previous page
Identical function to the schematic entry example
Enter TNM, TIMEGRP, and TIMESPEC commands in
the UCF file
NET CLKEN TNM=GRP1;
NET FF2GATEA TNM=ABC;
NET FF2GATEB TNM=XYZ;
TIMESPEC TS01=FROM : GRP1 : TO : PADS : 20NS;
TIMESPEC TS02=FROM : XYZ : TO : OUT2 : 6 NS;
CIC
fe
- UCF -
Constraint Priority I
It is legal to constrain the same paths more
than once
CIC
fe
- UCF -
Constraint Priority II
Within a pariticular source:
Highest Priority - Timing ignores (TIG)
- FROM:THRU:TO specs
- FROM:TO specs
- PERIOD specs
Lowest Priority - Allpaths type specs (.pcf only)
fe
- UCF -
Constraint Recommendations
Do not use the same TIMESPEC name for more
than one path. BAD Example:
fe
- UCF -
CIC
fe
- UCF -
CIC
fe
- UCF -
CIC
fe
- UCF -
CIC
fe
- UCF -
CIC
fe
- UCF -
ROUTING LOCK;
CIC
fe
- UCF -
fe
- UCF -
EPIC
CIC
fe
- EPIC -
CIC
fe
- EPIC -
optional
customization files
EPIC
design.scr
.ncd
.nmc
design.epl
temp. file
NCD Tools
CIC
fe
- EPIC -
MAP
Inputs
<design>.ncd ; EPIC in design mode (default)
<design>.nmc ; EPIC in macro mode
Outputs
<design>.ncd ; modified physical design
<design>.pcf ; modified physical constraints file.
CIC
fe
- EPIC -
EPIC Window
CIC
fe
- EPIC -
CIC
fe
- EPIC -
Using EPIC I
EPIC is built on an Object - Action
paradigm
CIC
fe
- EPIC -
Using EPIC II
EPIC is able to perform most Physical design
actions
CIC
fe
- EPIC -
Constraints
Constraint Generation:
Select Object
Push attr button
Push Show Constraints button
Applicable constraints for type of design object are
displayed in dialog box
Examples of Constraints:
For Nets:
Period, Maxdelay, Lock, Block
For COMPs:
Locate, Block, Offset
For Sites (non-occupied CLBs, IOBs, etc.)
prohibit
For the Design
Period, Lock Routing, Maxskew, Maxdelay NETs /
Paths, penalize ~
CIC
fe
- EPIC -
Highlight a hierarchy
Type: select comp COUNTER/*
Type: hilite -c cyan
Create a button
button TRACE post trace
CIC
fe
- EPIC -
Manual Editing
Full function editing capabilities
All devices
Placement
Manual, swapping, pin swapping, locate, Automatic
Routing
Manual, assisted, Automatic
Logic
Capability to configure logic cells
CIC
fe
- EPIC -
Reporting
Controlled by typical TRACE like controls
-v, -e, limit
Result formats
Highlight the selected path
Timing report within history window
CIC
fe
- EPIC -
CIC
fe
- EPIC -
Configuration
Bitstream Generator
Runs if Produce Configuration Data selected
(default)
CIC
fe
- Config -
Configuration Options
Configuration Rate
The XC4000 uses an internal configuration clock,
CCLK, when configuring in a master mode. The
configuration rate option allows you to select the rate
for this clock. The following options are available. The
default is Slow.
Slow
Select Slow to set the
configuration clock
rate to 1MHz.
Fast
Select Fast to set the
configuration clock
rate to 8 MHz.
CIC
fe
- Config -
Configuration Options
Threshold Levels
Inputs : Default is TTL.
TTL (1.2 V threshold)
specify TTL-compatible inputs.
CMOS
specify CMOS-compatible outputs.This option is only
available for XC4000E and XC4000EX devices.
Configuration Pins
TD0, M0, M1, M2, Done
Float, Pullup, Pulldown
CIC
fe
- Config -
Configuration Options
Perform CRC During Configuration
This option enables Cyclic Redundancy Checking
(CRC) error checking during configuration.
If enabled, the software calculates a running CRC and
insets a unique four-bit partial check at the end of each
data frame in the configuration bitstream.
If disabled, the device performs a simple check for the
0110 pattern at the end of each frame in the
configuration data. By default, this option is on.
fe
- Config -
CIC
fe
- Config -
Reset
CIC
Serial
PROM
fe
- Config -
CCLK
Enable
Data
FPGA
Address
Parallel
PROM
CIC
fe
- Config -
Enable
Data
FPGA
Peripheral Mode
FPGA loads under microprocessor control as a
peripheral
Data
Write Strobe
Chip Selects
Ready/Busy
CIC
fe
- Config -
FPGA
Data
CCLK
Ready/Busy
CIC
fe
- Config -
FPGA
Express Mode
XC4000EX/XC5000 only
Only mode that configures in parallel
Byte loaded on each CCLK
CCLK max = 10 MHz
Equivalent to 80 MHz in other modes
Supports daisy chain if all XC5000 Express Mode
Data
CCLK
CIC
fe
- Config -
FPGA
Slave Mode
Simple two-wire interface
FPGA reads one bit of data on each clock
supplied externally
Data
Microprocessor
CIC
fe
- Config -
CCLK FPGA
Daisy Chain
Can program multiple devices with
Control
Data
BITSTREAM1
BITSTREAM2
BITSTREAM3
CIC
fe
DOUT
Lead
FPGA
Data
Clock
BITSTREAM1
- Config -
DIN
DOUT
Data
DIN
DOUT
Slave
FPGA
Slave
FPGA
BITSTREAM2
BITSTREAM3
LCA
Intel MCS (MCS)
Motorola Exormax (EXO)
Tektronix Hex (TEK)
Bitstream
BIT
LCA
LCA
Bitstream
Bitstream
BIT
BIT
PROM Formatter
HEX
CIC
fe
- Config -
CIC
fe
- Config -
PROM Properties
File -> PROM Properties
PROM File
Format
TEKHEX
MCS-86
EXORmacs
HEX
CIC
fe
Number of
Addresses
(Bytes) *
65 536
1 048 576
16 777 216
No limit
- Config -
AddressRange
Total Number
of Bits
0000:FFFF
00000:FFFFF
000000:FFFFFF
No limit
524 288
8 388 608
134 217 728
No limit
CIC
fe
- Config -
CIC
fe
- Config -
CIC
fe
- Config -
Configuration Sequence
I/O disabled
HDC=High
LDC=Low
RESET (XC3000)
PROG (XC4/5000)
Power-On
Time Delay
Clear
Configuration
Memory
Configuration
Program Mode
Low on PROGRAM
CIC
fe
- Config -
StartUp
Operational
Mode
Configuration Debugging
Check VCC and rise time
Check configuration pins and contention
Check for clean connections between FPGA
and source
CIC
fe
- Config -
CIC
fe
- Config -
FPGA Demoboard I
CIC
fe
- Config -
FPGA Demoboard II
8 DIP switches set logic input levels; switch outputs
drive both FPGAs; closing switches drive signals to
logic 1's
XC3000 displays that use eight LED bars in one row and
XC4000 displays that use eight LED bars in one row and
two 7-segment LEDs, shown in the "FPGA
Demonstration Board Displays" figure
fe
- Config -
CIC
Name
INP
MPE
SPE
M0
M1
M2
MCLK
DOUT
fe
Position
X
X
X
X
X
X
OFF
OFF
- Config -
Switch
SW2
SW2
SW2
SW2
SW2
SW2
SW2
SW2
Name
PWR
MPE
SPE
M0
M1
M2
RST
INIT
Position
X
OFF
OFF
ON
ON
ON
X
OFF
CIC
fe
- Config -
LED Indicators
LED
D1
D2
D3
D4
D5
D6
D7
D8
XC3020APin
37
36
41
33
32
31
28
29
LED
D9
D10
D11
D12
D13
D14
D15
D16
XC4003EPin
61
62
65
66
57
58
59
60
XC3020A
XC4003E
CIC
fe
- Config -
XC3020A
U6
38
39
40
56
49
53
55
30
a
f
b
g
c
d
CIC
fe
decimal point
- Config -
XC4003E
U7
39
38
36
35
29
40
44
37
XC4003E
U8
49
48
47
46
45
50
51
41
Switch
SW3
SW3
SW3
SW3
SW3
SW3
SW3
SW3
CIC
fe
XC3020A
11
13
15
17
19
21
23
24
- Config -
XC4003E
19
20
23
24
25
26
27
28
Readback sends configuration data and flipflop values back out of chip
CIC
fe
- Xchk -
Readback Operation
Readback Trigger input starts readback
operation
fe
- Xchk -
Trig
FPGA
Data
Enabling Configuration
Readback
XC3000 controlled via Bitstream Generator
Default is enabled
Data and trigger connected to Mode pins
CLK
XChecker
RT
CIC
IPAD
(MD0)
fe
TRIG
IBUF
- Xchk -
DATA
READBACK
RIP
OBUF
OPAD
(MD1)
XChecker
RD
XC4/5000
leave default configuration template option Capture
CLB and IOB Outputs When TRIG Goes Active
CIC
fe
- Xchk -
CIC
fe
- Xchk -
CIC
fe
- Xchk -
Cable Setup
Connect cable to computers serial port
Power up cable via targets VCC and GND
CIC
fe
- Xchk -
Downloading a Design
Connect cable to target VCC, GND, PROG,
DONE, DIN, CCLK
CIC
fe
- Xchk -
fe
- Xchk -
CIC
fe
- Xchk -
CIC
fe
- Xchk -
CIC
fe
- Xchk -
CIC
fe
- Xchk -
Activating Readback
Select Read button in Control Panel
Waveform opens automatically
Note waveform reflects several steady state conditions,
not timing
CIC
fe
- Xchk -
Xilinx Conversion
Convert
The Project Manager will automatically change the
project type to XACT step M1.
fe
- Conver -
CIC
fe
- Conver -
CIC
fe
- Conver -
Migrating X-BLOX/MEMGEN
Designs I
Option 1: Convert X-BLOX/MEMGEN modules
to LogiBLOX
fe
- Conver -
Migrating X-BLOX/MEMGEN
Designs II
9. Replace each functional X-BLOX and MEMGEN
module in your design with equivalent LogiBLOX
module.
Non-logical X-BLOX modules such as BUS_DEF,
BUS_Ifxx, CAST, ELEMENT, and SLICE should be
removed.
10. Add bounds to all your buses
fe
- Conver -
Migrating X-BLOX/MEMGEN
Designs III
5. Open the M1 Design Manager and create a new
project. Select design.xnf as the source file.
6. Use the M1 tools to translate, optimize, place and
route this design.
Functional Simulation
You can perform functional simulation by using the
normal 6.x flow.
Timing Simulation
1. In the M1 Flow Engine Options, edit the
Implementation Template
2. Click on the interface tab. Under Simulation Data
Options, select XNF format.
3. Run the FLOW Engine to produce the simulation
netlist
tims_sim.xnf
CIC
fe
- Conver -
Migrating X-BLOX/MEMGEN
Designs IV
4. In the Foundation Project Manager, select Tools ->
Simulator. When the simulator comes up, select File > Load Netlist. Select files of type *.XN*, and choose
time_sim.xnf
5. Make sure the simulation mode is set to TM.
CIC
fe
- Conver -
CIC
fe
- Conver -
CSTTRANS Usage
csttrans <infile>[.cst] [-o <output>]
Input file for CSTTRANS
5.X constraint file (.cst)
Output files created by CSTTRANS
User constraints file (.ucf)
CIC
fe
- Conver -
CIC
fe
- Lab -
CIC
fe
- Lab -
@y5
Lab 2 - myor8 I
4!1@4=
@y
CIC
fe
- Lab -
Lab 2 - myor8 II
File > Save as ... (myor8)
=yPMU[
CIC
fe
- Lab -
3Symbol
CIC
fe
G!No
- Lab -
@yYp2=
p.s.
new
schematic
myfib2.sch, myfib3.sch...,
CIC
fe
- Lab -
4DB4_LED3DB4_CR3
CIC
46U2
1=dG fG
26U
fG
Gs
6Uv
2
@1 V
E1
4
2
V
%OPAD1LOCG
Symbol
uB, %LOC1G
4DB4_CR33DB4_CR4
fe
- Lab -
DB4_CR4
CIC
fe
- Lab -
Lab 4 - ROM16x7
CIC
4LogiBLOX1ROM3.DBt1=
UProject ManagermrLogiBLOX
r
Tools > LogiBLOX...
@y5]G OK
fe
rom16x7.mem
depth 16
width 7
radix 2
data
1000000,
1111001,
0100100,
0110000,
0011001,
0010010,
0000010,
1011000,
0000000,
0010000,
0001000,
0000011,
1000110,
0100001,
0000110,
0001110
- Lab -
Lab 5 - DEC7SEGA I
7
ABEL3.DBt1=
)Project Manager, G HDL Entry
Icon
1ABEL=
G
Output ,
Advance ...,
Combinatorial
CIC
`G
`5
`y
fe
- Lab -
Lab 5 - DEC7SEGA II
2=y
{sConfiguration
Synthesis > Configuration
7
Title 'DEC7SEGA'
Declarations
CODE3 PIN;
CODE2 PIN;
CODE1 PIN;
CODE0 PIN;
DSP6..DSP0 PIN istype 'com';
DSP = [DSP6..DSP0];
CODE = [CODE3..CODE0];
Truth_table ( [ CODE] -> [ DSP0 .. DSP6 ] )
// Segments : a b c d e f g
[ 0 ] -> [ 0, 0, 0, 0, 0, 0, 1 ];
[ 1 ] -> [ 1, 0, 0, 1, 1, 1, 1 ];
[ 2 ] -> [ 0, 0, 1, 0, 0, 1, 0 ];
[ 3 ] -> [ 0, 0, 0, 0, 1, 1, 0 ];
[ 4 ] -> [ 1, 0, 0, 1, 1, 0, 0 ];
[ 5 ] -> [ 0, 1, 0, 0, 1, 0, 0 ];
[ 6 ] -> [ 0, 1, 0, 0, 0, 0, 0 ];
[ 7 ] -> [ 0, 0, 0, 1, 1, 0, 1 ];
[ 8 ] -> [ 0, 0, 0, 0, 0, 0, 0 ];
[ 9 ] -> [ 0, 0, 0, 0, 1, 0, 0 ];
[ 10 ] -> [ 0, 0, 0, 1, 0, 0, 0 ];
[ 11 ] -> [ 1, 1, 0, 0, 0, 0, 0 ];
[ 12 ] -> [ 0, 1, 1, 0, 0, 0, 1 ];
[ 13 ] -> [ 1, 0, 0, 0, 0, 1, 0 ];
[ 14 ] -> [ 0, 1, 1, 0, 0, 0, 0 ];
[ 15 ] -> [ 0, 1, 1, 1, 0, 0, 0 ];
end DEC7SEGA
CIC
fe
- Lab -
{s}G
Synthesis > Options
}, 3Symbol
CIC
fe
- Lab -
Lab 5 - DEC7SEGA IV
4Symbol Editor%DEC7SEGA1symbol
CIC
fe
- Lab -
Lab 5 - DEC7SEGA V
CIC
2!%@yf
DSP0, DSP1,...DSP6 - cGPIN, f
Del
46U%symbolU[
5bus - DSP[6:0] - Symbol > Add Pin...
fe
- Lab -
Lab 6 - scount8 I
Output ,
Advance ...,
Registered
CIC
`G
`5
`y
fe
- Lab -
Lab 6 - scount8 II
The number of machines
G one
@yyState Diagram
3ABEL code !
CIC
fe
- Lab -
CIC
fe
- Lab -
Lab 6 - scount8 IV
{s}G
Synthesis > Options
}, 3Symbol
CIC
fe
- Lab -
Lab 7 -
EMulti Sheet1Top
Schematic I
E#+MTop Schematic
MYFIB1.SCH
Project
Project
Document > Add... > MYFIB1.SCH
Manager
@=yY=
7
"!5
mG
m!
E#2MTop Schematic
MYFIB2.SCH
Project
Project
Document > Add... > MYFIB2.SCH
Manager
@yY=
7
"!5
mG
CIC
fe
- Lab -
m!
Lab 7 -
EMulti Sheet1Top
Schematic II
CIC
fe
MYFIB1.SCH
- Lab -
Lab 7 -
EMulti Sheet1Top
Schematic III
MYFIB2.SCH
CIC
fe
- Lab -
CIC
fe
- Lab -
D,
4Stimulator^S
CIC
fe
- Lab -
CIC
fe
- Lab -
4MacroBatch^S
@Command file
Command file
Macro cp1
CIC
fe
- Lab -
restart
vector FIB FIB[7:0]
vector PREV PREV[7:0]
vector NEXT NEXT[7:0]
vector FIBCC FIBCC[7:0]
vector FIBCC_N FIBCC_N[7:0]
vector DSPA DSPA[6:0]
vector DSPB DSPB[6:0]
radix hex FIB PREV NEXT FIBCC
radix bin DSPA DSPB FIBCC_N
watch clk enable reset PREV FIB NEXT
watch FIBCC FIBCC_N DSPA DSPB
clock clk 0 1
step 20ns
l ENABLE
l RESET
c2
h RESET
c2
sim
h ENABLE
c4
l RESET
c2
h RESET
c1
l enable
c2
h ENABLE
c 256
Options...
CIC
fe
- Lab -
Y Implement pG Reports
Map Report
Design statistics:
Minimum period: ________ns (Maximum frequency: ________MHz)
Maximum net delay: ________ns
CIC
fe
- Lab -
IO
Design statistics:
Minimum period: _______ns (Maximum frequency: ______MHz)
Maximum net delay: _______ns
CIC
fe
- Lab -
ETiming Analyzer
r myfib.ncdr
CIC
C@BG
fe
- Lab -
CIC
fe
- Lab -
CIC
fe
- Lab -
CIC
fe
- Lab -
CIC
test2.cmd
1 % step 1,
[1
cp1
fe
- Lab -