ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 13.06.2025

Просмотров: 3468

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

314

Appendix A

Figure A6

Examples of FPGA packages.

Table A3

Xilinx FPGAs.

Virtex II

Spartan

Spartan

Spartan

Family

Pro (X)

Virtex II

Virtex E

Virtex

3

IIE

II

Logic blocks

352–

64–

384–

384–

192–

384–

96–

(CLBs)

11,024

11,648

16,224

6,144

8,320

3,456

1,176

Logic cells

3,168–

576–

1,728–

1,728–

1,728–

1,728–

432–

125,136

104,882

73,008

27,648

74,880

15,552

5,292

System gates

40 k–

72 k–

58 k–

50 k–

23 k–

15 k–

8 M

4 M

1.1 M

5 M

600 k

200 k

I/O pins

204–

88–1108

176–804

180–512

124–784

182–514

86–284

1,200

Flip-flops

2,816–

512–

1,392–

1,392–

1,536–

1,536–

384–

88,192

93,184

64,896

24,576

66,560

13,824

4,704

Max. internal

547

420

240

200

326

200

200

frequency

MHz

MHz

MHz

MHz

MHz

MHz

MHz

Supply

1.5 V

1.5 V

1.8 V

2.5 V

1.2 V

1.8 V

2.5 V

voltage

Interconnects

SRAM

SRAM

SRAM

SRAM

SRAM

SRAM

SRAM

Technology

0.13 u

0.15 u

0.18 u

0.22 u

0.09 u

9-layer

8-layer

6-layer

5-layer

8-layer

copper

metal

metal

metal

metal

CMOS

CMOS

CMOS

CMOS

CMOS

SRAM bits

216 k–

72 k–

64 k–

32 k–

72 k–

32 k–

16 k–

(Block RAM)

8 M

3 M

832 k

128 k

1.8 M

288 k

56 k

TLFeBOOK


Programmable Logic Devices

315

Table A4

Actel FPGAs.

Family

Accelerator

ProASIC

MX

SX

eX

Logic modules

2,016–32,256

5,376–56,320

295–2,438

768–6,036

192–768

System gates

125 k–2 M

75 k–1 M

3 k–54 k

12 k–108 k

3 k–12 k

I/O pins

168–684

204–712

57–202

130–360

84–132

Flip-flops

1,344–21,504

5,376–26,880

147–1,822

512–4,024

128–512

Max. internal

500 MHz

250 MHz

250 MHz

350 MHz

350 MHz

frequency

Supply voltage

1.5 V

2.5 V, 3.3 V

3.3 V, 5 V

2.5 V, 3.3 V,

2.5 V, 3.3 V,

5 V

5 V

Interconnects

Antifuse

Flash

Antifuse

Antifuse

Antifuse

Technology

0.15 u

0.22 u

0.45 um

0.22 u

0.22 u

7-layer metal

4-layer metal

3-layer metal

CMOS

CMOS

CMOS

CMOS

CMOS

SRAM bits

29 k–339 k

14 k–198 k

2.56 k

n.a.

n.a.

FPGAs can be very sophisticated. Chips manufactured with state-of-the-art 0.09 mm CMOS technology, with nine copper layers and over 1,000 I/O pins, are currently available. A few examples of FPGA packages are illustrated in figure A6, which shows one of the smallest FPGA packages on the left (64 pins), a medium-size package in the middle (324 pins), and a large package (1,152 pins) on the right.

Several companies manufacture FPGAs, like Xilinx, Actel, Altera, QuickLogic, Atmel, etc. Examples from two companies (Xilinx and Actel) are illustrated in tables A3 and A4. As can be seen, they can contain thousands of flip-flops and several million gates.

Notice that all Xilinx FPGAs use SRAM to store the interconnects, so are reprogrammable, but volatile (thus requiring external ROM). On the other hand, Actel FPGAs are non-volatile (they use antifuse), but are non-reprogrammable (except one family, which uses Flash memory). Since each approach has its own advantages and disadvantages, the actual application will dictate which chip architecture is most appropriate.

TLFeBOOK


TLFeBOOK

Appendix B: Xilinx ISE BModelSim Tutorial

The following synthesis, placement, and simulation tools are described in the tutorials presented in the Appendices:

Tools

Application

Appendix

ISE 6.1 þ ModelSim 5.7c

Xilinx CPLDs and FPGAs

B

MaxPlus II 10.2 þ Advanced

Altera CPLDs and some FPGAs

C

Synthesis Software

Quartus II 3.0

Altera CPLDs and FPGAs

D

XiIinx ISE 6.1 is a comprehensive synthesis and implementation environment for Xilinx programmable devices. ModelSim XE 5.7c (from Model Technology) is also provided as part of the package. The former is employed for circuit synthesis and design implementation, while the latter is used for simulation.

Xilinx ISE 6.1 WebPack, along with ModelSim XE II 5.7c Starter, can be downloaded cost-free from www.xilinx.com.

This is a very brief tutorial, which is divided into five parts:

B1. Entering VHDL Code

B2. Synthesis and Implementation

B3. Creating Testbenches

B4. Simulation (with ModelSim)

B5. Physical Realization

B1. Entering VHDL Code

Launch ISE 6.1 Project Navigator. A screen like that of figure B1 will be displayed.

Start a new project (File ! New Project). The dialog box of figure B2 will be shown. In the Project Name field, type the name of the ENTITY of the VHDL code to be entered (flipflop, in this example). In the Project Location field, choose the working directory. Finally, select HDL as the top level module type. Click on Next.

In the dialog box of figure B3, select the device (Spartan 3, for example). Then select XST (Xilinx Synthesis Technology) as the synthesis tool, ModelSim as the simulator, and VHDL as the language. Click on Next.

TLFeBOOK

318

Appendix B

Figure B1

Figure B2

TLFeBOOK

Xilinx ISE þ ModelSim Tutorial

319

Figure B3

In the dialog box of figure B4, select VHDL Module, then type the file name (flipflop.vhd, in this example), and choose its location. Click on Next and Finish until the text editor is displayed, as in figure B.5.

Enter your VHDL code (figure B5) and save it. The project is now ready to be synthesized.

B2. Synthesis and Implementation

In the Processes for Source window, select Synthesize-XST. Then go to Process ! Properties. The box of figure B6 will be shown. Select Optimization Goal ¼ Area and Optimization E¤ort ¼ Normal, then click on OK.

To synthesize the design, select Process ! Run, or click on , or double-click on Synthesize-XST. However, if desired, the syntax can be checked before synthesis is invoked. Just click on the ‘‘þ’’ sign before the word Synthesize-XST to expand it (see figure B7) and double-click on Check Syntax.

After synthesis is concluded, view the synthesis report. Double-click on View Synthesis Report, under Synthesize-XST, in the Processes for Source window (figure B7).

To better view the report, you can use the toggle tool . A section of such a report is presented in figure B8. Check, for example, the number of flip-flops inferred by the

compiler.

Check also the RTL diagram. Double-click on View RTL Schematic, under the Synthesize-XST directory. The diagram of figure B9 will be presented.

TLFeBOOK


320

Appendix B

Figure B4

Figure B5

TLFeBOOK

Xilinx ISE þ ModelSim Tutorial

321

Figure B6

Figure B7

Now the design can be implemented. Double-click on the Implement Design option in the Processes for Source window (figure B7).

After the implementation is concluded, expand the Implement Design option and check the several reports produced, particularly the Pad Report (under the Place & Route directory). Check which pin was assigned to each signal.

Play with the Floorplanner. Double-click on View/Edit Placed Design (Floorplanner), under the Place & Route directory. Select View ! Hierarchy, View ! Floorplan, View ! Placement, View ! Package Pins. Now examine each one of windows created. Move the cursor over the pins of the chip to see their descriptions.

TLFeBOOK

322

Appendix B

Release 6.1i - xst G.23

HDL Synthesis Report

===============================

Macro Statistics

Input File Name: flipflop.prj

# Registers: 1

Output File Name : flipflop

1-bit register: 1

Output Format: NGC

===============================

Target Device: xc3s50-4-pq208

Cell Usage :

Optimization Goal: Area

# FlipFlops/Latches: 1

Optimization Effort: 1

# FDC: 1

Keep Hierarchy: NO

# Clock Buffers: 1

Global Optimization: AllClockNets

# BUFGP: 1

RTL Output: Yes

# IO Buffers: 3

===============================

# IBUF: 2

Synthesizing Unit <flipflop>.

# OBUF: 1

Related source file is

===============================

c:/xilinx6.1/my_projects/flipflop.vhd.

Device utilization summary:

Found 1-bit register for signal <q>.

Selected Device : 3s50pq208-4

Summary: inferred 1 D-type flip-flop(s).

Number of Slices: 1 out of 768 0%

Unit <flipflop> synthesized.

Figure B8

Figure B9

Note: Had a CPLD (CoolRunner, for example) been chosen instead of an FPGA (Spartan 3, in this example), the list of options in the Processes for Source window would be a little di¤erent. Try, for example, to double-click on the device description (xc3-s50. . .) in the Sources in Project window. This will bring back the dialog box of figure B3. Change the device to CoolRunner 2. Press OK and then observe the new list of options displayed in the Processes for Source window.

B3. Creating Testbenches (with HDL Bencher)

HDL Bencher allows the creation of testbenches (waveforms). Then ModelSim can be invoked to perform the actual simulation (ModelSim XE II 5.7c Starter is one of the cost-free third-party softwares provided along with Xilinx ISE 6.1 WebPack).

TLFeBOOK


Xilinx ISE þ ModelSim Tutorial

323

Figure B10

Select Project ! New Source. The dialog box of figure B10 will be displayed. Select Test Bench Waveform, then type the desired file name (flipflop_tbw, for example). Finally, check whether the project location is correct and click on Next until HDL Bencher is launched (figure B11).

When HDL Bencher starts, a screen like that of figure B11 is displayed, which allows the clock signal to be set. Notice that the input signal clk was chosen as the master clock. Type in its parameters and then click on OK. The waveforms screen shown in figure B12 is then displayed.

The position of any signal in figure B12 can be changed by just dragging it up or

down. Also, if the clk waveform must be changed, click on or click the right mouse button in the area under the waveforms, which will cause the dialog box of

figure B11 to be presented again.

We must now set up the values of the other signals in figure B12 (rst and d). To do so, just click on the vertical grid line after which you want the value of the signal to be changed. An example, after all input signals have been set up, is shown in figure B13.

Define the end time of the testbenches. To do so, click the right mouse button in the area under the curves and select Set End of Testbench, then drag the blue line to the desired position.

TLFeBOOK

324

Appendix B

Figure B11

Figure B12

Figure B13

TLFeBOOK

Xilinx ISE þ ModelSim Tutorial

325

Figure B14

Save the testbenches file. Observe that a new file (flipflop_tbw.tbw) is then added to the Sources in Project window.

B4. Simulation (with ModelSim)

Having finished creating the testbenches, ModelSim can now be invoked to perform the simulation. Indeed, several levels of simulation are available, including the following (see the complete list in the lower part of figure B14, under ModelSim Simulator):

Expected simulation results: Logical verification.

Behavioral simulation: Logical and timing verification.

Post-place & route simulation: Logical and timing verification after placement.

TLFeBOOK

326

Appendix B

Figure B15

Figure B16

Two of these simulation levels will be employed in the steps below.

In the Sources in Project window, select the testbench file (flipflop_tbw.tbw). Notice then the several simulation options available under ModelSim Simulator in the Processes for Source window (figure B14).

Double-click on Generate Expected Simulation Results. This will run a background logical simulator, which will compute the output signals and then automatically launch HDL Bencher with the computed signals included in it. An example is shown in figure B15. Examine whether your project works as expected (from a logical point of view). Then exit HDL Bencher without saving the waveforms.

Now double-click on Simulate Post-Place & Route VHDL Model. ModelSim is launched and a detailed simulation is performed. Maximize the waveforms window and select Zoom ! Zoom Full. Examine again the results (figure B16).

TLFeBOOK