Virtex II-Pro Dynamical Test Application - Part B -

Preview:

DESCRIPTION

Virtex II-Pro Dynamical Test Application - Part B -. Performed By: Khaskin Luba Einhorn Raziel Instructor: Rivkin Ina Winter 2005. Quick Overview. Examining possible space-compatibility of civilian devices , in order to integrate them in satellites. - PowerPoint PPT Presentation

Citation preview

1

Performed By: Khaskin Luba Performed By: Khaskin Luba

Einhorn RazielEinhorn Raziel

Instructor: Rivkin InaInstructor: Rivkin Ina

Winter 2005Winter 2005

Virtex II-Pro Dynamical Virtex II-Pro Dynamical Test ApplicationTest Application

- Part B -- Part B -

2

Quick OverviewQuick Overview

Examining possible space-Examining possible space-compatibility of compatibility of civilian devicescivilian devices, in , in order to integrate them in satellites.order to integrate them in satellites.

Statistically modelingStatistically modeling the device’s the device’s robustness to robustness to temporarytemporary damage and damage and it’s ability to recover in a case of an it’s ability to recover in a case of an error.error.

Testing the device’s modules Testing the device’s modules functioning functioning under real-time radiation.under real-time radiation.

3

THE COMPLETE SYSTEM THE COMPLETE SYSTEM OVERVIEWOVERVIEW

HOST - PC

DUT -Virtex II-PRO XC2VP7(placed on the development board)

Serial PortSerial Port USB PortUSB PortJTAG PortJTAG Port

4

System Block DiagramSystem Block Diagram

DUTDUTVirtex II-PRO FPGAVirtex II-PRO FPGA

HostHostXilinx ToolsXilinx Tools

GUIGUI

Microsoft ExcelMicrosoft Excel

LogicLogic Power PCPower PC

Serial PortSerial PortUSB PortUSB Port JTAG PortJTAG Port

5

The Virtex II-PRO FPGA The Virtex II-PRO FPGA XC2VP7XC2VP7

The Internal FPGA Modules:

- 8 Rocket I/O Transceiver Blocks- 4 DCM (Digital Clock Manager)- 44 Block Select RAM Memory total of 792KB- 44 18x18 Multiplier Blocks- PPC405- 396 User I/O pads- 4928 slices holding 157KB memory, 9856 flip-flops, and 11088 logic cells

DUTDUT

HostHost

6

Graphical User InterfaceGraphical User Interface

User transparentUser transparent Initializing the testing systemInitializing the testing system Choosing and loading the testing functionChoosing and loading the testing function Receiving data via USB and calculating statistical resultsReceiving data via USB and calculating statistical results

GUI was created in C++ language, using Visual Studio 6GUI was created in C++ language, using Visual Studio 6 Uses supplied Dynamic Library files (Dll files),Uses supplied Dynamic Library files (Dll files),

in order to control the USB modulein order to control the USB module

DUTDUT

HostHost

7

Graphical User Interface - Graphical User Interface - AlgorithmAlgorithm

Test in

Process

Gathering test info

Writing appropriate

impl. file

Test typedecision

Opening USB port

Sending start signal

Listening to USB

Collecting datato Excel file

Closing USB port

Delete temporary var .

End Test condition

Opening Excel

START

Test Ended

DUTDUT

HostHost

8

GUI – Main WindowGUI – Main Window

Status Window

Test Type

Tests List

DUTDUT

HostHost

9

GUI – Settings GUI – Settings WindowWindow

Programs’ locationUSB connection & drivers check button

DUTDUT

HostHost

Serial Port COM Select

10

Serial PortSerial PortJTAG PortJTAG Port

HostHost

DUTDUT - - Virtex II-PRO FPGAVirtex II-PRO FPGA

Power PCPower PC

USB PortUSB Port

DUTDUT - - Virtex II-PRO FPGAVirtex II-PRO FPGA

LOGICLOGIC

JTAG PortJTAG Port

HostHostThe DUTThe DUT

Combined of: Combined of: Power PCPower PC LogicLogic – logic and memory elements, DCM, MGT. – logic and memory elements, DCM, MGT.

In the In the Power PC Power PC tests the tests the Serial Port Serial Port is being used.is being used.

In the In the Logic Logic tests the tests the USB Port USB Port is being used.is being used.

The first part of this presentation deals with the The first part of this presentation deals with the LOGIC modules of the FPGA and the USB LOGIC modules of the FPGA and the USB connection…connection…

11

DLP-USB245M - DLP-USB245M - FeaturesFeatures

Fast connection – up to 1 Mb/sec.Fast connection – up to 1 Mb/sec. Small implementation Small implementation Simple InterfaceSimple Interface Mounted on a P130 expansion moduleMounted on a P130 expansion module

DUTDUT

HostHost

12

The Testing Concept – The Testing Concept – Peripheral ModulesPeripheral Modules

13

MUT - Module Under MUT - Module Under TestTest

The examined modules:The examined modules:

I/O BlocksI/O Blocks Fast Multipliers Fast Multipliers Rocket I/ORocket I/O Digital Clock Manager (DCM) Digital Clock Manager (DCM) CLB MemoryCLB Memory CLB Flop-flopsCLB Flop-flops CLB logicCLB logic BRAMsBRAMs Power PCPower PC

USBContr.

MCT MUT

14

USB ControllerUSB Controller USBContr.

MCT MUT

Controls reading and writing cycles.Controls reading and writing cycles. Determines USB’s control signals during reading Determines USB’s control signals during reading

and writing cycles.and writing cycles. Sets up the relevant data to be sent back to host.Sets up the relevant data to be sent back to host. Designed with minimal usage of logic and Designed with minimal usage of logic and

memory elements.memory elements.

15

USB ControllerUSB ControllerUSBContr.

MCT MUT

16

MCTMCT Identical basic structure for all the testing functions:Identical basic structure for all the testing functions:

- Defines input and comparison vectors in order to test the - Defines input and comparison vectors in order to test the

module’s functioning. module’s functioning.

- Computes the numbers of errors and instructs their - Computes the numbers of errors and instructs their

transference using the USB Controller. transference using the USB Controller.

Designed with the ambition to maximize the test’s mapping of each examined module.Designed with the ambition to maximize the test’s mapping of each examined module.

Minimal usage of logic and memory elements.Minimal usage of logic and memory elements.

USBContr.

MCT MUT

17

The MCT Testing The MCT Testing FlowFlow

End Test Comman

d

Creating input and comparison

vectors;Updating

control signals

Listening to Host

Single/Multiple

tests?

Waiting for

outputs

Sending input vectors to

MUT

Multiple tests

Checking outputs;

Sending results

Single test

Loading bit file

TestEnded

18

The Fast Multipliers The Fast Multipliers TestTest

USBContr.

MCT MUT

USB ControllerUSB Controller

MCTMCT

MUTMUT

(Multiplier Blocks)

Reading Control

Read-Write Control

Writing Control

Error Generator **

Indicator

Reset Block

19

Several blocks of fast multipliers are chained together to achieve 100% mapping.Several blocks of fast multipliers are chained together to achieve 100% mapping. The input vectors, set by the MCT, diffuse through the multipliers chain. The outputs are The input vectors, set by the MCT, diffuse through the multipliers chain. The outputs are

being compared with the expected result vectors using several feedbacks. being compared with the expected result vectors using several feedbacks. The calculated errors are being sent via USB, using the USB Controller, in steady time The calculated errors are being sent via USB, using the USB Controller, in steady time

intervals.intervals. Same method of diffusion through the MUT blocks chain and of error Same method of diffusion through the MUT blocks chain and of error

calculation by comparison between the expected result vectors and the calculation by comparison between the expected result vectors and the output vectors was used in all the performed tests described further…output vectors was used in all the performed tests described further…

The Fast Multipliers The Fast Multipliers TestTest

USBContr.

MCT MUT

20

Design Summary--------------Number of errors: 0Number of warnings: 0Logic Utilization:

Number of Slice Flip Flops: 1,229 out of 9,856 12%

Number of 4 input LUTs: 1,796 out of 9,856 18%Logic Distribution:

Number of occupied Slices: 1,352 out of 4,928 27%

Total Number 4 input LUTs: 1,820 out of 9,856 18%

Number of bonded IOBs: 13 out of 248 5% Number of PPC405s: 0 out of 1 0%

Number of MULT18X18s: 44 out of 44 100% Number of GCLKs: 1 out of 16 6% Number of GTs: 0 out of 8 0% Number of GT10s: 0 out of 0 0%

Fast Multipliers Test Mapping Statistics:Fast Multipliers Test Mapping Statistics:

21

The BRAMs TestThe BRAMs Test USBContr.

MCT MUT

USB ControllerUSB Controller

MCTMCT

MUTMUT

(BRAM Block)

Reading Control Read-Write

Control

Writing Control

Indicator

Reset Block

22

Design Summary--------------Number of errors: 0Number of warnings: 0Logic Utilization:

Number of Slice Flip Flops: 150 out of 9,856 1% Number of 4 input LUTs: 405 out of 9,856

4%Logic Distribution:

Number of occupied Slices: 245 out of 4,928 4%

Total Number 4 input LUTs: 420 out of 9,856 4%

Number of bonded IOBs: 18 out of 248 7% Number of PPC405s: 0 out of 1 0%

Number of Block RAMs: 44 out of 44 100% Number of GCLKs: 1 out of 16 6% Number of GTs: 0 out of 8 0% Number of GT10s: 0 out of 0 0%

BRAMs Test Mapping Statistics:BRAMs Test Mapping Statistics:

23

CLB Flip-Flops TestCLB Flip-Flops Test USBContr.

MCT MUT

USB ControllerUSB Controller

MCTMCT

MUTMUT

(CLB Flip-Flops Blocks)

Indicator

Reset Block

24

CLB Flip-Flops CLB Flip-Flops TestTest

USBContr.

MCT MUT

CLB Flip-Flops Block – Closer LookCLB Flip-Flops Block – Closer Look

25

Design Summary--------------Number of errors: 0Number of warnings: 0Logic Utilization:

Number of Slice Flip Flops: 9,235 out of 9,856 93%

Number of 4 input LUTs: 227 out of 9,856 2%Logic Distribution:

Number of occupied Slices: 4,926 out of 4,928 99%

Total Number 4 input LUTs: 237 out of 9,856 2% Number of bonded IOBs: 18 out of 248 7%

Number of PPC405s: 0 out of 1 0% Number of GCLKs: 1 out of 16 6% Number of GTs: 0 out of 8 0% Number of GT10s: 0 out of 0 0%

CLB Flip-FlopsCLB Flip-Flops Test Mapping Statistics:Test Mapping Statistics:

26

CLB Logic TestCLB Logic Test USBContr.

MCT MUT

USB ControllerUSB Controller

MCTMCT

MUTMUT

(Logic Blocks - Adders)

Reading Control

Read-Write Control

Writing Control

Indicator

Reset Block

27

Design Summary--------------Number of errors: 0Number of warnings: 0Logic Utilization:

Number of Slice Flip Flops: 9,705 out of 9,856 98%

Number of 4 input LUTs: 6,188 out of 9,856 62%Logic Distribution:

Number of occupied Slices: 4,926 out of 4,928 99%

Total Number 4 input LUTs: 6,188 out of 9,856 62%

Number of bonded IOBs: 18 out of 248 7% Number of PPC405s: 0 out of 1 0% Number of GCLKs: 1 out of 16 6% Number of GTs: 0 out of 8 0% Number of GT10s: 0 out of 0 0%

CLB LogicCLB Logic Test Mapping Statistics:Test Mapping Statistics:

28

CLB Memory TestCLB Memory Test USBContr.

MCT MUT

USB ControllerUSB Controller

MCTMCT

MUTMUT

(LUT Blocks)

Indicator

Reset Block

29

Design Summary--------------Number of errors: 0Number of warnings: 0Logic Utilization:

Number of Slice Flip Flops: 128 out of 9,856 1% Number of 4 input LUTs: 1,047 out of 9,856

10%Logic Distribution:

Number of occupied Slices: 4,920 out of 4,928 99%

Total Number 4 input LUTs: 9,760 out of 9,856 99%

Number used for 32x1 RAMs: 8,704( Two LUTs used per 32x1 RAM)

Number of bonded IOBs: 18 out of 248 7% Number of PPC405s: 0 out of 1 0% Number of GCLKs: 1 out of 16 6% Number of GTs: 0 out of 8 0% Number of GT10s: 0 out of 0 0%

CLB MemoryCLB Memory Test Mapping Statistics:Test Mapping Statistics:

30

DCM TestDCM Test USBContr.

MCT MUT

USB ControllerUSB Controller

MCTMCT

MUTMUT

(4 DCM Units)

Indicator

Reset Block

31

Design Summary--------------Number of errors: 0Number of warnings: 0Logic Utilization:

Number of Slice Flip Flops: 272 out of 9,856 2% Number of 4 input LUTs: 452 out of 9,856 4%

Logic Distribution: Number of occupied Slices: 273 out of 4,928 5%

Total Number 4 input LUTs: 452 out of 9,856 4% Number of bonded IOBs: 18 out of 248 7%

Number of PPC405s: 0 out of 1 0% Number of GCLKs: 16 out of 16 100%

Number of DCMs: 4 out of 4 100% Number of GTs: 0 out of 8 0% Number of GT10s: 0 out of 0 0%

DCMDCM Test Mapping Statistics:Test Mapping Statistics:

32

Rocket I/O TestRocket I/O Test USBContr.

MCT MUT

USB ControllerUSB Controller

MCTMCT

MUTMUT

(Transceivers Block)

Indicator

Reset Block

Clock Buffers

33

Rocket I/O TestRocket I/O Test USBContr.

MCT MUT

DATA FLOW CHART –DATA FLOW CHART –Transceivers and Loop-back Transceivers and Loop-back

TestingTesting

34

Design Summary--------------Number of errors: 0Number of warnings: 0Logic Utilization:

Number of Slice Flip Flops: 117 out of 9,856 1% Number of 4 input LUTs: 294 out of 9,856 2%

Logic Distribution: Number of occupied Slices: 186 out of 4,928 3%

Total Number 4 input LUTs: 294 out of 9,856 2% Number of bonded IOBs: 26 out of 248 10%

Number of PPC405s: 0 out of 1 0% Number of GTIPADs: 8 out of 16 50% Number of GTOPADs: 8 out of 16 50% Number of GCLKs: 1 out of 16 6% Number of GTs: 4 out of 8 50%

Number of GT10s: 0 out of 0 0%

Rocket I/O Transceivers Test Mapping Statistics:Rocket I/O Transceivers Test Mapping Statistics:

35

Design Summary--------------Number of errors: 0Number of warnings: 0Logic Utilization:

Number of Slice Flip Flops: 119 out of 9,856 1% Number of 4 input LUTs: 389 out of 9,856

3%Logic Distribution:

Number of occupied Slices: 229 out of 4,928 4%

Total Number 4 input LUTs: 389 out of 9,856 3%

Number of bonded IOBs: 26 out of 248 10% Number of PPC405s: 0 out of 1 0%

Number of GTIPADs: 16 out of 16 100% Number of GTOPADs: 16 out of 16 100%

Number of GCLKs: 1 out of 16 6% Number of GTs: 8 out of 8 100%

Number of GT10s: 0 out of 0 0%

Rocket I/ORocket I/O Loop-Back Test Mapping Statistics:Test Mapping Statistics:

36

Combined TestCombined Test USBContr.

MCT MUT

USB ControllerUSB Controller

MCTMCT

Reading Control

Read-Write Control

Writing Control

Indicator

Reset Block

CLB Logic (adders)

Fast Multipliers

MGT

DCM

CLB Memory (LUTs)

BRAMs

37

Design Summary--------------Number of errors: 0Number of warnings: 0Logic Utilization:

Number of Slice Flip Flops: 8,661 out of 9,856 87%

Number of 4 input LUTs: 7,137 out of 9,856 72%Logic Distribution:

Number of occupied Slices: 4,926 out of 4,928 99%

Total Number 4 input LUTs: 7,655 out of 9,856 77%

Number of bonded IOBs: 26 out of 248 10% Number of PPC405s: 0 out of 1 0%

Number of GTIPADs: 16 out of 16 100% Number of GTOPADs: 16 out of 16 100% Number of Block RAMs: 44 out of 44 100%

Number of MULT18X18s: 44 out of 44 100%

Number of GCLKs: 1 out of 16 6% Number of GTs: 8 out of 8 100% Number of DCMs: 1 out of 4 25%

Number of GT10s: 0 out of 0 0%

CombinedCombined Test Mapping Statistics:Test Mapping Statistics:

38

SOFTWARE WORK FLOW

Bit file GUI Design

Logic Simulation

High Level Design

Core Generator, Architecture Wizard

Low Level Synthesis

Test Algorithm

Place and Route

39

The Virtex II-Pro FPGA The Virtex II-Pro FPGA XC2VP7XC2VP7Power-PC 405 structurePower-PC 405 structure DUTDUT

HostHost

40

Performed TestsPerformed Tests

1.1. General Purpose Registers testGeneral Purpose Registers test

2.2. MMU test (TLB)MMU test (TLB)

3.3. Instruction test (including memory Instruction test (including memory test) test)

4.4. Cache testCache test

5.5. Timers testTimers test

6.6. Interrupts testInterrupts test

7.7. Integrated modules testIntegrated modules test

41

Hardware Design: 3 Hardware platforms:Hardware Design: 3 Hardware platforms:1.1. Platform without access to external Platform without access to external

memory – for cache testmemory – for cache test2.2. Platform with maximum modules – for Platform with maximum modules – for

integrated modules testintegrated modules test3.3. Platform with minimum modules – for all Platform with minimum modules – for all

other tests other tests Software design: 2 layers - C code & Software design: 2 layers - C code &

assemblyassembly Implementation of software in designated Implementation of software in designated

BRAM blockBRAM block

Test Concept - PPCTest Concept - PPC

42

Hardware Design – Block Hardware Design – Block DiagramDiagram

PPC405

PLB

PLB2OPB

BRAM

BRAM

OPB

JTAG

Timer

RS232 (UART)

DCM

To Host

43

Hardware Design – Block Hardware Design – Block DiagramDiagram

Cache test systemCache test system

PPC405

PLB

PLB2OPB

BRAM

BRAM

OPB

JTAG

Timer

RS232 (UART)

DCM

To Host

44

Hardware Design – Block Hardware Design – Block DiagramDiagram

Integrated test systemIntegrated test system

PPC405

PLB

PLB2OPB

BRAM

BRAM

OPB

JTAG

Timer

RS232 (UART)

DCM

To Host

GPIO

45

Test Algorithm - PPCTest Algorithm - PPC

Assembly LayerAssembly Layer

C code LayerC code LayerSTART

CreateInput & “Golden”

Vectors

Assign Physical Address

To inputs

Load input Vectors by physical

address

Perform TestCreate Outputs

Save outputVectors to specified Physical address

Load & CompareOutputs with golden

vectors

Send results to serial port

Single/Multiple

tests?

FINISHTEST

46

Write the following values to registers:Write the following values to registers:

0x00000000,0xFFFFFFFF,0xAAAAAAAA,00x00000000,0xFFFFFFFF,0xAAAAAAAA,0x55555555,x55555555,

Number of register (0-31).Number of register (0-31).

Read from registers and compare to Read from registers and compare to written values written values

Instructions Used: li, mr, addiInstructions Used: li, mr, addi

1. General-Purpose 1. General-Purpose RegistersRegisters

47

TLB buffer contains 64 indexes.TLB buffer contains 64 indexes.

Using same method as in the General-Using same method as in the General-Purpose RegistersPurpose Registers

test for the TLB Buffer. Write & read to test for the TLB Buffer. Write & read to each indexeach index

Instructions Used: tlbre, tlbweInstructions Used: tlbre, tlbwe

2. MMU Test - TLB2. MMU Test - TLB

48

3. Instruction Set3. Instruction Set

Executing selected instructions (including Executing selected instructions (including memorymemory

instructions) using above values.instructions) using above values.

Compare outputs with those expected.Compare outputs with those expected.Instructions tested:Instructions tested:

Arithmetic:Arithmetic: Add, mulli, subf Add, mulli, subf

Compare:Compare: cmpi, mfcr cmpi, mfcr

Logic:Logic: Or, And, Xor Or, And, Xor

Memory:Memory: stw, lwz stw, lwz

Branch:Branch: b b

49

As mentioned – a separate hardware platform is As mentioned – a separate hardware platform is usedused

here. here.

Run simple code which performs Add, Multiply andRun simple code which performs Add, Multiply and

Condition operations. Condition operations.

Compare with expected results. Compare with expected results. C-Code level only. No special instructions used.C-Code level only. No special instructions used.

4. Cache Test4. Cache Test

50

5. Timers test5. Timers test

Implement a timer (using base system resources), andImplement a timer (using base system resources), and

Measure a pre-defined process.Measure a pre-defined process.

Compare with expected results.Compare with expected results. C-Code level only. No special instructions used.C-Code level only. No special instructions used.

access to timer using supplied driver.access to timer using supplied driver.

51

Generating an Interrupt which raise a global flag andGenerating an Interrupt which raise a global flag and

Check the flag’s value. Check the flag’s value.

The interrupt is generated using decrementing counterThe interrupt is generated using decrementing counter

(based on a timer implemetation) (based on a timer implemetation) C-Code level only. No special instructions used.C-Code level only. No special instructions used.

access to timer and control on interrupt using supplied driver.access to timer and control on interrupt using supplied driver.

6. Interrupts test6. Interrupts test

52

As mentioned – a separate hardware platform is As mentioned – a separate hardware platform is usedused

here. here.

Run simple but common program which Run simple but common program which generategenerate

outputs.outputs.

Then compare results with those expected.Then compare results with those expected.

6. Integrated Modules 6. Integrated Modules testtest

53

Example Code - TLBExample Code - TLBmain() {int* a;int* addr;int i,errors;a=(int*)0x00000010; *a=0x00000000;errors=0;

li(2,0x00000010);lwz(2,2);li(3,0);

for(i=0;i<63;i++){tlbwe(2,3,0);tlbwe(2,3,1);addi(3,3,1);}

li(2,0x00000100);li(3,0);

for(i=0;i<63;i++){tlbre(4,3,0); addi(4,4,0);stw(4,2); addi(2,2,4);tlbre(4,3,1); stw(4,2);addi(2,2,4); addi(3,3,1);}

for(i=0;i<63;i++){addr=(int*)(256+4*i);if(0x00000000!=*addr){

errors++;}

xil_printf(“%d”,errors);}

}}}}

}}}

Initialize Test

Initialize Write Process

Write Process

Initialize Read Process

Read Process

Compare Process

Send result to host

54

1.1. Design the hardware structure (MHS Design the hardware structure (MHS file)file)

2.2. Create hardware platform (MMS file - Create hardware platform (MMS file - Platgen stage)Platgen stage)

3.3. Create software platform, i.e. Create software platform, i.e. designated drivers, parameters, designated drivers, parameters, libraries etc. (Libgen stage)libraries etc. (Libgen stage)

4.4. Design software (C-Code)Design software (C-Code)5.5. Compile software (ELF file)Compile software (ELF file)6.6. Combine HW & Software (BIT file)Combine HW & Software (BIT file)7.7. Download to device and run (Impact) Download to device and run (Impact)

Work Flow – Xilinx Work Flow – Xilinx EDKEDK

55

Design Tools Used Design Tools Used During The Project During The Project

HDL Designer – Creating hardware applicationsHDL Designer – Creating hardware applications MODELSIM – VHDL simulation MODELSIM – VHDL simulation Synplify – Synthesis tool Synplify – Synthesis tool Xilinx ISE Project Navigator – Place and RouteXilinx ISE Project Navigator – Place and Route Xilinx XPS (EDK) – PPC related testsXilinx XPS (EDK) – PPC related tests Visual C++ – Designing the GUIVisual C++ – Designing the GUI

Recommended