Add additional NOPs as required by hardware manual.

Microblaze:
Previously a task inherited the exception enable state from the context from which xTaskCreate() was called.  Now tasks all have exceptions enabled if they are enabled in the hardware.

Windows/GCC:
Improve the implementation of portGET_HIGHEST_PRIORITY.

Common code:
Simplify the pointer use in xQueueGenericCreate()

Demo apps: 
Remove jpg images that were used to create web pages.
Fix capitalisation issues in some demos where some header files are incldued with the wrong case, preventing building on Linux.
Remove the Microblaze demos that are using obsolete tools.
Update main_blinky for the Windows port demo to include a software timer example.
pull/1/head
Richard Barry 10 years ago
parent 95b73d40d9
commit d3e053568d

Binary file not shown.

Before

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

@ -69,7 +69,7 @@
/* FreeRTOS includes. */
#include "FreeRTOS.h"
#include "Task.h"
#include "task.h"
/* Xilinx includes. */
#include "xscutimer.h"
@ -122,6 +122,9 @@ const uint8_t ucRisingEdge = 3;
/* Enable Auto reload mode. */
XScuTimer_EnableAutoReload( &xTimer );
/* Ensure there is no prescale. */
XScuTimer_SetPrescaler( &xTimer, 0 );
/* Load the timer counter register. */
XScuTimer_LoadTimer( &xTimer, XSCUTIMER_CLOCK_HZ / configTICK_RATE_HZ );

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

@ -124,8 +124,6 @@
#include "recmutex.h"
#include "death.h"
#include "partest.h"
#include "comtest2.h"
#include "serial.h"
#include "TimerDemo.h"
#include "QueueOverwrite.h"
#include "IntQueue.h"
@ -396,8 +394,7 @@ unsigned long ulErrorFound = pdFALSE;
{
/* An error has been detected in one of the tasks - flash the LED
at a higher frequency to give visible feedback that something has
gone wrong (it might just be that the loop back connector required
by the comtest tasks has not been fitted). */
gone wrong. */
xDelayPeriod = mainERROR_CHECK_TASK_PERIOD;
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

@ -426,8 +426,8 @@ TickType_t xPeriod;
xPeriod = xMinPeriod;
}
/* Change the timer period and start the timer. */
xTimerChangePeriod( xTimer, xPeriod, portMAX_DELAY );
xTimerStart( xTimer, portMAX_DELAY );
/* Block waiting for the notification again with a different period.
Sometimes the period will be higher than the tasks block time, sometimes

@ -1,116 +0,0 @@
/*
FreeRTOS V8.2.1 - Copyright (C) 2015 Real Time Engineers Ltd.
All rights reserved
VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.
This file is part of the FreeRTOS distribution.
FreeRTOS is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License (version 2) as published by the
Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception.
***************************************************************************
>>! NOTE: The modification to the GPL is included to allow you to !<<
>>! distribute a combined work that includes FreeRTOS without being !<<
>>! obliged to provide the source code for proprietary components !<<
>>! outside of the FreeRTOS kernel. !<<
***************************************************************************
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. Full license text is available on the following
link: http://www.freertos.org/a00114.html
***************************************************************************
* *
* FreeRTOS provides completely free yet professionally developed, *
* robust, strictly quality controlled, supported, and cross *
* platform software that is more than just the market leader, it *
* is the industry's de facto standard. *
* *
* Help yourself get started quickly while simultaneously helping *
* to support the FreeRTOS project by purchasing a FreeRTOS *
* tutorial book, reference manual, or both: *
* http://www.FreeRTOS.org/Documentation *
* *
***************************************************************************
http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading
the FAQ page "My application does not run, what could be wrong?". Have you
defined configASSERT()?
http://www.FreeRTOS.org/support - In return for receiving this top quality
embedded software for free we request you assist our global community by
participating in the support forum.
http://www.FreeRTOS.org/training - Investing in training allows your team to
be as productive as possible as early as possible. Now you can receive
FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers
Ltd, and the world's leading authority on the world's leading RTOS.
http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,
including FreeRTOS+Trace - an indispensable productivity tool, a DOS
compatible FAT file system, and our tiny thread aware UDP/IP stack.
http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate.
Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS.
http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High
Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS
licenses offer ticketed support, indemnification and commercial middleware.
http://www.SafeRTOS.com - High Integrity Systems also provide a safety
engineered and independently SIL3 certified version for use in safety and
mission critical applications that require provable dependability.
1 tab == 4 spaces!
*/
#ifndef FREERTOS_CONFIG_H
#define FREERTOS_CONFIG_H
#include "xparameters.h"
/*-----------------------------------------------------------
* Application specific definitions.
*
* These definitions should be adjusted for your particular hardware and
* application requirements.
*
* THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE
* FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE.
*
* See http://www.freertos.org/a00110.html.
*----------------------------------------------------------*/
#define configUSE_PREEMPTION 1
#define configUSE_IDLE_HOOK 0
#define configUSE_TICK_HOOK 0
#define configCPU_CLOCK_HZ ( ( unsigned long ) 100000000 )
#define configTICK_RATE_HZ ( ( TickType_t ) 1000 )
#define configMAX_PRIORITIES ( 4 )
#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 120 )
#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 18 * 1024 ) )
#define configMAX_TASK_NAME_LEN ( 5 )
#define configUSE_TRACE_FACILITY 0
#define configUSE_16_BIT_TICKS 0
#define configIDLE_SHOULD_YIELD 0
/* Co-routine definitions. */
#define configUSE_CO_ROUTINES 0
#define configMAX_CO_ROUTINE_PRIORITIES ( 2 )
/* Set the following definitions to 1 to include the API function, or zero
to exclude the API function. */
#define INCLUDE_vTaskPrioritySet 1
#define INCLUDE_uxTaskPriorityGet 1
#define INCLUDE_vTaskDelete 0
#define INCLUDE_vTaskCleanUpResources 0
#define INCLUDE_vTaskSuspend 1
#define INCLUDE_vTaskDelayUntil 1
#define INCLUDE_vTaskDelay 1
#endif /* FREERTOS_CONFIG_H */

@ -1,189 +0,0 @@
/*
FreeRTOS V8.2.1 - Copyright (C) 2015 Real Time Engineers Ltd.
All rights reserved
VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.
This file is part of the FreeRTOS distribution.
FreeRTOS is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License (version 2) as published by the
Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception.
***************************************************************************
>>! NOTE: The modification to the GPL is included to allow you to !<<
>>! distribute a combined work that includes FreeRTOS without being !<<
>>! obliged to provide the source code for proprietary components !<<
>>! outside of the FreeRTOS kernel. !<<
***************************************************************************
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. Full license text is available on the following
link: http://www.freertos.org/a00114.html
***************************************************************************
* *
* FreeRTOS provides completely free yet professionally developed, *
* robust, strictly quality controlled, supported, and cross *
* platform software that is more than just the market leader, it *
* is the industry's de facto standard. *
* *
* Help yourself get started quickly while simultaneously helping *
* to support the FreeRTOS project by purchasing a FreeRTOS *
* tutorial book, reference manual, or both: *
* http://www.FreeRTOS.org/Documentation *
* *
***************************************************************************
http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading
the FAQ page "My application does not run, what could be wrong?". Have you
defined configASSERT()?
http://www.FreeRTOS.org/support - In return for receiving this top quality
embedded software for free we request you assist our global community by
participating in the support forum.
http://www.FreeRTOS.org/training - Investing in training allows your team to
be as productive as possible as early as possible. Now you can receive
FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers
Ltd, and the world's leading authority on the world's leading RTOS.
http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,
including FreeRTOS+Trace - an indispensable productivity tool, a DOS
compatible FAT file system, and our tiny thread aware UDP/IP stack.
http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate.
Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS.
http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High
Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS
licenses offer ticketed support, indemnification and commercial middleware.
http://www.SafeRTOS.com - High Integrity Systems also provide a safety
engineered and independently SIL3 certified version for use in safety and
mission critical applications that require provable dependability.
1 tab == 4 spaces!
*/
/*-----------------------------------------------------------
* Simple parallel port IO routines.
*-----------------------------------------------------------*/
/* Kernel includes. */
#include "FreeRTOS.h"
/* Demo application includes. */
#include "partest.h"
/* Library includes. */
#include "xgpio_l.h"
/* Misc hardware specific definitions. */
#define partstALL_AS_OUTPUT 0x00
#define partstCHANNEL_1 0x01
#define partstMAX_4BIT_LED 0x03
/* The outputs are split into two IO sections, these variables maintain the
current value of either section. */
static unsigned portBASE_TYPE uxCurrentOutput4Bit, uxCurrentOutput5Bit;
/*-----------------------------------------------------------*/
/*
* Setup the IO for the LED outputs.
*/
void vParTestInitialise( void )
{
/* Set both sets of LED's on the demo board to outputs. */
XGpio_mSetDataDirection( XPAR_LEDS_4BIT_BASEADDR, partstCHANNEL_1, partstALL_AS_OUTPUT );
XGpio_mSetDataDirection( XPAR_LEDS_POSITIONS_BASEADDR, partstCHANNEL_1, partstALL_AS_OUTPUT );
/* Start with all outputs off. */
uxCurrentOutput4Bit = 0;
XGpio_mSetDataReg( XPAR_LEDS_4BIT_BASEADDR, partstCHANNEL_1, 0x00 );
uxCurrentOutput5Bit = 0;
XGpio_mSetDataReg( XPAR_LEDS_POSITIONS_BASEADDR, partstCHANNEL_1, 0x00 );
}
/*-----------------------------------------------------------*/
void vParTestSetLED( unsigned portBASE_TYPE uxLED, signed portBASE_TYPE xValue )
{
unsigned portBASE_TYPE uxBaseAddress, *puxCurrentValue;
portENTER_CRITICAL();
{
/* Which IO section does the LED being set/cleared belong to? The
4 bit or 5 bit outputs? */
if( uxLED <= partstMAX_4BIT_LED )
{
uxBaseAddress = XPAR_LEDS_4BIT_BASEADDR;
puxCurrentValue = &uxCurrentOutput4Bit;
}
else
{
uxBaseAddress = XPAR_LEDS_POSITIONS_BASEADDR;
puxCurrentValue = &uxCurrentOutput5Bit;
uxLED -= partstMAX_4BIT_LED;
}
/* Setup the bit mask accordingly. */
uxLED = 0x01 << uxLED;
/* Maintain the current output value. */
if( xValue )
{
*puxCurrentValue |= uxLED;
}
else
{
*puxCurrentValue &= ~uxLED;
}
/* Write the value to the port. */
XGpio_mSetDataReg( uxBaseAddress, partstCHANNEL_1, *puxCurrentValue );
}
portEXIT_CRITICAL();
}
/*-----------------------------------------------------------*/
void vParTestToggleLED( unsigned portBASE_TYPE uxLED )
{
unsigned portBASE_TYPE uxBaseAddress, *puxCurrentValue;
portENTER_CRITICAL();
{
/* Which IO section does the LED being toggled belong to? The
4 bit or 5 bit outputs? */
if( uxLED <= partstMAX_4BIT_LED )
{
uxBaseAddress = XPAR_LEDS_4BIT_BASEADDR;
puxCurrentValue = &uxCurrentOutput4Bit;
}
else
{
uxBaseAddress = XPAR_LEDS_POSITIONS_BASEADDR;
puxCurrentValue = &uxCurrentOutput5Bit;
uxLED -= partstMAX_4BIT_LED;
}
/* Setup the bit mask accordingly. */
uxLED = 0x01 << uxLED;
/* Maintain the current output value. */
if( *puxCurrentValue & uxLED )
{
*puxCurrentValue &= ~uxLED;
}
else
{
*puxCurrentValue |= uxLED;
}
/* Write the value to the port. */
XGpio_mSetDataReg(uxBaseAddress, partstCHANNEL_1, *puxCurrentValue );
}
portEXIT_CRITICAL();
}

@ -1 +0,0 @@
-pe microblaze_0 RTOSDemo/executable.elf

@ -1 +0,0 @@
-p virtex4 -lang vhdl -st xst

@ -1,23 +0,0 @@
microblaze_0
RTOSDEMO_SOURCES = main.c ParTest/ParTest.c ../../Source/tasks.c ../../Source/queue.c ../../Source/list.c ../../Source/portable/MemMang/heap_1.c ../../Source/portable/GCC/MicroBlaze/port.c ../../Source/portable/GCC/MicroBlaze/portasm.s ../Common/Minimal/flash.c serial/serial.c ../Common/Minimal/comtest.c ../Common/Minimal/integer.c ../Common/Minimal/semtest.c ../Common/Minimal/dynamic.c ../Common/Minimal/PollQ.c ../Common/Minimal/BlockQ.c
RTOSDEMO_HEADERS = FreeRTOSConfig.h
RTOSDEMO_CC = mb-gcc
RTOSDEMO_CC_SIZE = mb-size
RTOSDEMO_CC_OPT = -Os
RTOSDEMO_CFLAGS = -D MICROBLAZE_GCC -Wall
RTOSDEMO_CC_SEARCH = # -B
RTOSDEMO_LIBPATH = -L./microblaze_0/lib/ # -L
RTOSDEMO_INCLUDES = -I./microblaze_0/include/ -IDev/FreeRTOS/Demo/MicroBlaze/ -I. -I../Common/include -I../../Source/include -I../../Source/portable/GCC/MicroBlaze
RTOSDEMO_LFLAGS = # -l
RTOSDEMO_CC_PREPROC_FLAG = # -Wp,
RTOSDEMO_CC_ASM_FLAG = # -Wa,
RTOSDEMO_CC_LINKER_FLAG = -Wl,-Map=rtosdemo.map
RTOSDEMO_LINKER_SCRIPT =
RTOSDEMO_CC_DEBUG_FLAG = -g
RTOSDEMO_CC_GLOBPTR_FLAG= # -mxl-gp-opt
RTOSDEMO_MODE = executable
RTOSDEMO_LIBG_OPT = -$(RTOSDEMO_MODE) microblaze_0
RTOSDEMO_CC_SOFTMUL_FLAG= -mno-xl-soft-mul
RTOSDEMO_CC_START_ADDR_FLAG= # -Wl,-defsym -Wl,_TEXT_START_ADDR=
RTOSDEMO_CC_STACK_SIZE_FLAG= # -Wl,-defsym -Wl,_STACK_SIZE=
$(RTOSDEMO_CC_SOFTMUL_FLAG) \

@ -1 +0,0 @@
-p virtex4 -lang vhdl -pe microblaze_0 RTOSDemo/executable.elf -s mti

@ -1,23 +0,0 @@
microblaze_0
TESTAPP_PERIPHERAL_SOURCES = TestApp_Peripheral/src/TestApp_Peripheral.c TestApp_Peripheral/src/xuartlite_selftest_example.c
TESTAPP_PERIPHERAL_HEADERS =
TESTAPP_PERIPHERAL_CC = mb-gcc
TESTAPP_PERIPHERAL_CC_SIZE = mb-size
TESTAPP_PERIPHERAL_CC_OPT = -O2
TESTAPP_PERIPHERAL_CFLAGS =
TESTAPP_PERIPHERAL_CC_SEARCH = # -B
TESTAPP_PERIPHERAL_LIBPATH = -L./microblaze_0/lib/ # -L
TESTAPP_PERIPHERAL_INCLUDES = -I./microblaze_0/include/ # -I
TESTAPP_PERIPHERAL_LFLAGS = # -l
TESTAPP_PERIPHERAL_CC_PREPROC_FLAG = # -Wp,
TESTAPP_PERIPHERAL_CC_ASM_FLAG = # -Wa,
TESTAPP_PERIPHERAL_CC_LINKER_FLAG = # -Wl,
TESTAPP_PERIPHERAL_LINKER_SCRIPT = TestApp_Peripheral/src/TestApp_Peripheral_LinkScr
TESTAPP_PERIPHERAL_CC_DEBUG_FLAG = -g
TESTAPP_PERIPHERAL_CC_GLOBPTR_FLAG= # -mxl-gp-opt
TESTAPP_PERIPHERAL_MODE = executable
TESTAPP_PERIPHERAL_LIBG_OPT = -$(TESTAPP_PERIPHERAL_MODE) microblaze_0
TESTAPP_PERIPHERAL_CC_SOFTMUL_FLAG= -mno-xl-soft-mul
TESTAPP_PERIPHERAL_CC_START_ADDR_FLAG= # -Wl,-defsym -Wl,_TEXT_START_ADDR=
TESTAPP_PERIPHERAL_CC_STACK_SIZE_FLAG= # -Wl,-defsym -Wl,_STACK_SIZE=
$(TESTAPP_PERIPHERAL_CC_SOFTMUL_FLAG) \

@ -1,7 +0,0 @@
setMode -bs
setCable -port auto
identify
identifyMPM
setAttribute -position 3 -attr configFileName -value "implementation/download.bit"
program -p 3
quit

@ -1,126 +0,0 @@
###################################-*-asm*-
#
# Copyright (c) 2001 Xilinx, Inc. All rights reserved.
#
# Xilinx, Inc. CONFIDENTIAL
#
# XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION "AS IS" AS A
# COURTESY TO YOU. BY PROVIDING THIS DESIGN, CODE, OR INFORMATION AS
# ONE POSSIBLE IMPLEMENTATION OF THIS FEATURE, APPLICATION OR
# STANDARD, XILINX IS MAKING NO REPRESENTATION THAT THIS IMPLEMENTATION
# IS FREE FROM ANY CLAIMS OF INFRINGEMENT, AND YOU ARE RESPONSIBLE
# FOR OBTAINING ANY RIGHTS YOU MAY REQUIRE FOR YOUR IMPLEMENTATION.
# XILINX EXPRESSLY DISCLAIMS ANY WARRANTY WHATSOEVER WITH RESPECT TO
# THE ADEQUACY OF THE IMPLEMENTATION, INCLUDING BUT NOT LIMITED TO
# ANY WARRANTIES OR REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE
# FROM CLAIMS OF INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY
# AND FITNESS FOR A PARTICULAR PURPOSE.
#
# crt0.s
#
# C RunTime:
# Used for initialization of small data
# anchors and stack for programs compiled using
# Xilinx Gnu Tools. This routine also intializes the
# exception and interrupt handlers
#
# $Id: crt0.s,v 1.1.4.2 2005/05/26 21:50:39 vasanth Exp $
#
#######################################
/* Vector map (Interrupts, Exceptions, Breakpoints) */
# # 0x00 # Jump to Start
# # 0x04 # nop
# # 0x08 # Imm instr for soft exception address [Hi halfword]
# # 0x0c # Jump to sof Exception handler [Lo halfword]
# # 0x10 # Imm instr for interrupt address [Hi halfword]
# # 0x14 # Jump to interrupt handler [Lo halfword]
# # 0x18 # nop - Reserved for breakpoint vector
# # 0x1C # nop - Reserved for breakpoint vector
# # 0x20 # Imm instr for hw exception address [Hi halfword]
# # 0x24 # Jump instr to hw exception handler [Lo halfword]
.globl _start
/* Set the exception and interrupt address vectors */
/* to jump to the appropriate handlers */
.align 2
.ent _start
_start:
bri _start1 # 0x00
nop # 0x04
nop # 0x08 # Reserve space for software exception vector
nop # 0x0c
nop # 0x10 # Reserve space for interrupt vector
nop # 0x14
nop # 0x18 # Reserve space for breakpoint vector
nop # 0x1c
nop # 0x18 # Reserve space for hw exception vector
nop # 0x1c
_start1:
/* Set the Small Data Anchors and the Stack pointer */
la r13, r0, _SDA_BASE_
la r2, r0, _SDA2_BASE_
la r1, r0, _stack-16 # 16 bytes (4 words are needed by
# crt for args and link reg )
/* Set the opcodes brai and imm for handlers */
la r6,r0,0xb8080000 # [opcode for brai ]
swi r6,r0,0x4 # [brai opcode for reset]
swi r6,r0,0xc # [brai opcode for exception]
swi r6,r0,0x14 # [brai opcode for interrupt]
swi r6,r0,0x24 # [brai opcode for hw exceptions]
la r6,r0,0xb0000000 # [opcode for imm ]
swi r6,r0,0x0 # [imm opcode for reset]
swi r6,r0,0x8 # [imm opcode for exception]
swi r6,r0,0x10 # [imm opocde for interrupt]
swi r6,r0,0x20 # [imm opocde for hw exceptions]
/* Set Reset vector */
la r6,r0,_start1
sw r6,r1,r0
lhu r7,r1,r0
shi r7,r0, 0x2 # [imm for reset]
shi r6,r0, 0x6 # [lower half for reset]
/* Set Software Exception Handler */
la r6,r0,_exception_handler
sw r6,r1,r0
lhu r7,r1,r0
shi r7,r0, 0xa # [imm for exception]
shi r6,r0, 0xe # [lower half for exception ]
/* Set Interrupt Handler */
la r6,r0,_interrupt_handler
sw r6,r1,r0
lhu r7,r1,r0
shi r7,r0, 0x12 # [imm for exception]
shi r6,r0, 0x16 # [lower half for intterupt ]
/* Set HW Exception Handler */
la r6,r0,_hw_exception_handler
sw r6,r1,r0
lhu r7,r1,r0
shi r7,r0, 0x22 # [imm for exception]
shi r6,r0, 0x26 # [lower half for hw exception]
/* initialize bss sections */
brlid r15,_crtinit
nop
/* Adjust the stack pointer */
addi r1,r1,16
/* Fall through to exit */
.end _start
/* Use this exit function */
.globl exit # exit library call
.ent exit
exit:
bri exit
.end exit

@ -1,74 +0,0 @@
############################################################################
## This system.ucf file is generated by Base System Builder based on the
## settings in the selected Xilinx Board Definition file. Please add other
## user constraints to this file based on customer design specifications.
############################################################################
Net sys_clk_pin LOC=AE14;
Net sys_clk_pin IOSTANDARD = LVCMOS33;
Net sys_rst_pin LOC=D6;
Net sys_rst_pin PULLUP;
## System level constraints
Net sys_clk_pin TNM_NET = sys_clk_pin;
TIMESPEC TS_sys_clk_pin = PERIOD sys_clk_pin 10000 ps;
Net sys_rst_pin TIG;
## FPGA pin constraints
Net fpga_0_RS232_Uart_RX_pin LOC=W2;
Net fpga_0_RS232_Uart_RX_pin IOSTANDARD = LVCMOS33;
Net fpga_0_RS232_Uart_TX_pin LOC=W1;
Net fpga_0_RS232_Uart_TX_pin IOSTANDARD = LVCMOS33;
Net fpga_0_LEDs_4Bit_GPIO_IO_pin<0> LOC=G5;
Net fpga_0_LEDs_4Bit_GPIO_IO_pin<0> IOSTANDARD = LVCMOS25;
Net fpga_0_LEDs_4Bit_GPIO_IO_pin<0> PULLUP;
Net fpga_0_LEDs_4Bit_GPIO_IO_pin<0> SLEW = SLOW;
Net fpga_0_LEDs_4Bit_GPIO_IO_pin<0> DRIVE = 2;
Net fpga_0_LEDs_4Bit_GPIO_IO_pin<0> TIG;
Net fpga_0_LEDs_4Bit_GPIO_IO_pin<1> LOC=G6;
Net fpga_0_LEDs_4Bit_GPIO_IO_pin<1> IOSTANDARD = LVCMOS25;
Net fpga_0_LEDs_4Bit_GPIO_IO_pin<1> PULLUP;
Net fpga_0_LEDs_4Bit_GPIO_IO_pin<1> SLEW = SLOW;
Net fpga_0_LEDs_4Bit_GPIO_IO_pin<1> DRIVE = 2;
Net fpga_0_LEDs_4Bit_GPIO_IO_pin<1> TIG;
Net fpga_0_LEDs_4Bit_GPIO_IO_pin<2> LOC=A11;
Net fpga_0_LEDs_4Bit_GPIO_IO_pin<2> IOSTANDARD = LVCMOS25;
Net fpga_0_LEDs_4Bit_GPIO_IO_pin<2> PULLUP;
Net fpga_0_LEDs_4Bit_GPIO_IO_pin<2> SLEW = SLOW;
Net fpga_0_LEDs_4Bit_GPIO_IO_pin<2> DRIVE = 2;
Net fpga_0_LEDs_4Bit_GPIO_IO_pin<2> TIG;
Net fpga_0_LEDs_4Bit_GPIO_IO_pin<3> LOC=A12;
Net fpga_0_LEDs_4Bit_GPIO_IO_pin<3> IOSTANDARD = LVCMOS25;
Net fpga_0_LEDs_4Bit_GPIO_IO_pin<3> PULLUP;
Net fpga_0_LEDs_4Bit_GPIO_IO_pin<3> SLEW = SLOW;
Net fpga_0_LEDs_4Bit_GPIO_IO_pin<3> DRIVE = 2;
Net fpga_0_LEDs_4Bit_GPIO_IO_pin<3> TIG;
Net fpga_0_LEDs_Positions_GPIO_IO_pin<0> LOC=C6;
Net fpga_0_LEDs_Positions_GPIO_IO_pin<0> IOSTANDARD = LVCMOS25;
Net fpga_0_LEDs_Positions_GPIO_IO_pin<0> PULLUP;
Net fpga_0_LEDs_Positions_GPIO_IO_pin<0> SLEW = SLOW;
Net fpga_0_LEDs_Positions_GPIO_IO_pin<0> DRIVE = 2;
Net fpga_0_LEDs_Positions_GPIO_IO_pin<0> TIG;
Net fpga_0_LEDs_Positions_GPIO_IO_pin<1> LOC=F9;
Net fpga_0_LEDs_Positions_GPIO_IO_pin<1> IOSTANDARD = LVCMOS25;
Net fpga_0_LEDs_Positions_GPIO_IO_pin<1> PULLUP;
Net fpga_0_LEDs_Positions_GPIO_IO_pin<1> SLEW = SLOW;
Net fpga_0_LEDs_Positions_GPIO_IO_pin<1> DRIVE = 2;
Net fpga_0_LEDs_Positions_GPIO_IO_pin<1> TIG;
Net fpga_0_LEDs_Positions_GPIO_IO_pin<2> LOC=A5;
Net fpga_0_LEDs_Positions_GPIO_IO_pin<2> IOSTANDARD = LVCMOS25;
Net fpga_0_LEDs_Positions_GPIO_IO_pin<2> PULLUP;
Net fpga_0_LEDs_Positions_GPIO_IO_pin<2> SLEW = SLOW;
Net fpga_0_LEDs_Positions_GPIO_IO_pin<2> DRIVE = 2;
Net fpga_0_LEDs_Positions_GPIO_IO_pin<2> TIG;
Net fpga_0_LEDs_Positions_GPIO_IO_pin<3> LOC=E10;
Net fpga_0_LEDs_Positions_GPIO_IO_pin<3> IOSTANDARD = LVCMOS25;
Net fpga_0_LEDs_Positions_GPIO_IO_pin<3> PULLUP;
Net fpga_0_LEDs_Positions_GPIO_IO_pin<3> SLEW = SLOW;
Net fpga_0_LEDs_Positions_GPIO_IO_pin<3> DRIVE = 2;
Net fpga_0_LEDs_Positions_GPIO_IO_pin<3> TIG;
Net fpga_0_LEDs_Positions_GPIO_IO_pin<4> LOC=E2;
Net fpga_0_LEDs_Positions_GPIO_IO_pin<4> IOSTANDARD = LVCMOS25;
Net fpga_0_LEDs_Positions_GPIO_IO_pin<4> PULLUP;
Net fpga_0_LEDs_Positions_GPIO_IO_pin<4> SLEW = SLOW;
Net fpga_0_LEDs_Positions_GPIO_IO_pin<4> DRIVE = 2;
Net fpga_0_LEDs_Positions_GPIO_IO_pin<4> TIG;

@ -1,21 +0,0 @@
-g ConfigRate:4
-g CclkPin:PULLUP
-g TdoPin:PULLNONE
-g M1Pin:PULLDOWN
-g DonePin:PULLUP
-g DriveDone:No
-g StartUpClk:JTAGCLK
-g DONE_cycle:4
-g GTS_cycle:5
-g M0Pin:PULLUP
-g M2Pin:PULLUP
-g ProgPin:PULLUP
-g TckPin:PULLUP
-g TdiPin:PULLUP
-g TmsPin:PULLUP
-g DonePipe:No
-g GWE_cycle:6
-g LCK_cycle:NoWait
-g Security:NONE
-m
-g Persist:No

@ -1,15 +0,0 @@
-g CclkPin:PULLUP
-g TdoPin:PULLNONE
-g M1Pin:PULLDOWN
-g DonePin:PULLUP
-g StartUpClk:JTAGCLK
-g M0Pin:PULLUP
-g M2Pin:PULLUP
-g ProgPin:PULLUP
-g TckPin:PULLUP
-g TdiPin:PULLUP
-g TmsPin:PULLUP
-g LCK_cycle:NoWait
-g Security:NONE
-m
-g Persist:No

@ -1,6 +0,0 @@
setMode -bscan
setCable -p auto
identify
assignfile -p 3 -file implementation/download.bit
program -p 3
quit

@ -1,80 +0,0 @@
FLOWTYPE = FPGA;
###############################################################
## Filename: fast_runtime.opt
##
## Option File For Xilinx FPGA Implementation Flow for Fast
## Runtime.
##
## Version: 4.1.1
###############################################################
#
# Options for Translator
#
# Type "ngdbuild -h" for a detailed list of ngdbuild command line options
#
Program ngdbuild
-p <partname>; # Partname to use - picked from xflow commandline
-nt timestamp; # NGO File generation. Regenerate only when
# source netlist is newer than existing
# NGO file (default)
-bm <design>.bmm # Block RAM memory map file
<userdesign>; # User design - pick from xflow command line
-uc <design>.ucf; # ucf constraints
<design>.ngd; # Name of NGD file. Filebase same as design filebase
End Program ngdbuild
#
# Options for Mapper
#
# Type "map -h <arch>" for a detailed list of map command line options
#
Program map
-o <design>_map.ncd; # Output Mapped ncd file
-pr b; # Pack internal FF/latches into IOBs
#-fp <design>.mfp; # Floorplan file
<inputdir><design>.ngd; # Input NGD file
<inputdir><design>.pcf; # Physical constraints file
END Program map
#
# Options for Post Map Trace
#
# Type "trce -h" for a detailed list of trce command line options
#
Program post_map_trce
-e 3; # Produce error report limited to 3 items per constraint
#-o <design>_map.twr; # Output trace report file
-xml <design>_map.twx; # Output XML version of the timing report
#-tsi <design>_map.tsi; # Produce Timing Specification Interaction report
<inputdir><design>_map.ncd; # Input mapped ncd
<inputdir><design>.pcf; # Physical constraints file
END Program post_map_trce
#
# Options for Place and Route
#
# Type "par -h" for a detailed list of par command line options
#
Program par
-w; # Overwrite existing placed and routed ncd
-ol high; # Overall effort level
<inputdir><design>_map.ncd; # Input mapped NCD file
<design>.ncd; # Output placed and routed NCD
<inputdir><design>.pcf; # Input physical constraints file
END Program par
#
# Options for Post Par Trace
#
# Type "trce -h" for a detailed list of trce command line options
#
Program post_par_trce
-e 3; # Produce error report limited to 3 items per constraint
#-o <design>.twr; # Output trace report file
-xml <design>.twx; # Output XML version of the timing report
#-tsi <design>.tsi; # Produce Timing Specification Interaction report
<inputdir><design>.ncd; # Input placed and routed ncd
<inputdir><design>.pcf; # Physical constraints file
END Program post_par_trce

@ -1 +0,0 @@
connect mb mdm -cable type xilinx_parallel port LPT1 frequency 5000000 -debugdevice cpunr 1

@ -1,475 +0,0 @@
#error This project has been reworked for use with a later version of the Xilinx tools and IP. Please find more up to date projects in other FreeRTOS/Demo/MicroBlaze_nnn directories.
/*
FreeRTOS V8.2.1 - Copyright (C) 2015 Real Time Engineers Ltd.
All rights reserved
VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.
This file is part of the FreeRTOS distribution.
FreeRTOS is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License (version 2) as published by the
Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception.
***************************************************************************
>>! NOTE: The modification to the GPL is included to allow you to !<<
>>! distribute a combined work that includes FreeRTOS without being !<<
>>! obliged to provide the source code for proprietary components !<<
>>! outside of the FreeRTOS kernel. !<<
***************************************************************************
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. Full license text is available on the following
link: http://www.freertos.org/a00114.html
***************************************************************************
* *
* FreeRTOS provides completely free yet professionally developed, *
* robust, strictly quality controlled, supported, and cross *
* platform software that is more than just the market leader, it *
* is the industry's de facto standard. *
* *
* Help yourself get started quickly while simultaneously helping *
* to support the FreeRTOS project by purchasing a FreeRTOS *
* tutorial book, reference manual, or both: *
* http://www.FreeRTOS.org/Documentation *
* *
***************************************************************************
http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading
the FAQ page "My application does not run, what could be wrong?". Have you
defined configASSERT()?
http://www.FreeRTOS.org/support - In return for receiving this top quality
embedded software for free we request you assist our global community by
participating in the support forum.
http://www.FreeRTOS.org/training - Investing in training allows your team to
be as productive as possible as early as possible. Now you can receive
FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers
Ltd, and the world's leading authority on the world's leading RTOS.
http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,
including FreeRTOS+Trace - an indispensable productivity tool, a DOS
compatible FAT file system, and our tiny thread aware UDP/IP stack.
http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate.
Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS.
http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High
Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS
licenses offer ticketed support, indemnification and commercial middleware.
http://www.SafeRTOS.com - High Integrity Systems also provide a safety
engineered and independently SIL3 certified version for use in safety and
mission critical applications that require provable dependability.
1 tab == 4 spaces!
*/
/*
* Creates all the demo application tasks, then starts the scheduler. The WEB
* documentation provides more details of the standard demo application tasks.
*
* In addition to the standard tasks, main() creates two "Register Check"
* tasks. These tasks write known values into every general purpose register,
* then check each register to ensure it still contains the expected (written)
* value. The register check tasks operate at the idle priority so will get
* repeatedly preempted. A register being found to contain an incorrect value
* following such a preemption would be indicative of an error in the context
* switch mechanism.
*
* Main.c also creates a task called "Check". This only executes every three
* seconds but has the highest priority so is guaranteed to get processor time.
* Its main function is to check that all the other tasks are still operational.
* Each task (other than the "flash" tasks) maintains a unique count that is
* incremented each time the task successfully completes its function. Should
* any error occur within such a task the count is permanently halted. The
* check task inspects the count of each task to ensure it has changed since
* the last time the check task executed. If all the count variables have
* changed all the tasks are still executing error free, and the check task
* toggles the onboard LED. Should any task contain an error at any time
* the LED toggle rate will change from 3 seconds to 500ms.
*
*/
/* Scheduler includes. */
#include "FreeRTOS.h"
#include "task.h"
/* Demo application includes. */
#include "partest.h"
#include "flash.h"
#include "comtest2.h"
#include "integer.h"
#include "semtest.h"
#include "BlockQ.h"
#include "dynamic.h"
#include "PollQ.h"
/* Hardware library includes. */
#include <xintc.h>
/* The rate at which the 'check' LED will flash when no errors have been
detected. */
#define mainNO_ERROR_CHECK_PERIOD 3000
/* The rate at which the 'check' LED will flash when an error has been
detected in one of the demo tasks. */
#define mainERROR_CHECK_PERIOD 500
/* Demo application task priorities. */
#define mainLED_TASK_PRIORITY ( tskIDLE_PRIORITY + 2 )
#define mainCHECK_TASK_PRIORITY ( tskIDLE_PRIORITY + 3 )
#define mainSEM_TEST_PRIORITY ( tskIDLE_PRIORITY + 1 )
#define mainCOM_TEST_PRIORITY ( tskIDLE_PRIORITY + 2 )
#define mainBLOCK_Q_PRIORITY ( tskIDLE_PRIORITY + 2 )
#define mainQUEUE_POLL_PRIORITY ( tskIDLE_PRIORITY + 2 )
/* Software cannot influence the BAUD rate used by the simple UART
implementation. */
#define mainBAUD_RATE 0
/* The LED flashed by the 'check' task to indicate the system status. */
#define mainCHECK_TASK_LED 3
/* The first LED flashed by the COM port test tasks. LED mainCOM_TEST_LED + 1
will also be used. */
#define mainCOM_TEST_LED 4
/* The register test task does not make any function calls so does not require
much stack at all. */
#define mainTINY_STACK 70
/*
* The task that executes at the highest priority and calls
* prvCheckOtherTasksAreStillRunning(). See the description at the top
* of the file.
*/
static void vErrorChecks( void *pvParameters );
/*
* Checks that all the demo application tasks are still executing without error
* - as described at the top of the file.
*/
static portBASE_TYPE prvCheckOtherTasksAreStillRunning( void );
/*
* The register test task as described at the top of this file.
*/
static void vRegisterTest( void *pvParameters );
/*
* Perform any necessary hardware configuration.
*/
static void prvSetupHardware( void );
/* Set to pdFAIL should an error be discovered in the register test tasks. */
static unsigned long ulRegisterTestStatus = pdPASS;
const unsigned long *pulStatusAddr = &ulRegisterTestStatus;
/*-----------------------------------------------------------*/
/*
* Create all the demo tasks - then start the scheduler.
*/
int main (void)
{
/* When re-starting a debug session (rather than cold booting) we want
to ensure the installed interrupt handlers do not execute until after the
scheduler has been started. */
portDISABLE_INTERRUPTS();
prvSetupHardware();
/* Start the standard demo application tasks. */
vStartLEDFlashTasks( mainLED_TASK_PRIORITY );
vAltStartComTestTasks( mainCOM_TEST_PRIORITY, mainBAUD_RATE, mainCOM_TEST_LED );
vStartIntegerMathTasks( tskIDLE_PRIORITY );
vStartSemaphoreTasks( mainSEM_TEST_PRIORITY );
vStartBlockingQueueTasks( mainBLOCK_Q_PRIORITY );
vStartDynamicPriorityTasks();
vStartPolledQueueTasks( mainQUEUE_POLL_PRIORITY );
/* Create two register check tasks - using a different parameter for each.
The parameter is used to generate the known values written to the registers. */
#if configUSE_PREEMPTION == 1
xTaskCreate( vRegisterTest, "Reg1", mainTINY_STACK, ( void * ) 10, tskIDLE_PRIORITY, NULL );
xTaskCreate( vRegisterTest, "Reg2", mainTINY_STACK, ( void * ) 20, tskIDLE_PRIORITY, NULL );
#endif
/* Create the 'check' task that is defined in this file. */
xTaskCreate( vErrorChecks, "Check", configMINIMAL_STACK_SIZE, NULL, mainCHECK_TASK_PRIORITY, NULL );
/* Finally start the scheduler. */
vTaskStartScheduler();
/* Should not get here as the processor is now under control of the
scheduler! */
return 0;
}
/*-----------------------------------------------------------*/
static void vErrorChecks( void *pvParameters )
{
TickType_t xDelayPeriod = mainNO_ERROR_CHECK_PERIOD;
/* The parameters are not used. */
( void ) pvParameters;
/* Cycle for ever, delaying then checking all the other tasks are still
operating without error. The delay period used will depend on whether
or not an error has been discovered in one of the demo tasks. */
for( ;; )
{
vTaskDelay( xDelayPeriod );
if( !prvCheckOtherTasksAreStillRunning() )
{
/* An error has been found. Shorten the delay period to make
the LED flash faster. */
xDelayPeriod = mainERROR_CHECK_PERIOD;
}
vParTestToggleLED( mainCHECK_TASK_LED );
}
}
/*-----------------------------------------------------------*/
static portBASE_TYPE prvCheckOtherTasksAreStillRunning( void )
{
static portBASE_TYPE xAllTestsPass = pdTRUE;
/* Return pdFALSE if any demo application task set has encountered
an error. */
if( xAreIntegerMathsTaskStillRunning() != pdTRUE )
{
xAllTestsPass = pdFALSE;
}
if( xAreComTestTasksStillRunning() != pdTRUE )
{
xAllTestsPass = pdFALSE;
}
if( xAreSemaphoreTasksStillRunning() != pdTRUE )
{
xAllTestsPass = pdFALSE;
}
if( xAreBlockingQueuesStillRunning() != pdTRUE )
{
xAllTestsPass = pdFAIL;
}
if( xAreDynamicPriorityTasksStillRunning() != pdTRUE )
{
xAllTestsPass = ( long ) pdFAIL;
}
if( xArePollingQueuesStillRunning() != pdTRUE )
{
xAllTestsPass = ( long ) pdFAIL;
}
/* Mutual exclusion on this variable is not necessary as we only read it. */
if( ulRegisterTestStatus != pdPASS )
{
xAllTestsPass = pdFALSE;
}
return xAllTestsPass;
}
/*-----------------------------------------------------------*/
static void prvSetupHardware( void )
{
/* Ensure the interrupt controller is enabled in order that subsequent
code can successfully configure the peripherals. */
XIntc_mMasterEnable( XPAR_OPB_INTC_0_BASEADDR );
/* Initialise the GPIO used for the LED's. */
vParTestInitialise();
}
/*-----------------------------------------------------------*/
static void vRegisterTest( void *pvParameters )
{
for( ;; )
{
/* Fill the registers with their register number plus the offset
(added) value. The added value is passed in as a parameter so
is contained in r5. */
asm volatile ( "addi r3, r5, 3 \n\t" \
"addi r4, r5, 4 \n\t" \
"addi r6, r5, 6 \n\t" \
"addi r7, r5, 7 \n\t" \
"addi r8, r5, 8 \n\t" \
"addi r9, r5, 9 \n\t" \
"addi r10, r5, 10 \n\t" \
"addi r11, r5, 11 \n\t" \
"addi r12, r5, 12 \n\t" \
"addi r16, r5, 16 \n\t" \
"addi r17, r5, 17 \n\t" \
"addi r18, r5, 18 \n\t" \
"addi r19, r5, 19 \n\t" \
"addi r20, r5, 20 \n\t" \
"addi r21, r5, 21 \n\t" \
"addi r22, r5, 22 \n\t" \
"addi r23, r5, 23 \n\t" \
"addi r24, r5, 24 \n\t" \
"addi r25, r5, 25 \n\t" \
"addi r26, r5, 26 \n\t" \
"addi r27, r5, 27 \n\t" \
"addi r28, r5, 28 \n\t" \
"addi r29, r5, 29 \n\t" \
"addi r30, r5, 30 \n\t" \
"addi r31, r5, 31 \n\t"
);
/* Now read back the register values to ensure they are as we expect.
This task will get preempted frequently so other tasks are likely to
have executed since the register values were written. */
/* r3 should contain r5 + 3. Subtract 3 to leave r3 equal to r5. */
asm volatile ( "addi r3, r3, -3 " );
/* Compare r3 and r5. If they are not equal then either r3 or r5
contains the wrong value and *pulStatusAddr is to pdFAIL. */
asm volatile ( "cmp r3, r3, r5 \n\t" \
"beqi r3, 12 \n\t" \
"lwi r3, r0, pulStatusAddr \n\t" \
"sw r0, r0, r3 \n\t"
);
/* Repeat for all the other registers. */
asm volatile ( "addi r4, r4, -4 \n\t" \
"cmp r4, r4, r5 \n\t" \
"beqi r4, 12 \n\t" \
"lwi r3, r0, pulStatusAddr \n\t" \
"sw r0, r0, r3 \n\t" \
"addi r6, r6, -6 \n\t" \
"cmp r6, r6, r5 \n\t" \
"beqi r6, 12 \n\t" \
"lwi r3, r0, pulStatusAddr \n\t" \
"sw r0, r0, r3 \n\t" \
"addi r7, r7, -7 \n\t" \
"cmp r7, r7, r5 \n\t" \
"beqi r7, 12 \n\t" \
"lwi r3, r0, pulStatusAddr \n\t" \
"sw r0, r0, r3 \n\t" \
"addi r8, r8, -8 \n\t" \
"cmp r8, r8, r5 \n\t" \
"beqi r8, 12 \n\t" \
"lwi r3, r0, pulStatusAddr \n\t" \
"sw r0, r0, r3 \n\t" \
"addi r9, r9, -9 \n\t" \
"cmp r9, r9, r5 \n\t" \
"beqi r9, 12 \n\t" \
"lwi r3, r0, pulStatusAddr \n\t" \
"sw r0, r0, r3 \n\t" \
"addi r10, r10, -10 \n\t" \
"cmp r10, r10, r5 \n\t" \
"beqi r10, 12 \n\t" \
"lwi r3, r0, pulStatusAddr \n\t" \
"sw r0, r0, r3 \n\t" \
"addi r11, r11, -11 \n\t" \
"cmp r11, r11, r5 \n\t" \
"beqi r11, 12 \n\t" \
"lwi r3, r0, pulStatusAddr \n\t" \
"sw r0, r0, r3 \n\t" \
"addi r12, r12, -12 \n\t" \
"cmp r12, r12, r5 \n\t" \
"beqi r12, 12 \n\t" \
"lwi r3, r0, pulStatusAddr \n\t" \
"sw r0, r0, r3 \n\t" \
"sw r0, r0, r3 \n\t" \
"addi r16, r16, -16 \n\t" \
"cmp r16, r16, r5 \n\t" \
"beqi r16, 12 \n\t" \
"lwi r3, r0, pulStatusAddr \n\t" \
"sw r0, r0, r3 \n\t" \
"addi r17, r17, -17 \n\t" \
"cmp r17, r17, r5 \n\t" \
"beqi r17, 12 \n\t" \
"lwi r3, r0, pulStatusAddr \n\t" \
"sw r0, r0, r3 \n\t" \
"addi r18, r18, -18 \n\t" \
"cmp r18, r18, r5 \n\t" \
"beqi r18, 12 \n\t" \
"lwi r3, r0, pulStatusAddr \n\t" \
"sw r0, r0, r3 \n\t" \
"addi r19, r19, -19 \n\t" \
"cmp r19, r19, r5 \n\t" \
"beqi r19, 12 \n\t" \
"lwi r3, r0, pulStatusAddr \n\t" \
"sw r0, r0, r3 \n\t" \
"addi r20, r20, -20 \n\t" \
"cmp r20, r20, r5 \n\t" \
"beqi r20, 12 \n\t" \
"lwi r3, r0, pulStatusAddr \n\t" \
"sw r0, r0, r3 \n\t" \
"addi r21, r21, -21 \n\t" \
"cmp r21, r21, r5 \n\t" \
"beqi r21, 12 \n\t" \
"lwi r3, r0, pulStatusAddr \n\t" \
"sw r0, r0, r3 \n\t" \
"addi r22, r22, -22 \n\t" \
"cmp r22, r22, r5 \n\t" \
"beqi r22, 12 \n\t" \
"lwi r3, r0, pulStatusAddr \n\t" \
"sw r0, r0, r3 \n\t" \
"addi r23, r23, -23 \n\t" \
"cmp r23, r23, r5 \n\t" \
"beqi r23, 12 \n\t" \
"lwi r3, r0, pulStatusAddr \n\t" \
"sw r0, r0, r3 \n\t" \
"addi r24, r24, -24 \n\t" \
"cmp r24, r24, r5 \n\t" \
"beqi r24, 12 \n\t" \
"lwi r3, r0, pulStatusAddr \n\t" \
"sw r0, r0, r3 \n\t" \
"addi r25, r25, -25 \n\t" \
"cmp r25, r25, r5 \n\t" \
"beqi r25, 12 \n\t" \
"lwi r3, r0, pulStatusAddr \n\t" \
"sw r0, r0, r3 \n\t" \
"addi r26, r26, -26 \n\t" \
"cmp r26, r26, r5 \n\t" \
"beqi r26, 12 \n\t" \
"lwi r3, r0, pulStatusAddr \n\t" \
"sw r0, r0, r3 \n\t" \
"addi r27, r27, -27 \n\t" \
"cmp r27, r27, r5 \n\t" \
"beqi r27, 12 \n\t" \
"lwi r3, r0, pulStatusAddr \n\t" \
"sw r0, r0, r3 \n\t" \
"addi r28, r28, -28 \n\t" \
"cmp r28, r28, r5 \n\t" \
"beqi r28, 12 \n\t" \
"lwi r3, r0, pulStatusAddr \n\t" \
"sw r0, r0, r3 \n\t" \
"addi r29, r29, -29 \n\t" \
"cmp r29, r29, r5 \n\t" \
"beqi r29, 12 \n\t" \
"lwi r3, r0, pulStatusAddr \n\t" \
"sw r0, r0, r3 \n\t" \
"addi r30, r30, -30 \n\t" \
"cmp r30, r30, r5 \n\t" \
"beqi r30, 12 \n\t" \
"lwi r3, r0, pulStatusAddr \n\t" \
"sw r0, r0, r3 \n\t" \
"addi r31, r31, -31 \n\t" \
"cmp r31, r31, r5 \n\t" \
"beqi r31, 12 \n\t" \
"lwi r3, r0, pulStatusAddr \n\t" \
"sw r0, r0, r3 \n\t"
);
}
}

@ -1,7 +0,0 @@
-p
xc4vfx12ff668-10
-lang
vhdl
-st
xst
system.mhs

@ -1,232 +0,0 @@
/*
FreeRTOS V8.2.1 - Copyright (C) 2015 Real Time Engineers Ltd.
All rights reserved
VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.
This file is part of the FreeRTOS distribution.
FreeRTOS is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License (version 2) as published by the
Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception.
***************************************************************************
>>! NOTE: The modification to the GPL is included to allow you to !<<
>>! distribute a combined work that includes FreeRTOS without being !<<
>>! obliged to provide the source code for proprietary components !<<
>>! outside of the FreeRTOS kernel. !<<
***************************************************************************
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. Full license text is available on the following
link: http://www.freertos.org/a00114.html
***************************************************************************
* *
* FreeRTOS provides completely free yet professionally developed, *
* robust, strictly quality controlled, supported, and cross *
* platform software that is more than just the market leader, it *
* is the industry's de facto standard. *
* *
* Help yourself get started quickly while simultaneously helping *
* to support the FreeRTOS project by purchasing a FreeRTOS *
* tutorial book, reference manual, or both: *
* http://www.FreeRTOS.org/Documentation *
* *
***************************************************************************
http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading
the FAQ page "My application does not run, what could be wrong?". Have you
defined configASSERT()?
http://www.FreeRTOS.org/support - In return for receiving this top quality
embedded software for free we request you assist our global community by
participating in the support forum.
http://www.FreeRTOS.org/training - Investing in training allows your team to
be as productive as possible as early as possible. Now you can receive
FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers
Ltd, and the world's leading authority on the world's leading RTOS.
http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,
including FreeRTOS+Trace - an indispensable productivity tool, a DOS
compatible FAT file system, and our tiny thread aware UDP/IP stack.
http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate.
Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS.
http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High
Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS
licenses offer ticketed support, indemnification and commercial middleware.
http://www.SafeRTOS.com - High Integrity Systems also provide a safety
engineered and independently SIL3 certified version for use in safety and
mission critical applications that require provable dependability.
1 tab == 4 spaces!
*/
/*
BASIC INTERRUPT DRIVEN SERIAL PORT DRIVER FOR UART
*/
/* Scheduler includes. */
#include "FreeRTOS.h"
#include "queue.h"
#include "task.h"
/* Demo application includes. */
#include "serial.h"
/* Microblaze driver includes. */
#include "xuartlite_l.h"
#include "xintc_l.h"
/*-----------------------------------------------------------*/
/* Queues used to hold received characters, and characters waiting to be
transmitted. */
static QueueHandle_t xRxedChars;
static QueueHandle_t xCharsForTx;
/*-----------------------------------------------------------*/
xComPortHandle xSerialPortInitMinimal( unsigned long ulWantedBaud, unsigned portBASE_TYPE uxQueueLength )
{
unsigned long ulControlReg, ulMask;
/* NOTE: The baud rate used by this driver is determined by the hardware
parameterization of the UART Lite peripheral, and the baud value passed to
this function has no effect. */
/* Create the queues used to hold Rx and Tx characters. */
xRxedChars = xQueueCreate( uxQueueLength, ( unsigned portBASE_TYPE ) sizeof( signed char ) );
xCharsForTx = xQueueCreate( uxQueueLength + 1, ( unsigned portBASE_TYPE ) sizeof( signed char ) );
if( ( xRxedChars ) && ( xCharsForTx ) )
{
/* Disable the interrupt. */
XUartLite_mDisableIntr( XPAR_RS232_UART_BASEADDR );
/* Flush the fifos. */
ulControlReg = XIo_In32( XPAR_RS232_UART_BASEADDR + XUL_STATUS_REG_OFFSET );
XIo_Out32( XPAR_RS232_UART_BASEADDR + XUL_CONTROL_REG_OFFSET, ulControlReg | XUL_CR_FIFO_TX_RESET | XUL_CR_FIFO_RX_RESET );
/* Enable the interrupt again. The interrupt controller has not yet been
initialised so there is no chance of receiving an interrupt until the
scheduler has been started. */
XUartLite_mEnableIntr( XPAR_RS232_UART_BASEADDR );
/* Enable the interrupt in the interrupt controller while maintaining
all the other bit settings. */
ulMask = XIntc_In32( ( XPAR_OPB_INTC_0_BASEADDR + XIN_IER_OFFSET ) );
ulMask |= XPAR_RS232_UART_INTERRUPT_MASK;
XIntc_Out32( ( XPAR_OPB_INTC_0_BASEADDR + XIN_IER_OFFSET ), ( ulMask ) );
XIntc_mAckIntr( XPAR_INTC_SINGLE_BASEADDR, 2 );
}
return ( xComPortHandle ) 0;
}
/*-----------------------------------------------------------*/
signed portBASE_TYPE xSerialGetChar( xComPortHandle pxPort, signed char *pcRxedChar, TickType_t xBlockTime )
{
/* The port handle is not required as this driver only supports one UART. */
( void ) pxPort;
/* Get the next character from the buffer. Return false if no characters
are available, or arrive before xBlockTime expires. */
if( xQueueReceive( xRxedChars, pcRxedChar, xBlockTime ) )
{
return pdTRUE;
}
else
{
return pdFALSE;
}
}
/*-----------------------------------------------------------*/
signed portBASE_TYPE xSerialPutChar( xComPortHandle pxPort, signed char cOutChar, TickType_t xBlockTime )
{
portBASE_TYPE xReturn = pdTRUE;
portENTER_CRITICAL();
{
/* If the UART FIFO is full we can block posting the new data on the
Tx queue. */
if( XUartLite_mIsTransmitFull( XPAR_RS232_UART_BASEADDR ) )
{
if( xQueueSend( xCharsForTx, &cOutChar, xBlockTime ) != pdPASS )
{
xReturn = pdFAIL;
}
}
/* Otherwise, if there is data already in the queue we should add the
new data to the back of the queue to ensure the sequencing is
maintained. */
else if( uxQueueMessagesWaiting( xCharsForTx ) )
{
if( xQueueSend( xCharsForTx, &cOutChar, xBlockTime ) != pdPASS )
{
xReturn = pdFAIL;
}
}
/* If the UART FIFO is not full and there is no data already in the
queue we can write directly to the FIFO without disrupting the
sequence. */
else
{
XIo_Out32( XPAR_RS232_UART_BASEADDR + XUL_TX_FIFO_OFFSET, cOutChar );
}
}
portEXIT_CRITICAL();
return xReturn;
}
/*-----------------------------------------------------------*/
void vSerialClose( xComPortHandle xPort )
{
/* Not supported as not required by the demo application. */
( void ) xPort;
}
/*-----------------------------------------------------------*/
void vSerialISR( void *pvBaseAddress )
{
unsigned long ulISRStatus;
portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;
char cChar;
/* Determine the cause of the interrupt. */
ulISRStatus = XIo_In32( XPAR_RS232_UART_BASEADDR + XUL_STATUS_REG_OFFSET );
if( ( ulISRStatus & ( XUL_SR_RX_FIFO_FULL | XUL_SR_RX_FIFO_VALID_DATA ) ) != 0 )
{
/* A character is available - place it in the queue of received
characters. This might wake a task that was blocked waiting for
data. */
cChar = ( char )XIo_In32( XPAR_RS232_UART_BASEADDR + XUL_RX_FIFO_OFFSET );
xQueueSendFromISR( xRxedChars, &cChar, &xHigherPriorityTaskWoken );
}
if( ( ulISRStatus & XUL_SR_TX_FIFO_EMPTY ) != 0 )
{
/* There is space in the FIFO - if there are any characters queue for
transmission they can be send to the UART now. This might unblock a
task that was waiting for space to become available on the Tx queue. */
if( xQueueReceiveFromISR( xCharsForTx, &cChar, &xHigherPriorityTaskWoken ) == pdTRUE )
{
XIo_Out32( XPAR_RS232_UART_BASEADDR + XUL_TX_FIFO_OFFSET, cChar );
}
}
/* If we woke any tasks we may require a context switch. */
if( xHigherPriorityTaskWoken )
{
portYIELD_FROM_ISR();
}
}

@ -1 +0,0 @@
<1B>トョメ<EFBDAE>tヲハ隰ハ蓙メ゙ワ@Dn\b\dDvC<76>トョメ<EFBDAE>tヲハ閼゙ツ菠@Dーメリメワ<EFBE92>@Dャメ蒻ハ<E892BB>h@囗h`f@喜ツリ<EFBE82>靨゙ワ@<40>リツ靂゙蒂D@DbDv,<2C>トョメ<EFBDAE>tェ猜ツ靆権獅@Dう<44>暢恰ィェ、灰@D<>蒻ハ<E892BB>Dv,<2C>トョメ<EFBDAE>tェ猜ツ靆権獅@D<>ャ中汗ヲ超灰@D<>h<EFBFBD><68>dDv%<25>トョメ<EFBDAE>tェ猜ツ靆権獅@D<>魔至D@DフフllpDv&<26>トョメ<EFBDAE>tェ猜ツ靆権獅@Dヲ<44><EFBFBD>灰@DZb`Dv"<22>トョメ<EFBDAE>tなネ<E381AA>葯ニハ跏゙隋Dレメニ葯トリツ<EFBE98>Dv=<3D>トョメ<EFBDAE>tェ猜ツ靆<EFBE82>レ玻ワハワ錙Dレメニ葯トリツ<EFBE98>D@D━ヲセ研瓦D@Db``\``````Dv8<76>トョメ<EFBDAE>tェ猜ツ靆<EFBE82>レ玻ワハワ錙Dレメニ葯トリツ<EFBE98>D@D<><44>灰@D悚@<40><>灰vN<76>トョメ<EFBDAE>tェ猜ツ靆<EFBE82>レ玻ワハワ錙Dレメニ葯トリツ<EFBE98>D@D<><44>釜凋法<E5878B>國棡栢ィD@D<>、セヲ愛セlh夸fdDv=<3D>トョメ<EFBDAE>tェ猜ツ靆<EFBE82>レ玻ワハワ錙Dレメニ葯トリツ<EFBE98>D@D<>明研瓦D@Db``\``````DvJ<76>トョメ<EFBDAE>tェ猜ツ靆<EFBE82>レ玻ワハワ錙Dレメニ葯トリツ<EFBE98>D@D<>━疾柱D@D權Z<E6AC8A>メ漾整@位ト<E4BD8D>@壜ネ<E5A39C>ハDv<<3C>トョメ<EFBDAE>tェ猜ツ靆<EFBE82>レ玻ワハワ錙Dレメニ葯トリツ<EFBE98>D@D<>т、@ヲ超灰@DljjflDv><3E>トョメ<EFBDAE>tェ猜ツ靆<EFBE82>レ玻ワハワ錙Dレメニ葯トリツ<EFBE98>D@D<>、梟セ研瓦D@Db``\``````Dv8<76>トョメ<EFBDAE>tェ猜ツ靆<EFBE82>レ玻ワハワ錙Dレメニ葯トリツ<EFBE98>D@D、ヲィセ<EFBDA8>椈う暢イD@D`Dv2<76>トョメ<EFBDAE>tなネ<E381AA>ハ萪獎ハ萃リ@D、ヲdfdセェツ蒻D@D゙狷セ<E78BB7>蒻リメ靆Dv9<76>トョメ<EFBDAE>tェ猜ツ靆<EFBE82>レ玻ワハワ錙D、ヲdfdセェツ蒻D@D<>рェ愛お灰@Drl``Dv7<76>トョメ<EFBDAE>tェ猜ツ靆<EFBE82>レ玻ワハワ錙D、ヲdfdセェツ蒻D@D<><44>ィだ<EFBDA8>ィヲD@DpDv8<76>トョメ<EFBDAE>tェ猜ツ靆<EFBE82>レ玻ワハワ錙D、ヲdfdセェツ蒻D@D<>梭粟<E6A2AD>う暢イD@D`Dv8<76>トョメ<EFBDAE>tェ猜ツ靆<EFBE82>レ玻ワハワ錙D、ヲdfdセェツ蒻D@D<>ェヲ汗<EFBDA6>う暢イD@D`Dv<<3C>トョメ<EFBDAE>tェ猜ツ靆<EFBE82>レ玻ワハワ錙D、ヲdfdセェツ蒻D@D寵ィイ<EFBDA8>灰@Dー著セェうィセャbDv<<3C>トョメ<EFBDAE>tェ猜ツ靆<EFBE82>レ玻ワハワ錙D、ヲdfdセェツ蒻D@Dェヲ汗凋ィ侃、ェ<EFBDA4>ィD@Dィ、ェ灰v-<2D>トョメ<EFBDAE>tなネ<E381AA>ハ萪獎ハ萃リ@D<>域セh<EFBDBE>錺@D゙狷セホ默゙Dv;<3B>トョメ<EFBDAE>tェ猜ツ靆<EFBE82>レ玻ワハワ錙D<E98C99>域セh<EFBDBE>錺@D寵ィイ<EFBDA8>灰@Dー著セ滋寵セャbDv2<76>トョメ<EFBDAE>tなネ<E381AA>ハ萪獎ハ萃リ@D<>域セ<E59F9F>゙贅靨゙ワ襯@D゙狷セホ默゙Dv@<40>トョメ<EFBDAE>tェ猜ツ靆<EFBE82>レ玻ワハワ錙D<E98C99>域セ<E59F9F>゙贅靨゙ワ襯@D寵ィイ<EFBDA8>灰@Dー著セ滋寵セャbDv0<76>トョメ<EFBDAE>tなネ<E381AA>ハ萪獎ハ萃リ@D゙狷セ靨レハ萓bD@D゙狷セ靨レハ腑v;<3B>トョメ<EFBDAE>tェ猜ツ靆<EFBE82>レ玻ワハワ錙D゙狷セ靨レハ萓bD@D<><44>ェ惠セョ宙ィ織@DfdDv=<3D>トョメ<EFBDAE>tェ猜ツ靆<EFBE82>レ玻ワハワ錙D゙狷セ靨レハ萓bD@D<>棡汗ィ丁侃セ棡亟D@DbDv=<3D>トョメ<EFBDAE>tェ猜ツ靆<EFBE82>レ玻ワハワ錙D゙狷セ靨レハ萓bD@Dェヲ汗凋ィ侃、ェ<EFBDA4>ィD@Dィ、ェ灰v/<2F>トョメ<EFBDAE>tェ猜ツ靆ヲョ@Dヲョセ至怺、お汗嚏圷寒ィD@D撃丿灰v1<76>トョメ<EFBDAE>tェ猜ツ靆ヲョ@Dヲョセ至怺、お汗<E3818A>侃帳勢寒ィD@Dィ、ェ灰v#<23>トョメ<EFBDAE>tェ猜ツ靆ヲョ@Dヲョセヲィ<EFBDA6>廛@D憊ワハDv$<24>トョメ<EFBDAE>tェ猜ツ靆ヲョ@Dヲョセヲィ<EFBDA6>ェィD@D憊ワハDvA<76>トョメ<EFBDAE>tェ猜ツ靆ヲョ@Dヲョセ<EFBDAE>ィだ凋ヲD@Dネリレトセニワ靼腑@Dィハ跖も狎<E38282>ハ萪獎ハ萃リDvA<76>トョメ<EFBDAE>tェ猜ツ靆ヲョ@Dヲョセ<EFBDAE>ィだ<EFBDA8>うD@D<>рヲ鰍<EFBDA6>、D@Dィハ跖も狎<E38282>ハ萪獎ハ萃リDvD<76>トョメ<EFBDAE>tェ猜ツ靆ヲョ@Dヲョセ<EFBDAE>、梹、セ凋ヲD@Dメリレトセニワ靼腑@Dィハ跖も狎<E38282>ハ萪獎ハ萃リDvD<76>トョメ<EFBDAE>tェ猜ツ靆ヲョ@Dヲョセ<EFBDAE>、梹、<EFBD9A>うD@D<>рヲ鰍<EFBDA6>、D@Dィハ跖も狎<E38282>ハ萪獎ハ萃リDvB<76>トョメ<EFBDAE>tェ猜ツ靆ヲョ@Dヲョセヲィ明凋ヲD@Dネリレトセニワ靼腑@Dィハ跖も狎<E38282>ハ萪獎ハ萃リDvB<76>トョメ<EFBDAE>tェ猜ツ靆ヲョ@Dヲョセヲィ<EFBD86>うD@D<>рヲ鰍<EFBDA6>、D@Dィハ跖も狎<E38282>ハ萪獎ハ萃リDv

@ -1,258 +0,0 @@
#################################################################
# Makefile generated by Xilinx Platform Studio
# Project:E:\Dev\FreeRTOS\Demo\MicroBlaze\system.xmp
#################################################################
# Name of the Microprocessor system
# The hardware specification of the system is in file :
# E:\Dev\FreeRTOS\Demo\MicroBlaze\system.mhs
# The software specification of the system is in file :
# E:\Dev\FreeRTOS\Demo\MicroBlaze\system.mss
include system_incl.make
#################################################################
# EXTERNAL TARGETS
#################################################################
all:
@echo "Makefile to build a Microprocessor system :"
@echo "Run make with any of the following targets"
@echo " "
@echo " netlist : Generates the netlist for the given MHS "
@echo " bits : Runs Implementation tools to generate the bitstream"
@echo " exporttopn:Export to ProjNav"
@echo " "
@echo " libs : Configures the sw libraries for this system"
@echo " program : Compiles the program sources for all the processor instances"
@echo " "
@echo " init_bram: Initializes bitstream with BRAM data"
@echo " ace : Generate ace file from bitstream and elf"
@echo " download : Downloads the bitstream onto the board"
@echo " "
@echo " sim : Generates HDL simulation models and runs simulator for chosen simulation mode"
@echo " simmodel : Generates HDL simulation models for chosen simulation mode"
@echo " behavioral_model:Generates behavioral HDL models with BRAM initialization"
@echo " structural_model:Generates structural simulation HDL models with BRAM initialization"
@echo " timing_model : Generates timing simulation HDL models with BRAM initialization"
@echo " vp : Generates virtual platform model"
@echo " "
@echo " netlistclean: Deletes netlist"
@echo " bitsclean: Deletes bit, ncd, bmm files"
@echo " hwclean : Deletes implementation dir"
@echo " libsclean: Deletes sw libraries"
@echo " programclean: Deletes compiled ELF files"
@echo " swclean : Deletes sw libraries and ELF files"
@echo " simclean : Deletes simulation dir"
@echo " vpclean : Deletes virtualplatform dir"
@echo " clean : Deletes all generated files/directories"
@echo " "
@echo " make <target> : (Default)"
@echo " Creates a Microprocessor system using default initializations"
@echo " specified for each processor in MSS file"
bits: $(SYSTEM_BIT)
ace: $(SYSTEM_ACE)
netlist: $(POSTSYN_NETLIST)
libs: $(LIBRARIES)
program: $(ALL_USER_ELF_FILES)
download: $(DOWNLOAD_BIT) dummy
@echo "*********************************************"
@echo "Downloading Bitstream onto the target board"
@echo "*********************************************"
impact -batch etc/download.cmd
init_bram: $(DOWNLOAD_BIT)
sim: $(DEFAULT_SIM_SCRIPT)
cd simulation/behavioral; \
$(SIM_CMD) &
simmodel: $(DEFAULT_SIM_SCRIPT)
behavioral_model: $(BEHAVIORAL_SIM_SCRIPT)
structural_model: $(STRUCTURAL_SIM_SCRIPT)
timing_model: $(TIMING_SIM_SCRIPT)
vp: $(VPEXEC)
clean: hwclean libsclean programclean simclean vpclean
rm -f _impact.cmd
hwclean: netlistclean bitsclean
rm -rf implementation synthesis xst hdl
rm -rf xst.srp $(SYSTEM).srp
netlistclean:
rm -f $(POSTSYN_NETLIST)
rm -f $(BMM_FILE)
bitsclean:
rm -f $(SYSTEM_BIT)
rm -f implementation/$(SYSTEM).ncd
rm -f implementation/$(SYSTEM)_bd.bmm
bitsclean:
simclean:
rm -rf simulation/behavioral
swclean: libsclean programclean
@echo ""
libsclean: $(LIBSCLEAN_TARGETS)
programclean: $(PROGRAMCLEAN_TARGETS)
vpclean:
rm -rf virtualplatform
#################################################################
# SOFTWARE PLATFORM FLOW
#################################################################
$(LIBRARIES): $(MHSFILE) $(MSSFILE) __xps/libgen.opt
@echo "*********************************************"
@echo "Creating software libraries..."
@echo "*********************************************"
libgen $(LIBGEN_OPTIONS) $(MSSFILE)
microblaze_0_libsclean:
rm -rf microblaze_0/lib/
$(MICROBLAZE_0_XMDSTUB): $(LIBRARIES)
#################################################################
# SOFTWARE APPLICATION RTOSDEMO
#################################################################
RTOSDemo_program: $(RTOSDEMO_OUTPUT)
$(RTOSDEMO_OUTPUT) : $(RTOSDEMO_SOURCES) $(RTOSDEMO_HEADERS) $(RTOSDEMO_LINKER_SCRIPT) \
$(LIBRARIES) __xps/rtosdemo_compiler.opt
@mkdir -p $(RTOSDEMO_OUTPUT_DIR)
$(RTOSDEMO_CC) $(RTOSDEMO_CC_OPT) $(RTOSDEMO_SOURCES) -o $(RTOSDEMO_OUTPUT) \
$(RTOSDEMO_OTHER_CC_FLAGS) $(RTOSDEMO_INCLUDES) $(RTOSDEMO_LIBPATH) \
-xl-mode-$(RTOSDEMO_MODE) \
$(RTOSDEMO_CFLAGS) $(RTOSDEMO_LFLAGS)
$(RTOSDEMO_CC_SIZE) $(RTOSDEMO_OUTPUT)
RTOSDemo_programclean:
rm -f $(RTOSDEMO_OUTPUT)
#################################################################
# BOOTLOOP ELF FILES
#################################################################
$(MICROBLAZE_0_BOOTLOOP): $(MICROBLAZE_BOOTLOOP)
@mkdir -p $(BOOTLOOP_DIR)
cp -f $(MICROBLAZE_BOOTLOOP) $(MICROBLAZE_0_BOOTLOOP)
#################################################################
# HARDWARE IMPLEMENTATION FLOW
#################################################################
$(BMM_FILE) \
$(WRAPPER_NGC_FILES): $(MHSFILE) __xps/platgen.opt \
$(CORE_STATE_DEVELOPMENT_FILES)
@echo "****************************************************"
@echo "Creating system netlist for hardware specification.."
@echo "****************************************************"
platgen $(PLATGEN_OPTIONS) -st xst $(MHSFILE)
$(POSTSYN_NETLIST): $(WRAPPER_NGC_FILES)
@echo "Running synthesis..."
bash -c "cd synthesis; ./synthesis.sh; cd .."
$(SYSTEM_BIT): $(BMM_FILE) $(POSTSYN_NETLIST) __xps/xpsxflow.opt \
$(UCF_FILE) $(BITGEN_UT_FILE) $(FASTRUNTIME_OPT_FILE)
@echo "Copying Xilinx Implementation tool scripts.."
@cp -f $(BITGEN_UT_FILE) implementation/bitgen.ut
@cp -f $(FASTRUNTIME_OPT_FILE) implementation/fast_runtime.opt
@cp -f $(UCF_FILE) implementation/$(SYSTEM).ucf
@echo "*********************************************"
@echo "Running Xilinx Implementation tools.."
@echo "*********************************************"
xflow -wd implementation -p $(DEVICE) -implement fast_runtime.opt $(SYSTEM).ngc
cd implementation; bitgen -w -f bitgen.ut $(SYSTEM)
exporttopn:
@echo "You have chosen XPS for implementation tool flow."
@echo "Please select ProjNav as your implementation flow in Project Options."
@echo "In batch mode, use commad xset pnproj <isefile>."
$(DOWNLOAD_BIT): $(SYSTEM_BIT) $(BRAMINIT_ELF_FILES) __xps/bitinit.opt
@cp -f implementation/$(SYSTEM)_bd.bmm .
@echo "*********************************************"
@echo "Initializing BRAM contents of the bitstream"
@echo "*********************************************"
bitinit $(MHSFILE) $(SEARCHPATHOPT) $(BRAMINIT_ELF_FILE_ARGS) \
-bt $(SYSTEM_BIT) -o $(DOWNLOAD_BIT)
@rm -f $(SYSTEM)_bd.bmm
$(SYSTEM_ACE): $(DOWNLOAD_BIT) $(RTOSDEMO_OUTPUT)
@echo "*********************************************"
@echo "Creating system ace file"
@echo "*********************************************"
xmd -tcl genace.tcl -jprog -hw $(DOWNLOAD_BIT) -elf $(RTOSDEMO_OUTPUT) -ace $(SYSTEM_ACE)
#################################################################
# SIMULATION FLOW
#################################################################
################## BEHAVIORAL SIMULATION ##################
$(BEHAVIORAL_SIM_SCRIPT): $(MHSFILE) __xps/simgen.opt \
$(BRAMINIT_ELF_FILES)
@echo "*********************************************"
@echo "Creating behavioral simulation models..."
@echo "*********************************************"
simgen $(SIMGEN_OPTIONS) -m behavioral $(MHSFILE)
################## STRUCTURAL SIMULATION ##################
$(STRUCTURAL_SIM_SCRIPT): $(WRAPPER_NGC_FILES) __xps/simgen.opt \
$(BRAMINIT_ELF_FILES)
@echo "*********************************************"
@echo "Creating structural simulation models..."
@echo "*********************************************"
simgen $(SIMGEN_OPTIONS) -sd implementation -m structural $(MHSFILE)
################## TIMING SIMULATION ##################
$(TIMING_SIM_SCRIPT): $(SYSTEM_BIT) __xps/simgen.opt \
$(BRAMINIT_ELF_FILES)
@echo "*********************************************"
@echo "Creating timing simulation models..."
@echo "*********************************************"
simgen $(SIMGEN_OPTIONS) -sd implementation -m timing $(MHSFILE)
#################################################################
# VIRTUAL PLATFORM FLOW
#################################################################
$(VPEXEC): $(MHSFILE) __xps/vpgen.opt
@echo "****************************************************"
@echo "Creating virtual platform for hardware specification.."
@echo "****************************************************"
vpgen $(VPGEN_OPTIONS) $(MHSFILE)
dummy:
@echo ""

@ -1,196 +0,0 @@
# ##############################################################################
# Created by Base System Builder Wizard for Xilinx EDK 7.1.2 Build EDK_H.12.5.1
# Sun Nov 13 16:46:19 2005
# Target Board: Xilinx Virtex 4 ML403 Evaluation Platform Rev 1
# Family: virtex4
# Device: xc4vfx12
# Package: ff668
# Speed Grade: -10
# Processor: Microblaze
# System clock frequency: 100.000000 MHz
# Debug interface: On-Chip HW Debug Module
# On Chip Memory : 64 KB
# ##############################################################################
PARAMETER VERSION = 2.1.0
PORT fpga_0_RS232_Uart_RX_pin = fpga_0_RS232_Uart_RX, DIR = INPUT
PORT fpga_0_RS232_Uart_TX_pin = fpga_0_RS232_Uart_TX, DIR = OUTPUT
PORT fpga_0_LEDs_4Bit_GPIO_IO_pin = fpga_0_LEDs_4Bit_GPIO_IO, DIR = INOUT, VEC = [0:3]
PORT fpga_0_LEDs_Positions_GPIO_IO_pin = fpga_0_LEDs_Positions_GPIO_IO, DIR = INOUT, VEC = [0:4]
PORT sys_clk_pin = dcm_clk_s, DIR = INPUT, SIGIS = DCMCLK
PORT sys_rst_pin = sys_rst_s, DIR = INPUT
BEGIN microblaze
PARAMETER INSTANCE = microblaze_0
PARAMETER HW_VER = 4.00.a
PARAMETER C_DEBUG_ENABLED = 1
PARAMETER C_NUMBER_OF_PC_BRK = 2
PARAMETER C_NUMBER_OF_RD_ADDR_BRK = 1
PARAMETER C_NUMBER_OF_WR_ADDR_BRK = 1
BUS_INTERFACE DLMB = dlmb
BUS_INTERFACE ILMB = ilmb
BUS_INTERFACE DOPB = mb_opb
BUS_INTERFACE IOPB = mb_opb
PORT CLK = sys_clk_s
PORT DBG_CAPTURE = DBG_CAPTURE_s
PORT DBG_CLK = DBG_CLK_s
PORT DBG_REG_EN = DBG_REG_EN_s
PORT DBG_TDI = DBG_TDI_s
PORT DBG_TDO = DBG_TDO_s
PORT DBG_UPDATE = DBG_UPDATE_s
PORT Interrupt = Interrupt
END
BEGIN opb_v20
PARAMETER INSTANCE = mb_opb
PARAMETER HW_VER = 1.10.c
PARAMETER C_EXT_RESET_HIGH = 0
PORT SYS_Rst = sys_rst_s
PORT OPB_Clk = sys_clk_s
END
BEGIN opb_mdm
PARAMETER INSTANCE = debug_module
PARAMETER HW_VER = 2.00.a
PARAMETER C_MB_DBG_PORTS = 1
PARAMETER C_USE_UART = 1
PARAMETER C_UART_WIDTH = 8
PARAMETER C_BASEADDR = 0x41400000
PARAMETER C_HIGHADDR = 0x4140ffff
BUS_INTERFACE SOPB = mb_opb
PORT OPB_Clk = sys_clk_s
PORT DBG_CAPTURE_0 = DBG_CAPTURE_s
PORT DBG_CLK_0 = DBG_CLK_s
PORT DBG_REG_EN_0 = DBG_REG_EN_s
PORT DBG_TDI_0 = DBG_TDI_s
PORT DBG_TDO_0 = DBG_TDO_s
PORT DBG_UPDATE_0 = DBG_UPDATE_s
END
BEGIN lmb_v10
PARAMETER INSTANCE = ilmb
PARAMETER HW_VER = 1.00.a
PARAMETER C_EXT_RESET_HIGH = 0
PORT SYS_Rst = sys_rst_s
PORT LMB_Clk = sys_clk_s
END
BEGIN lmb_v10
PARAMETER INSTANCE = dlmb
PARAMETER HW_VER = 1.00.a
PARAMETER C_EXT_RESET_HIGH = 0
PORT SYS_Rst = sys_rst_s
PORT LMB_Clk = sys_clk_s
END
BEGIN lmb_bram_if_cntlr
PARAMETER INSTANCE = dlmb_cntlr
PARAMETER HW_VER = 1.00.b
PARAMETER C_BASEADDR = 0x00000000
PARAMETER C_HIGHADDR = 0x0000ffff
BUS_INTERFACE SLMB = dlmb
BUS_INTERFACE BRAM_PORT = dlmb_port
END
BEGIN lmb_bram_if_cntlr
PARAMETER INSTANCE = ilmb_cntlr
PARAMETER HW_VER = 1.00.b
PARAMETER C_BASEADDR = 0x00000000
PARAMETER C_HIGHADDR = 0x0000ffff
BUS_INTERFACE SLMB = ilmb
BUS_INTERFACE BRAM_PORT = ilmb_port
END
BEGIN bram_block
PARAMETER INSTANCE = lmb_bram
PARAMETER HW_VER = 1.00.a
BUS_INTERFACE PORTA = ilmb_port
BUS_INTERFACE PORTB = dlmb_port
END
BEGIN opb_uartlite
PARAMETER INSTANCE = RS232_Uart
PARAMETER HW_VER = 1.00.b
PARAMETER C_BAUDRATE = 9600
PARAMETER C_DATA_BITS = 8
PARAMETER C_ODD_PARITY = 0
PARAMETER C_USE_PARITY = 0
PARAMETER C_CLK_FREQ = 100000000
PARAMETER C_BASEADDR = 0x40600000
PARAMETER C_HIGHADDR = 0x4060ffff
BUS_INTERFACE SOPB = mb_opb
PORT OPB_Clk = sys_clk_s
PORT Interrupt = RS232_Uart_Interrupt
PORT RX = fpga_0_RS232_Uart_RX
PORT TX = fpga_0_RS232_Uart_TX
END
BEGIN opb_gpio
PARAMETER INSTANCE = LEDs_4Bit
PARAMETER HW_VER = 3.01.b
PARAMETER C_GPIO_WIDTH = 4
PARAMETER C_IS_DUAL = 0
PARAMETER C_IS_BIDIR = 1
PARAMETER C_ALL_INPUTS = 0
PARAMETER C_BASEADDR = 0x40020000
PARAMETER C_HIGHADDR = 0x4002ffff
BUS_INTERFACE SOPB = mb_opb
PORT OPB_Clk = sys_clk_s
PORT GPIO_IO = fpga_0_LEDs_4Bit_GPIO_IO
END
BEGIN opb_gpio
PARAMETER INSTANCE = LEDs_Positions
PARAMETER HW_VER = 3.01.b
PARAMETER C_GPIO_WIDTH = 5
PARAMETER C_IS_DUAL = 0
PARAMETER C_IS_BIDIR = 1
PARAMETER C_ALL_INPUTS = 0
PARAMETER C_BASEADDR = 0x40000000
PARAMETER C_HIGHADDR = 0x4000ffff
BUS_INTERFACE SOPB = mb_opb
PORT OPB_Clk = sys_clk_s
PORT GPIO_IO = fpga_0_LEDs_Positions_GPIO_IO
END
BEGIN opb_timer
PARAMETER INSTANCE = opb_timer_1
PARAMETER HW_VER = 1.00.b
PARAMETER C_COUNT_WIDTH = 32
PARAMETER C_ONE_TIMER_ONLY = 1
PARAMETER C_BASEADDR = 0x41c00000
PARAMETER C_HIGHADDR = 0x41c0ffff
BUS_INTERFACE SOPB = mb_opb
PORT OPB_Clk = sys_clk_s
PORT Interrupt = opb_timer_1_Interrupt
END
BEGIN opb_intc
PARAMETER INSTANCE = opb_intc_0
PARAMETER HW_VER = 1.00.c
PARAMETER C_BASEADDR = 0x41200000
PARAMETER C_HIGHADDR = 0x4120ffff
PARAMETER C_HAS_IPR = 0
BUS_INTERFACE SOPB = mb_opb
PORT Irq = Interrupt
PORT Intr = RS232_Uart_Interrupt & opb_timer_1_Interrupt
END
BEGIN dcm_module
PARAMETER INSTANCE = dcm_0
PARAMETER HW_VER = 1.00.a
PARAMETER C_CLK0_BUF = TRUE
PARAMETER C_CLKIN_PERIOD = 10.000000
PARAMETER C_CLK_FEEDBACK = 1X
PARAMETER C_EXT_RESET_HIGH = 1
PORT CLKIN = dcm_clk_s
PORT CLK0 = sys_clk_s
PORT CLKFB = sys_clk_s
PORT RST = net_gnd
PORT LOCKED = dcm_0_lock
END

@ -1,84 +0,0 @@
PARAMETER VERSION = 2.2.0
BEGIN OS
PARAMETER OS_NAME = standalone
PARAMETER OS_VER = 1.00.a
PARAMETER PROC_INSTANCE = microblaze_0
END
BEGIN PROCESSOR
PARAMETER DRIVER_NAME = cpu
PARAMETER DRIVER_VER = 1.00.a
PARAMETER HW_INSTANCE = microblaze_0
PARAMETER COMPILER = mb-gcc
PARAMETER ARCHIVER = mb-ar
PARAMETER XMDSTUB_PERIPHERAL = debug_module
END
BEGIN DRIVER
PARAMETER DRIVER_NAME = opbarb
PARAMETER DRIVER_VER = 1.02.a
PARAMETER HW_INSTANCE = mb_opb
END
BEGIN DRIVER
PARAMETER DRIVER_NAME = uartlite
PARAMETER DRIVER_VER = 1.00.b
PARAMETER HW_INSTANCE = debug_module
END
BEGIN DRIVER
PARAMETER DRIVER_NAME = bram
PARAMETER DRIVER_VER = 1.00.a
PARAMETER HW_INSTANCE = dlmb_cntlr
END
BEGIN DRIVER
PARAMETER DRIVER_NAME = bram
PARAMETER DRIVER_VER = 1.00.a
PARAMETER HW_INSTANCE = ilmb_cntlr
END
BEGIN DRIVER
PARAMETER DRIVER_NAME = uartlite
PARAMETER DRIVER_VER = 1.00.b
PARAMETER HW_INSTANCE = RS232_Uart
PARAMETER int_handler = vSerialISR, int_port = Interrupt
END
BEGIN DRIVER
PARAMETER DRIVER_NAME = gpio
PARAMETER DRIVER_VER = 2.00.a
PARAMETER HW_INSTANCE = LEDs_4Bit
END
BEGIN DRIVER
PARAMETER DRIVER_NAME = gpio
PARAMETER DRIVER_VER = 2.00.a
PARAMETER HW_INSTANCE = LEDs_Positions
END
BEGIN DRIVER
PARAMETER DRIVER_NAME = tmrctr
PARAMETER DRIVER_VER = 1.00.b
PARAMETER HW_INSTANCE = opb_timer_1
PARAMETER int_handler = vTickISR, int_port = Interrupt
END
BEGIN DRIVER
PARAMETER DRIVER_NAME = intc
PARAMETER DRIVER_VER = 1.00.c
PARAMETER HW_INSTANCE = opb_intc_0
END
BEGIN DRIVER
PARAMETER DRIVER_NAME = generic
PARAMETER DRIVER_VER = 1.00.a
PARAMETER HW_INSTANCE = dcm_0
END

@ -1,66 +0,0 @@
#Please do not modify this file by hand
XmpVersion: 7.1
IntStyle: default
MHS File: system.mhs
MSS File: system.mss
NPL File: projnav/system.ise
Architecture: virtex4
Device: xc4vfx12
Package: ff668
SpeedGrade: -10
UseProjNav: 0
AddToNPL: 0
PNImportBitFile:
PNImportBmmFile:
UserCmd1:
UserCmd1Type: 0
UserCmd2:
UserCmd2Type: 0
SynProj: xst
ReloadPbde: 0
MainMhsEditor: 0
InsertNoPads: 0
HdlLang: VHDL
Simulator: mti
SimModel: BEHAVIORAL
SimXLib:
SimEdkLib:
MixLangSim: 1
UcfFile: data/system.ucf
Processor: microblaze_0
BootLoop: 0
XmdStub: 0
SwProj: RTOSDemo
Processor: microblaze_0
Executable: RTOSDemo/executable.elf
Source: main.c
Source: ParTest/ParTest.c
Source: ../../Source/tasks.c
Source: ../../Source/queue.c
Source: ../../Source/list.c
Source: ../../Source/portable/MemMang/heap_1.c
Source: ../../Source/portable/GCC/MicroBlaze/port.c
Source: ../../Source/portable/GCC/MicroBlaze/portasm.s
Source: ../Common/Minimal/flash.c
Source: serial/serial.c
Source: ../Common/Minimal/comtest.c
Source: ../Common/Minimal/integer.c
Source: ../Common/Minimal/semtest.c
Source: ../Common/Minimal/dynamic.c
Source: ../Common/Minimal/PollQ.c
Source: ../Common/Minimal/BlockQ.c
Header: FreeRTOSConfig.h
DefaultInit: EXECUTABLE
InitBram: 1
Active: 1
CompilerOptLevel: 4
GlobPtrOpt: 0
DebugSym: 1
SearchIncl: . ../Common/include ../../Source/include ../../Source/portable/GCC/MicroBlaze
AsmOpt:
LinkOpt: -Map=rtosdemo.map
ProgStart:
StackSize:
HeapSize:
LinkerScript:
ProgCCFlags: -D MICROBLAZE_GCC -Wall

@ -1,134 +0,0 @@
#################################################################
# Makefile generated by Xilinx Platform Studio
# Project:E:\Dev\FreeRTOS\Demo\MicroBlaze\system.xmp
#################################################################
XILINX_EDK_DIR = C:/devtools/xilinx/EDK
SYSTEM = system
MHSFILE = system.mhs
MSSFILE = system.mss
FPGA_ARCH = virtex4
DEVICE = xc4vfx12ff668-10
LANGUAGE = vhdl
SEARCHPATHOPT =
SUBMODULE_OPT =
PLATGEN_OPTIONS = -p $(DEVICE) -lang $(LANGUAGE) $(SEARCHPATHOPT) $(SUBMODULE_OPT)
LIBGEN_OPTIONS = -mhs $(MHSFILE) -p $(DEVICE) $(SEARCHPATHOPT) \
$(MICROBLAZE_0_LIBG_OPT)
VPGEN_OPTIONS = -p $(DEVICE) $(SEARCHPATHOPT)
RTOSDEMO_OUTPUT_DIR = RTOSDemo
RTOSDEMO_OUTPUT = $(RTOSDEMO_OUTPUT_DIR)/executable.elf
MICROBLAZE_BOOTLOOP = $(XILINX_EDK_DIR)/sw/lib/microblaze/mb_bootloop.elf
PPC405_BOOTLOOP = $(XILINX_EDK_DIR)/sw/lib/ppc405/ppc_bootloop.elf
BOOTLOOP_DIR = bootloops
MICROBLAZE_0_BOOTLOOP = $(BOOTLOOP_DIR)/microblaze_0.elf
MICROBLAZE_0_XMDSTUB = microblaze_0/code/xmdstub.elf
BRAMINIT_ELF_FILES = $(RTOSDEMO_OUTPUT)
BRAMINIT_ELF_FILE_ARGS = -pe microblaze_0 $(RTOSDEMO_OUTPUT)
ALL_USER_ELF_FILES = $(RTOSDEMO_OUTPUT)
SIM_CMD = vsim
BEHAVIORAL_SIM_SCRIPT = simulation/behavioral/$(SYSTEM).do
STRUCTURAL_SIM_SCRIPT = simulation/structural/$(SYSTEM).do
TIMING_SIM_SCRIPT = simulation/timing/$(SYSTEM).do
DEFAULT_SIM_SCRIPT = $(BEHAVIORAL_SIM_SCRIPT)
MIX_LANG_SIM_OPT = -mixed yes
SIMGEN_OPTIONS = -p $(DEVICE) -lang $(LANGUAGE) $(SEARCHPATHOPT) $(SUBMODULE_OPT) $(BRAMINIT_ELF_FILE_ARGS) $(MIX_LANG_SIM_OPT) -s mti
MICROBLAZE_0_XMDSTUB = microblaze_0/code/xmdstub.elf
LIBRARIES = \
microblaze_0/lib/libxil.a
VPEXEC = virtualplatform/vpexec.exe
LIBSCLEAN_TARGETS = microblaze_0_libsclean
PROGRAMCLEAN_TARGETS = RTOSDemo_programclean
CORE_STATE_DEVELOPMENT_FILES =
WRAPPER_NGC_FILES = implementation/microblaze_0_wrapper.ngc \
implementation/mb_opb_wrapper.ngc \
implementation/debug_module_wrapper.ngc \
implementation/ilmb_wrapper.ngc \
implementation/dlmb_wrapper.ngc \
implementation/dlmb_cntlr_wrapper.ngc \
implementation/ilmb_cntlr_wrapper.ngc \
implementation/lmb_bram_wrapper.ngc \
implementation/rs232_uart_wrapper.ngc \
implementation/leds_4bit_wrapper.ngc \
implementation/leds_positions_wrapper.ngc \
implementation/opb_timer_1_wrapper.ngc \
implementation/opb_intc_0_wrapper.ngc \
implementation/dcm_0_wrapper.ngc
POSTSYN_NETLIST = implementation/$(SYSTEM).ngc
SYSTEM_BIT = implementation/$(SYSTEM).bit
DOWNLOAD_BIT = implementation/download.bit
SYSTEM_ACE = implementation/$(SYSTEM).ace
UCF_FILE = data/system.ucf
BMM_FILE = implementation/$(SYSTEM).bmm
FASTRUNTIME_OPT_FILE = etc/fast_runtime.opt
BITGEN_UT_FILE = etc/bitgen.ut
#################################################################
# SOFTWARE APPLICATION RTOSDEMO
#################################################################
RTOSDEMO_SOURCES = main.c ParTest/ParTest.c ../../Source/tasks.c ../../Source/queue.c ../../Source/list.c ../../Source/portable/MemMang/heap_1.c ../../Source/portable/GCC/MicroBlaze/port.c ../../Source/portable/GCC/MicroBlaze/portasm.s ../Common/Minimal/flash.c serial/serial.c ../Common/Minimal/comtest.c ../Common/Minimal/integer.c ../Common/Minimal/semtest.c ../Common/Minimal/dynamic.c ../Common/Minimal/PollQ.c ../Common/Minimal/BlockQ.c
RTOSDEMO_HEADERS = FreeRTOSConfig.h
RTOSDEMO_CC = mb-gcc
RTOSDEMO_CC_SIZE = mb-size
RTOSDEMO_CC_OPT = -Os
RTOSDEMO_CFLAGS = -D MICROBLAZE_GCC -Wall
RTOSDEMO_CC_SEARCH = # -B
RTOSDEMO_LIBPATH = -L./microblaze_0/lib/ # -L
RTOSDEMO_INCLUDES = -I./microblaze_0/include/ -IDev/FreeRTOS/Demo/MicroBlaze/ -I. -I../Common/include -I../../Source/include -I../../Source/portable/GCC/MicroBlaze
RTOSDEMO_LFLAGS = # -l
RTOSDEMO_CC_PREPROC_FLAG = # -Wp,
RTOSDEMO_CC_ASM_FLAG = # -Wa,
RTOSDEMO_CC_LINKER_FLAG = -Wl,-Map=rtosdemo.map
RTOSDEMO_LINKER_SCRIPT =
RTOSDEMO_LINKER_SCRIPT_FLAG = #-Wl,-T -Wl,$(RTOSDEMO_LINKER_SCRIPT)
RTOSDEMO_CC_DEBUG_FLAG = -g
RTOSDEMO_CC_GLOBPTR_FLAG= # -mxl-gp-opt
RTOSDEMO_MODE = executable
RTOSDEMO_LIBG_OPT = -$(RTOSDEMO_MODE) microblaze_0
RTOSDEMO_CC_SOFTMUL_FLAG= -mno-xl-soft-mul
RTOSDEMO_CC_START_ADDR_FLAG= # -Wl,-defsym -Wl,_TEXT_START_ADDR=
RTOSDEMO_CC_STACK_SIZE_FLAG= # -Wl,-defsym -Wl,_STACK_SIZE=
RTOSDEMO_OTHER_CC_FLAGS= $(RTOSDEMO_CC_GLOBPTR_FLAG) \
$(RTOSDEMO_CC_START_ADDR_FLAG) $(RTOSDEMO_CC_STACK_SIZE_FLAG) \
$(RTOSDEMO_CC_SOFTMUL_FLAG) \
$(RTOSDEMO_CC_PREPROC_FLAG) $(RTOSDEMO_CC_ASM_FLAG) $(RTOSDEMO_CC_LINKER_FLAG) \
$(RTOSDEMO_LINKER_SCRIPT_FLAG) $(RTOSDEMO_CC_DEBUG_FLAG)

@ -1,12 +0,0 @@
PARAMETER VERSION = 2.2.0
BEGIN OS
PARAMETER OS_NAME = freertos
PARAMETER STDIN = *
PARAMETER STDOUT = *
PARAMETER SYSTMR_SPEC = true
PARAMETER SYSTMR_DEV = *
PARAMETER SYSINTC_SPEC = *
END

@ -1,101 +0,0 @@
##############################################################################
#
# (c) Copyright 2011 Xilinx, Inc. All rights reserved.
#
# This file contains confidential and proprietary information of Xilinx, Inc.
# and is protected under U.S. and international copyright and other
# intellectual property laws.
#
# DISCLAIMER
# This disclaimer is not a license and does not grant any rights to the
# materials distributed herewith. Except as otherwise provided in a valid
# license issued to you by Xilinx, and to the maximum extent permitted by
# applicable law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND WITH ALL
# FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES AND CONDITIONS, EXPRESS,
# IMPLIED, OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF
# MERCHANTABILITY, NON-INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE;
# and (2) Xilinx shall not be liable (whether in contract or tort, including
# negligence, or under any other theory of liability) for any loss or damage
# of any kind or nature related to, arising under or in connection with these
# materials, including for any direct, or any indirect, special, incidental,
# or consequential loss or damage (including loss of data, profits, goodwill,
# or any type of loss or damage suffered as a result of any action brought by
# a third party) even if such damage or loss was reasonably foreseeable or
# Xilinx had been advised of the possibility of the same.
#
# CRITICAL APPLICATIONS
# Xilinx products are not designed or intended to be fail-safe, or for use in
# any application requiring fail-safe performance, such as life-support or
# safety devices or systems, Class III medical devices, nuclear facilities,
# applications related to the deployment of airbags, or any other applications
# that could lead to death, personal injury, or severe property or
# environmental damage (individually and collectively, "Critical
# Applications"). Customer assumes the sole risk and liability of any use of
# Xilinx products in Critical Applications, subject only to applicable laws
# and regulations governing limitations on product liability.
#
# THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS PART OF THIS FILE
# AT ALL TIMES.
#
# This file is part of Xilkernel.
#
# $Id: xilkernel_v2_1_0.mld,v 1.1.2.4 2010/12/10 07:27:08 svemula Exp $
###############################################################################
OPTION psf_version = 2.1.0 ;
BEGIN OS freertos
OPTION DRC = kernel_drc ;
OPTION SUPPORTED_PERIPHERALS = (microblaze);
OPTION COPYFILES = all;
OPTION DEPENDS = (standalone_v3_01_a);
OPTION APP_LINKER_FLAGS = "-Wl,--start-group,-lxil,-lfreertos,-lgcc,-lc,--end-group";
OPTION DESC = "FreeRTOS is a popular lightweight kernel."
# STDIN/STDOUT
PARAM name = stdin, type = peripheral_instance, requires_interface = stdin, default=none, desc = "Specify the instance name of the standard input peripheral";
PARAM name = stdout, type = peripheral_instance, requires_interface = stdout, default=none, desc = "Specify the instance name of the standard output peripheral";
# System timer specification
PARAM name = systmr_interval, type = int, default = 10, desc = "Specify the frequency of the kernel tick (in Hz).";
# System interrupt controller specification
# PARAM name = sysintc_spec, type = peripheral_instance, range = (opb_intc, xps_intc, dcr_intc, axi_intc), default = none, desc = "Specify the instance name of the interrupt controller device driving system interrupts";
BEGIN CATEGORY kernel_behavior
PARAM name = kernel_behavior, type = bool, default = true, desc = "Parameters relating to the kernel behavior", permit = user;
PARAM name = use_preemption, type = bool, default = true, desc = "Set to true to use the preemptive scheduler, or false to use the cooperative scheduler.";
PARAM name = idle_yield, type = bool, default = true, desc = "Set to true if the Idle task should yield if another idle priority task is able to run, or false if the idle task should always use its entire time slice unless it is preempted.";
PARAM name = max_priorities, type = int, default = 4, desc = "The number of task priorities that will be available. Priorities can be assigned from zero to (max_priorities - 1)";
PARAM name = minimal_stack_size, type = int, default = 120, desc = "The size of the stack allocated to the Idle task. Also used by standard demo and test tasks found in the main FreeRTOS download.";
PARAM name = total_heap_size, type = int, default = 65536, desc = "Only used if heap_1.c or heap_2.c is included in the project. Sets the amount of RAM reserved for use by the kernel - used when tasks, queues and semaphores are created.";
PARAM name = max_task_name_len, type = int, default = 8, desc = "The maximum number of characters that can be in the name of a task.";
END CATEGORY
BEGIN CATEGORY kernel_features
PARAM name = kernel_features, type = bool, default = true, desc = "Include or exclude kernel features", permit = user;
PARAM name = use_mutexes, type = bool, default = true, desc = "Set to true to include mutex functionality, or false to exclude mutex functionality.";
PARAM name = use_recursive_mutexes, type = bool, default = true, desc = "Set to true to include recursive mutex functionality, or false to exclude recursive mutex functionality.";
PARAM name = use_counting_semaphores, type = bool, default = true, desc = "Set to true to include counting semaphore functionality, or false to exclude recursive mutex functionality.";
PARAM name = queue_registry_size, type = int, default = 10, desc = "The maximum number of queues that can be registered at any one time. Registered queues can be viewed in the kernel aware debugger plug-in.";
PARAM name = use_trace_facility, type = bool, default = true, desc = "Set to true to include the legacy trace functionality, and a few other features. traceMACROS are the preferred method of tracing now.";
END CATEGORY
BEGIN CATEGORY hook_functions
PARAM name = hook_functions, type = bool, default = true, desc = "Include or exclude application defined hook (callback) functions. Callback functions must be defined by the application that is using FreeRTOS", permit = user;
PARAM name = use_idle_hook, type = bool, default = false, desc = "Set to true for the kernel to call vApplicationIdleHook() on each iteration of the idle task. The application must provide an implementation of vApplicationIdleHook().";
PARAM name = use_tick_hook, type = bool, default = false, desc = "Set to true for the kernel to call vApplicationTickHook() during each tick interrupt. The application must provide an implementation of vApplicationTickHook().";
PARAM name = use_malloc_failed_hook, type = bool, default = true, desc = "Only used if heap_1.c, heap_2.c or heap_3.c is included in the project. Set to true for the kernel to call vApplicationMallocFailedHookHook() if there is insufficient FreeRTOS heap available for a task, queue or semaphore to be created. The application must provide an implementation of vApplicationMallocFailedHook().";
PARAM name = check_for_stack_overflow, type = int, default = 2, desc = "Set to 1 to include basic run time task stack checking. Set to 2 to include more comprehensive run time task stack checking.";
END CATEGORY
BEGIN CATEGORY software_timers
PARAM name = software_timers, type = bool, default = true, desc = "Options relating to the software timers functionality", permit = user;
PARAM name = use_timers, type = bool, default = true, desc = "Set to true to include software timer functionality, or false to exclude software timer functionality";
PARAM name = timer_task_priority, type = string, default = "(configMAX_PRIORITIES - 1)", desc = "The priority at which the software timer service/daemon task will execute.";
PARAM name = timer_command_queue_length, type = int, default = 10, desc = "The number of commands the timer command queue can hold at any one time.";
PARAM name = timer_task_stack_depth, type = string, default = "(configMINIMAL_STACK_SIZE), desc = "The size of the stack allocated to the timer service/daemon task.";
END CATEGORY
END OS

@ -1,806 +0,0 @@
##############################################################################
#
# (c) Copyright 2011 Xilinx, Inc. All rights reserved.
#
# This file contains confidential and proprietary information of Xilinx, Inc.
# and is protected under U.S. and international copyright and other
# intellectual property laws.
#
# DISCLAIMER
# This disclaimer is not a license and does not grant any rights to the
# materials distributed herewith. Except as otherwise provided in a valid
# license issued to you by Xilinx, and to the maximum extent permitted by
# applicable law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND WITH ALL
# FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES AND CONDITIONS, EXPRESS,
# IMPLIED, OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF
# MERCHANTABILITY, NON-INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE;
# and (2) Xilinx shall not be liable (whether in contract or tort, including
# negligence, or under any other theory of liability) for any loss or damage
# of any kind or nature related to, arising under or in connection with these
# materials, including for any direct, or any indirect, special, incidental,
# or consequential loss or damage (including loss of data, profits, goodwill,
# or any type of loss or damage suffered as a result of any action brought by
# a third party) even if such damage or loss was reasonably foreseeable or
# Xilinx had been advised of the possibility of the same.
#
# CRITICAL APPLICATIONS
# Xilinx products are not designed or intended to be fail-safe, or for use in
# any application requiring fail-safe performance, such as life-support or
# safety devices or systems, Class III medical devices, nuclear facilities,
# applications related to the deployment of airbags, or any other applications
# that could lead to death, personal injury, or severe property or
# environmental damage (individually and collectively, "Critical
# Applications"). Customer assumes the sole risk and liability of any use of
# Xilinx products in Critical Applications, subject only to applicable laws
# and regulations governing limitations on product liability.
#
# THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS PART OF THIS FILE
# AT ALL TIMES.
#
# This file is part of FreeRTOS.
#
# $Id: freertos_v2_1_0.tcl,v 1.1.2.8 2010/12/10 07:27:08 svemula Exp $
###############################################################################
# standalone bsp version. set this to the latest "ACTIVE" version.
set standalone_version standalone_v3_01_a
proc kernel_drc {os_handle} {
set sw_proc_handle [xget_libgen_proc_handle]
set hw_proc_handle [xget_handle $sw_proc_handle "IPINST"]
set proctype [xget_value $hw_proc_handle "OPTION" "IPNAME"]
set compiler [xget_value $sw_proc_handle "PARAMETER" "COMPILER"]
# check for valid compiler
if { [string first "mb-gcc" $compiler] == 0 && [string first "mb-g++" $compiler] == 0} {
error "Wrong compiler requested. FreeRTOS can be compiled only with the GNU compiler for MicroBlaze." "" "mdt_error"
}
# check for valid stdio parameters
set stdin [xget_value $os_handle "PARAMETER" "STDIN"]
set stdout [xget_value $os_handle "PARAMETER" "STDOUT"]
if { $stdin == "none" || $stdout == "none" } {
error "The STDIN/STDOUT parameters are not set. FreeRTOS requires stdin/stdout to be set." "" "mdt_error"
}
# check if the design has a intc
set intr_port [xget_value $hw_proc_handle "PORT" "Interrupt"]
if { [llength $intr_port] == 0 } {
error "CPU has no connection to Interrupt controller." "" "mdt_error"
}
# support only AXI/PLB
set interconnect [xget_value $hw_proc_handle "PARAMETER" "C_INTERCONNECT"]
if { $interconnect == 1 } {
set bus_name [xget_hw_busif_value $hw_proc_handle "DPLB"]
} elseif { $interconnect == 2 } {
set bus_name [xget_hw_busif_value $hw_proc_handle "M_AXI_DP"]
} else {
error "FreeRTOS supports Microblaze with only a AXI or PLB interconnect" "" "mdt_error"
}
# obtain handles to all the peripherals in the design
set mhs_handle [xget_hw_parent_handle $hw_proc_handle]
set slave_ifs [xget_hw_connected_busifs_handle $mhs_handle $bus_name "slave"]
set timer_count 0
set timer_has_intr 0
# check for a valid timer
foreach if $slave_ifs {
set ip_handle [xget_hw_parent_handle $if]
if {$ip_handle != $hw_proc_handle} {
set type [xget_hw_value $ip_handle]
if { $type == "xps_timer" || $type == "axi_timer" } {
incr timer_count
# check if the timer interrupts are enabled
set intr_port [xget_value $ip_handle "PORT" "Interrupt"]
if { [llength $intr_port] != 0 } {
set timer_has_intr 1
}
}
}
}
if { $timer_count == 0 } {
error "FreeRTOS for Microblaze requires an axi_timer or xps_timer. The HW platform doesn't have a valid timer." "" "mdt_error"
}
if { $timer_has_intr == 0 } {
error "FreeRTOS for Microblaze requires interrupts enabled for a timer." "" "mdt_error"
}
set systmr_interval_ms [xget_value $os_handle "PARAMETER" "systmr_interval"]
if { $systmr_interval_ms <= 0 } {
error "Invalid value for parameter systmr_interval specified. Please specify a positive value." "" "mdt_error"
}
### ToDo: Add DRC specific to FreeRTOS
}
proc generate {os_handle} {
variable standalone_version
set sw_proc_handle [xget_libgen_proc_handle]
set hw_proc_handle [xget_handle $sw_proc_handle "IPINST"]
set proctype [xget_value $hw_proc_handle "OPTION" "IPNAME"]
set procver [xget_value $hw_proc_handle "PARAMETER" "HW_VER"]
set need_config_file "false"
# proctype should be "microblaze"
set mbsrcdir "../${standalone_version}/src/microblaze"
set commondir "../${standalone_version}/src/common"
set datadir "../${standalone_version}/data"
foreach entry [glob -nocomplain [file join $commondir *]] {
file copy -force $entry [file join ".." "${standalone_version}" "src"]
}
# proctype should be "microblaze"
switch -regexp $proctype {
"microblaze" {
foreach entry [glob -nocomplain [file join $mbsrcdir *]] {
if { [string first "microblaze_interrupt_handler" $entry] == -1 } { ;# Do not copy over the Standalone BSP exception handler
file copy -force $entry [file join ".." "${standalone_version}" "src"]
}
}
set need_config_file "true"
}
"default" {puts "unknown processor type $proctype\n"}
}
# Write the config.make file
set makeconfig [open "../standalone_v3_01_a/src/config.make" w]
xprint_generated_header_tcl $makeconfig "Configuration parameters for Standalone Makefile"
if { $proctype == "microblaze" } {
if { [mb_has_exceptions $hw_proc_handle] } {
puts $makeconfig "LIBSOURCES = *.s *.c *.S"
} else {
puts $makeconfig "LIBSOURCES = *.s *.c"
}
}
puts $makeconfig "LIBS = standalone_libs"
close $makeconfig
# Remove microblaze directories...
file delete -force $mbsrcdir
# copy required files to the main src directory
file copy -force [file join src Source tasks.c] src
file copy -force [file join src Source queue.c] src
file copy -force [file join src Source list.c] src
file copy -force [file join src Source timers.c] src
file copy -force [file join src Source portable MemMang heap_3.c] src
file copy -force [file join src Source portable GCC MicroBlazeV8 port.c] src
file copy -force [file join src Source portable GCC MicroBlazeV8 port_exceptions.c] src
file copy -force [file join src Source portable GCC MicroBlazeV8 portasm.S] src
file copy -force [file join src Source portable GCC MicroBlazeV8 portmacro.h] src
set headers [glob -join ./src/Source/include *.\[h\]]
foreach header $headers {
file copy -force $header src
}
file delete -force [file join src Source]
file delete -force [file join src Source]
# Handle stdin and stdout
xhandle_stdin $os_handle
xhandle_stdout $os_handle
# Create config file for microblaze interrupt handling
if {[string compare -nocase $need_config_file "true"] == 0} {
xhandle_mb_interrupts
}
# Create config files for Microblaze exception handling
if { $proctype == "microblaze" && [mb_has_exceptions $hw_proc_handle] } {
xcreate_mb_exc_config_file
}
# Create bspconfig file
set bspcfg_fn [file join ".." "${standalone_version}" "src" "bspconfig.h"]
file delete $bspcfg_fn
set bspcfg_fh [open $bspcfg_fn w]
xprint_generated_header $bspcfg_fh "Configurations for Standalone BSP"
if { $proctype == "microblaze" && [mb_has_pvr $hw_proc_handle] } {
set pvr [xget_value $hw_proc_handle "PARAMETER" "C_PVR"]
switch $pvr {
"0" {
puts $bspcfg_fh "#define MICROBLAZE_PVR_NONE"
}
"1" {
puts $bspcfg_fh "#define MICROBLAZE_PVR_BASIC"
}
"2" {
puts $bspcfg_fh "#define MICROBLAZE_PVR_FULL"
}
"default" {
puts $bspcfg_fh "#define MICROBLAZE_PVR_NONE"
}
}
}
close $bspcfg_fh
# ToDO: FreeRTOS does not handle the following, refer xilkernel TCL script
# - MPU settings
set config_file [xopen_new_include_file "./src/FreeRTOSConfig.h" "FreeRTOS Configuration parameters"]
puts $config_file "\#include \"xparameters.h\" \n"
set val [xget_value $os_handle "PARAMETER" "use_preemption"]
if {$val == "false"} {
xput_define $config_file "configUSE_PREEMPTION" "0"
} else {
xput_define $config_file "configUSE_PREEMPTION" "1"
}
set val [xget_value $os_handle "PARAMETER" "use_mutexes"]
if {$val == "false"} {
xput_define $config_file "configUSE_MUTEXES" "0"
} else {
xput_define $config_file "configUSE_MUTEXES" "1"
}
set val [xget_value $os_handle "PARAMETER" "use_recursive_mutexes"]
if {$val == "false"} {
xput_define $config_file "configUSE_RECURSIVE_MUTEXES" "0"
} else {
xput_define $config_file "configUSE_RECURSIVE_MUTEXES" "1"
}
set val [xget_value $os_handle "PARAMETER" "use_counting_semaphores"]
if {$val == "false"} {
xput_define $config_file "configUSE_COUNTING_SEMAPHORES" "0"
} else {
xput_define $config_file "configUSE_COUNTING_SEMAPHORES" "1"
}
set val [xget_value $os_handle "PARAMETER" "use_timers"]
if {$val == "false"} {
xput_define $config_file "configUSE_TIMERS" "0"
} else {
xput_define $config_file "configUSE_TIMERS" "1"
}
set val [xget_value $os_handle "PARAMETER" "use_idle_hook"]
if {$val == "false"} {
xput_define $config_file "configUSE_IDLE_HOOK" "0"
} else {
xput_define $config_file "configUSE_IDLE_HOOK" "1"
}
set val [xget_value $os_handle "PARAMETER" "use_tick_hook"]
if {$val == "false"} {
xput_define $config_file "configUSE_TICK_HOOK" "0"
} else {
xput_define $config_file "configUSE_TICK_HOOK" "1"
}
set val [xget_value $os_handle "PARAMETER" "use_malloc_failed_hook"]
if {$val == "false"} {
xput_define $config_file "configUSE_MALLOC_FAILED_HOOK" "0"
} else {
xput_define $config_file "configUSE_MALLOC_FAILED_HOOK" "1"
}
set val [xget_value $os_handle "PARAMETER" "use_trace_facility"]
if {$val == "false"} {
xput_define $config_file "configUSE_TRACE_FACILITY" "0"
} else {
xput_define $config_file "configUSE_TRACE_FACILITY" "1"
}
xput_define $config_file "configUSE_16_BIT_TICKS" "0"
xput_define $config_file "configUSE_APPLICATION_TASK_TAG" "0"
xput_define $config_file "configUSE_CO_ROUTINES" "0"
# System timer tick rate (Microblaze only. kernel DRC ensures this)
set systmr_interval [xget_value $os_handle "PARAMETER" "systmr_interval"]
xput_define $config_file "configTICK_RATE_HZ" $systmr_interval
set max_priorities [xget_value $os_handle "PARAMETER" "max_priorities"]
xput_define $config_file "configMAX_PRIORITIES" $max_priorities
xput_define $config_file "configMAX_CO_ROUTINE_PRIORITIES" "2"
set min_stack [xget_value $os_handle "PARAMETER" "minimal_stack_size"]
set min_stack [expr [expr $min_stack + 3] & 0xFFFFFFFC]
xput_define $config_file "configMINIMAL_STACK_SIZE" $min_stack
set total_heap_size [xget_value $os_handle "PARAMETER" "total_heap_size"]
set total_heap_size [expr [expr $total_heap_size + 3] & 0xFFFFFFFC]
xput_define $config_file "configTOTAL_HEAP_SIZE" $total_heap_size
set max_task_name_len [xget_value $os_handle "PARAMETER" "max_task_name_len"]
xput_define $config_file "configMAX_TASK_NAME_LEN" $max_task_name_len
set val [xget_value $os_handle "PARAMETER" "idle_yield"]
if {$val == "false"} {
xput_define $config_file "configIDLE_SHOULD_YIELD" "0"
} else {
xput_define $config_file "configIDLE_SHOULD_YIELD" "1"
}
set val [xget_value $os_handle "PARAMETER" "check_for_stack_overflow"]
if {$val == "false"} {
xput_define $config_file "configCHECK_FOR_STACK_OVERFLOW" "0"
} else {
xput_define $config_file "configCHECK_FOR_STACK_OVERFLOW" "2"
}
set val [xget_value $os_handle "PARAMETER" "queue_registry_size"]
if {$val == "false"} {
xput_define $config_file "configQUEUE_REGISTRY_SIZE" "0"
} else {
xput_define $config_file "configQUEUE_REGISTRY_SIZE" "10"
}
xput_define $config_file "configGENERATE_RUN_TIME_STATS" "0"
set val [xget_value $os_handle "PARAMETER" "timer_task_priority"]
if {$val == "false"} {
xput_define $config_file "configTIMER_TASK_PRIORITY" "0"
} else {
xput_define $config_file "configTIMER_TASK_PRIORITY" "10"
}
set val [xget_value $os_handle "PARAMETER" "timer_command_queue_length"]
if {$val == "false"} {
xput_define $config_file "configTIMER_QUEUE_LENGTH" "0"
} else {
xput_define $config_file "configTIMER_QUEUE_LENGTH" "10"
}
set val [xget_value $os_handle "PARAMETER" "timer_task_stack_depth"]
if {$val == "false"} {
xput_define $config_file "configTIMER_TASK_STACK_DEPTH" "0"
} else {
xput_define $config_file "configTIMER_TASK_STACK_DEPTH" $min_stack
}
if { [mb_has_exceptions $hw_proc_handle] } {
xput_define $config_file "configINSTALL_EXCEPTION_HANDLERS" "1"
} else {
xput_define $config_file "configINSTALL_EXCEPTION_HANDLERS" "0"
}
xput_define $config_file "configINTERRUPT_CONTROLLER_TO_USE" "XPAR_INTC_SINGLE_DEVICE_ID"
xput_define $config_file "INCLUDE_vTaskCleanUpResources" "0"
xput_define $config_file "INCLUDE_vTaskDelay" "1"
xput_define $config_file "INCLUDE_vTaskDelayUntil" "1"
xput_define $config_file "INCLUDE_vTaskDelete" "1"
xput_define $config_file "INCLUDE_xTaskGetCurrentTaskHandle" "1"
xput_define $config_file "INCLUDE_xTaskGetIdleTaskHandle" "1"
xput_define $config_file "INCLUDE_xTaskGetSchedulerState" "1"
xput_define $config_file "INCLUDE_xTimerGetTimerDaemonTaskHandle" "1"
xput_define $config_file "INCLUDE_uxTaskGetStackHighWaterMark" "1"
xput_define $config_file "INCLUDE_uxTaskPriorityGet" "1"
xput_define $config_file "INCLUDE_vTaskPrioritySet" "1"
xput_define $config_file "INCLUDE_xTaskResumeFromISR" "1"
xput_define $config_file "INCLUDE_vTaskSuspend" "1"
xput_define $config_file "INCLUDE_pcTaskGetTaskName" "1"
xput_define $config_file "INCLUDE_xTaskGetIdleTaskHandle" "1"
xput_define $config_file "INCLUDE_xTimerGetTimerDaemonTaskHandle" "1"
# complete the header protectors
puts $config_file "\#endif"
close $config_file
}
proc xopen_new_include_file { filename description } {
set inc_file [open $filename w]
xprint_generated_header $inc_file $description
set newfname [string map {. _} [lindex [split $filename {\/}] end]]
puts $inc_file "\#ifndef _[string toupper $newfname]"
puts $inc_file "\#define _[string toupper $newfname]\n\n"
return $inc_file
}
proc xadd_define { config_file os_handle parameter } {
set param_value [xget_value $os_handle "PARAMETER" $parameter]
puts $config_file "#define [string toupper $parameter] $param_value\n"
# puts "creating #define [string toupper $parameter] $param_value\n"
}
proc xput_define { config_file parameter param_value } {
puts $config_file "#define $parameter $param_value\n"
# puts "creating #define [string toupper $parameter] $param_value\n"
}
# args field of the array
proc xadd_extern_fname {initfile oshandle arrayname arg} {
set arrhandle [xget_handle $oshandle "ARRAY" $arrayname]
set elements [xget_handle $arrhandle "ELEMENTS" "*"]
set count 0
set max_count [llength $elements]
foreach ele $elements {
incr count
set arg_value [xget_value $ele "PARAMETER" $arg]
puts $initfile "extern void $arg_value\(\)\;"
}
puts $initfile ""
}
# args is variable no - fields of the array
proc xadd_struct {initfile oshandle structtype structname arrayname args} {
set arrhandle [xget_handle $oshandle "ARRAY" $arrayname]
set elements [xget_handle $arrhandle "ELEMENTS" "*"]
set count 0
set max_count [llength $elements]
puts $initfile "struct $structtype $structname\[$max_count\] = \{"
foreach ele $elements {
incr count
puts -nonewline $initfile "\t\{"
foreach field $args {
set field_value [xget_value $ele "PARAMETER" $field]
# puts "$arrayname ( $count )->$field is $field_value"
puts -nonewline $initfile "$field_value"
if { $field != [lindex $args end] } {
puts -nonewline $initfile ","
}
}
if {$count < $max_count} {
puts $initfile "\},"
} else {
puts $initfile "\}"
}
}
puts $initfile "\}\;"
}
# return the sum of all the arg field values in arrayname
proc get_field_sum {oshandle arrayname arg} {
set arrhandle [xget_handle $oshandle "ARRAY" $arrayname]
set elements [xget_handle $arrhandle "ELEMENTS" "*"]
set count 0
set max_count [llength $elements]
foreach ele $elements {
set field_value [xget_value $ele "PARAMETER" $arg]
set count [expr $field_value+$count]
}
return $count
}
# return the sum of the product of field values in arrayname
proc get_field_product_sum {oshandle arrayname field1 field2} {
set arrhandle [xget_handle $oshandle "ARRAY" $arrayname]
set elements [xget_handle $arrhandle "ELEMENTS" "*"]
set count 0
set max_count [llength $elements]
foreach ele $elements {
set field1_value [xget_value $ele "PARAMETER" $field1]
set field2_value [xget_value $ele "PARAMETER" $field2]
set incr_value [expr $field1_value*$field2_value]
set count [expr $count+$incr_value]
}
return $count
}
proc xhandle_mb_interrupts {} {
set default_interrupt_handler "XNullHandler"
set default_arg "XNULL"
set source_interrupt_handler $default_interrupt_handler
set source_handler_arg $default_arg
# Handle the interrupt pin
set sw_proc_handle [xget_libgen_proc_handle]
set periph [xget_handle $sw_proc_handle "IPINST"]
set source_ports [xget_interrupt_sources $periph]
if {[llength $source_ports] > 1} {
error "Too many interrupting ports on the MicroBlaze. Should only find 1" "" "libgen_error"
return
}
if {[llength $source_ports] == 1} {
set source_port [lindex $source_ports 0]
if {[llength $source_port] != 0} {
set source_port_name [xget_value $source_port "VALUE"]
set source_periph [xget_handle $source_port "PARENT"]
set source_name [xget_value $source_periph "NAME"]
set source_driver [xget_sw_driver_handle_for_ipinst $sw_proc_handle $source_name]
if {[string compare -nocase $source_driver ""] != 0} {
set int_array [xget_handle $source_driver "ARRAY" "interrupt_handler"]
if {[llength $int_array] != 0} {
set int_array_elems [xget_handle $int_array "ELEMENTS" "*"]
if {[llength $int_array_elems] != 0} {
foreach int_array_elem $int_array_elems {
set int_port [xget_value $int_array_elem "PARAMETER" "int_port"]
if {[llength $int_port] != 0} {
if {[string compare -nocase $int_port $source_port_name] == 0 } {
set source_interrupt_handler [xget_value $int_array_elem "PARAMETER" "int_handler"]
set source_handler_arg [xget_value $int_array_elem "PARAMETER" "int_handler_arg"]
if {[string compare -nocase $source_handler_arg DEVICE_ID] == 0 } {
set source_handler_arg [xget_name $source_periph "DEVICE_ID"]
} else {
if {[string compare -nocase "global" [xget_port_type $source_port]] == 0} {
set source_handler_arg $default_arg
} else {
set source_handler_arg [xget_name $source_periph "C_BASEADDR"]
}
}
break
}
}
}
}
}
}
}
}
# Generate microblaze_interrupts_g.c file...
xcreate_mb_intr_config_file $source_interrupt_handler $source_handler_arg
}
proc xcreate_mb_intr_config_file {handler arg} {
set mb_table "MB_InterruptVectorTable"
set filename [file join "../standalone_v3_01_a/src" "microblaze_interrupts_g.c"]
file delete $filename
set config_file [open $filename w]
xprint_generated_header $config_file "Interrupt Handler Table for MicroBlaze Processor"
puts $config_file "#include \"microblaze_interrupts_i.h\""
puts $config_file "#include \"xparameters.h\""
puts $config_file "\n"
puts $config_file [format "extern void %s (void *);" $handler]
puts $config_file "\n/*"
puts $config_file "* The interrupt handler table for microblaze processor"
puts $config_file "*/\n"
puts $config_file [format "%sEntry %s\[\] =" $mb_table $mb_table]
puts $config_file "\{"
puts -nonewline $config_file [format "\{\t%s" $handler]
puts -nonewline $config_file [format ",\n\t(void*) %s\}" $arg]
puts -nonewline $config_file "\n\};"
puts $config_file "\n"
close $config_file
}
# -------------------------------------------
# Tcl procedure xcreate_mb_exc_config file
# -------------------------------------------
proc xcreate_mb_exc_config_file { } {
set hfilename [file join "src" "microblaze_exceptions_g.h"]
file delete $hfilename
set hconfig_file [open $hfilename w]
xprint_generated_header $hconfig_file "Exception Handling Header for MicroBlaze Processor"
puts $hconfig_file "\n"
set sw_proc_handle [xget_libgen_proc_handle]
set hw_proc_handle [xget_handle $sw_proc_handle "IPINST"]
set procver [xget_value $hw_proc_handle "PARAMETER" "HW_VER"]
if { ![mb_has_exceptions $hw_proc_handle]} { ;# NO exceptions are enabled
close $hconfig_file ;# Do not generate any info in either the header or the C file
return
}
puts $hconfig_file "\#define MICROBLAZE_EXCEPTIONS_ENABLED 1"
if { [mb_can_handle_exceptions_in_delay_slots $procver] } {
puts $hconfig_file "#define MICROBLAZE_CAN_HANDLE_EXCEPTIONS_IN_DELAY_SLOTS"
}
close $hconfig_file
}
# --------------------------------------
# Tcl procedure post_generate
# This proc removes from libxil.a the basic
# and standalone BSP versions of
# _interrupt_handler and _hw_exception_handler
# routines
# --------------------------------------
proc post_generate {os_handle} {
set sw_proc_handle [xget_libgen_proc_handle]
set hw_proc_handle [xget_handle $sw_proc_handle "IPINST"]
set proctype [xget_value $hw_proc_handle "OPTION" "IPNAME"]
set procname [xget_value $hw_proc_handle "NAME"]
set procdrv [xget_sw_driver_handle_for_ipinst $sw_proc_handle $procname]
set archiver [xget_value $procdrv "PARAMETER" "archiver"]
if {[string compare -nocase $proctype "microblaze"] == 0 } {
# Remove _interrupt_handler.o from libxil.a for FreeRTOS
set libxil_a [file join .. .. lib libxil.a]
exec $archiver -d $libxil_a _interrupt_handler.o
# We have linkage problems due to how these platforms are defined. Can't do this right now.
# # Remove _exception_handler.o from libxil.a for FreeRTOS
# exec bash -c "$archiver -d ../../lib/libxil.a _exception_handler.o"
# Remove _hw_exception_handler.o from libxil.a for microblaze cores with exception support
if {[mb_has_exceptions $hw_proc_handle]} {
exec $archiver -d ../../lib/libxil.a _hw_exception_handler.o
}
}
}
# --------------------------------------
# Tcl procedure execs_generate
# This proc removes from libxil.a all
# the stuff that we are overriding
# with xilkernel
# We currently override,
# MicroBlaze
# - Dummy _interrupt_hander and _hw_exception_handler
# (in post_generate)
# PPC
# - xvectors.o; sleep.o (IF config_time is true)
# Common to all processors
# - errno.o
# --------------------------------------
proc execs_generate {os_handle} {
set sw_proc_handle [xget_libgen_proc_handle]
set hw_proc_handle [xget_handle $sw_proc_handle "IPINST"]
set proctype [xget_value $hw_proc_handle "OPTION" "IPNAME"]
set procname [xget_value $hw_proc_handle "NAME"]
set procdrv [xget_sw_driver_handle_for_ipinst $sw_proc_handle $procname]
# Remove _interrupt_handler.o from libxil.a for mb-gcc
set archiver [xget_value $procdrv "PARAMETER" "archiver"]
set libxil_a [file join .. .. lib libxil.a]
# exec $archiver -d $libxil_a errno.o
# We have linkage problems due to how these platforms are defined. Can't do this right now.
# exec "$archiver -d $libxil_a microblaze_interrupt_handler.o"
}
# --------------------------------------
# Return true if this MB has
# exception handling support
# --------------------------------------
proc mb_has_exceptions { hw_proc_handle } {
# Check if the following parameters exist on this MicroBlaze's MPD
set ee [xget_value $hw_proc_handle "PARAMETER" "C_UNALIGNED_EXCEPTIONS"]
if { $ee != "" } {
return true
}
set ee [xget_value $hw_proc_handle "PARAMETER" "C_ILL_OPCODE_EXCEPTION"]
if { $ee != "" } {
return true
}
set ee [xget_value $hw_proc_handle "PARAMETER" "C_IOPB_BUS_EXCEPTION"]
if { $ee != "" } {
return true
}
set ee [xget_value $hw_proc_handle "PARAMETER" "C_DOPB_BUS_EXCEPTION"]
if { $ee != "" } {
return true
}
set ee [xget_value $hw_proc_handle "PARAMETER" "C_DIV_BY_ZERO_EXCEPTION"]
if { $ee != "" } {
return true
}
set ee [xget_value $hw_proc_handle "PARAMETER" "C_DIV_ZERO_EXCEPTION"]
if { $ee != "" } {
return true
}
set ee [xget_value $hw_proc_handle "PARAMETER" "C_FPU_EXCEPTION"]
if { $ee != "" } {
return true
}
set ee [xget_value $hw_proc_handle "PARAMETER" "C_USE_MMU"]
if { $ee != "" && $ee != 0 } {
return true
}
return false
}
# --------------------------------------
# Return true if this MB has
# FPU exception handling support
# --------------------------------------
proc mb_has_fpu_exceptions { hw_proc_handle } {
# Check if the following parameters exist on this MicroBlaze's MPD
set ee [xget_value $hw_proc_handle "PARAMETER" "C_FPU_EXCEPTION"]
if { $ee != "" } {
return true
}
return false
}
# --------------------------------------
# Return true if this MB has PVR support
# --------------------------------------
proc mb_has_pvr { hw_proc_handle } {
# Check if the following parameters exist on this MicroBlaze's MPD
set pvr [xget_value $hw_proc_handle "PARAMETER" "C_PVR"]
if { $pvr != "" } {
return true
}
return false
}
# --------------------------------------
# Return true if MB ver 'procver' has
# support for handling exceptions in
# delay slots
# --------------------------------------
proc mb_can_handle_exceptions_in_delay_slots { procver } {
if { [string compare -nocase $procver "5.00.a"] >= 0 } {
return true
} else {
return false
}
}
# --------------------------------------------------------------------------
# Gets all the handles that are memory controller cores.
# --------------------------------------------------------------------------
proc xget_memory_controller_handles { mhs } {
set ret_list ""
# Gets all MhsInsts in the system
set mhsinsts [xget_hw_ipinst_handle $mhs "*"]
# Loop thru each MhsInst and determine if have "ADDR_TYPE = MEMORY" in
# the parameters.
foreach mhsinst $mhsinsts {
# Gets all parameters of the component
set params [xget_hw_parameter_handle $mhsinst "*"]
# Loop thru each param and find tag "ADDR_TYPE = MEMORY"
foreach param $params {
if {$param == 0} {
continue
} elseif {$param == ""} {
continue
}
set addrTypeValue [ xget_hw_subproperty_value $param "ADDR_TYPE" ]
# Found tag! Add MhsInst to list and break to go to next MhsInst
if {[string compare -nocase $addrTypeValue "MEMORY"] == 0} {
lappend ret_list $mhsinst
break
}
}
}
return $ret_list
}

@ -1,4 +0,0 @@
The necessary files are copied to this BSP directory structure by executing
the CreateProjectDirectoryStructure.bat batch file located in the
FreeRTOS\\Demo\MicroBlaze_Spartan-6_EthernetLite\SDKProjects\RTOSDemoSource
folder.

@ -1,435 +0,0 @@
The FreeRTOS.org source code is licensed by the modified GNU General Public
License (GPL) text provided below. The FreeRTOS download also includes
demo application source code, some of which is provided by third parties
AND IS LICENSED SEPARATELY FROM FREERTOS.ORG.
For the avoidance of any doubt refer to the comment included at the top
of each source and header file for license and copyright information.
This is a list of files for which Real Time Engineers Ltd are not the
copyright owner and are NOT COVERED BY THE GPL.
1) Various header files provided by silicon manufacturers and tool vendors
that define processor specific memory addresses and utility macros.
Permission has been granted by the various copyright holders for these
files to be included in the FreeRTOS download. Users must ensure license
conditions are adhered to for any use other than compilation of the
FreeRTOS demo applications.
2) The uIP TCP/IP stack the copyright of which is held by Adam Dunkels.
Users must ensure the open source license conditions stated at the top
of each uIP source file is understood and adhered to.
3) The lwIP TCP/IP stack the copyright of which is held by the Swedish
Institute of Computer Science. Users must ensure the open source license
conditions stated at the top of each lwIP source file is understood and
adhered to.
4) Various peripheral driver source files and binaries provided by silicon
manufacturers and tool vendors. Permission has been granted by the
various copyright holders for these files to be included in the FreeRTOS
download. Users must ensure license conditions are adhered to for any
use other than compilation of the FreeRTOS demo applications.
5) The files contained within FreeRTOS\Demo\WizNET_DEMO_TERN_186\tern_code,
which are slightly modified versions of code provided by and copyright to
Tern Inc.
Errors and omissions should be reported to Richard Barry, contact details for
whom can be obtained from http://www.FreeRTOS.org.
The GPL license text follows.
A special exception to the GPL is included to allow you to distribute a
combined work that includes FreeRTOS without being obliged to provide
the source code for any proprietary components. See the licensing section
of http://www.FreeRTOS.org for full details. The exception text is also
included at the bottom of this file.
--------------------------------------------------------------------
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License** as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Library General
Public License instead of this License.
----------------------------------------------------------------------------
The FreeRTOS GPL Exception Text:
Any FreeRTOS source code, whether modified or in it's original release form,
or whether in whole or in part, can only be distributed by you under the terms
of the GNU General Public License plus this exception. An independent module is
a module which is not derived from or based on FreeRTOS.
Clause 1:
Linking FreeRTOS statically or dynamically with other modules is making a
combined work based on FreeRTOS. Thus, the terms and conditions of the GNU
General Public License cover the whole combination.
As a special exception, the copyright holder of FreeRTOS gives you permission
to link FreeRTOS with independent modules that communicate with FreeRTOS
solely through the FreeRTOS API interface, regardless of the license terms of
these independent modules, and to copy and distribute the resulting combined
work under terms of your choice, provided that
+ Every copy of the combined work is accompanied by a written statement that
details to the recipient the version of FreeRTOS used and an offer by yourself
to provide the FreeRTOS source code (including any modifications you may have
made) should the recipient request it.
+ The combined work is not itself an RTOS, scheduler, kernel or related product.
+ The independent modules add significant and primary functionality to FreeRTOS
and do not merely extend the existing functionality already present in FreeRTOS.
Clause 2:
FreeRTOS may not be used for any competitive or comparative purpose, including the
publication of any form of run time or compile time metric, without the express
permission of Real Time Engineers Ltd. (this is the norm within the industry and
is intended to ensure information accuracy).

@ -1,77 +0,0 @@
##############################################################################
#
# Copyright (c) 2010 Xilinx, Inc. All rights reserved.
#
# Xilinx, Inc.
# XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION "AS IS" AS A
# COURTESY TO YOU. BY PROVIDING THIS DESIGN, CODE, OR INFORMATION AS
# ONE POSSIBLE IMPLEMENTATION OF THIS FEATURE, APPLICATION OR
# STANDARD, XILINX IS MAKING NO REPRESENTATION THAT THIS IMPLEMENTATION
# IS FREE FROM ANY CLAIMS OF INFRINGEMENT, AND YOU ARE RESPONSIBLE
# FOR OBTAINING ANY RIGHTS YOU MAY REQUIRE FOR YOUR IMPLEMENTATION.
# XILINX EXPRESSLY DISCLAIMS ANY WARRANTY WHATSOEVER WITH RESPECT TO
# THE ADEQUACY OF THE IMPLEMENTATION, INCLUDING BUT NOT LIMITED TO
# ANY WARRANTIES OR REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE
# FROM CLAIMS OF INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY
# AND FITNESS FOR A PARTICULAR PURPOSE.
#
# Top level Makefile
#
# $Id: $
#
##############################################################################
#
# Processor architecture
# microblaze
#
ARCH = microblaze
SYSTEMDIR = ../../..
TOPDIR = .
ARCH_PREFIX = mb
#
# gnu tools for Makefile
#
CC = $(ARCH_PREFIX)-gcc
AR = $(ARCH_PREFIX)-ar
CP = cp
#
# Compiler, linker and other options.
#
CFLAGS = ${COMPILER_FLAGS} ${EXTRA_COMPILER_FLAGS}
#
# System project directories.
#
LIBDIR = $(SYSTEMDIR)/lib
INCLUDEDIR = $(SYSTEMDIR)/include
# Kernel library.
LIBFREERTOS = ${LIBDIR}/libfreertos.a
INCLUDEFILES = ${TOPDIR}/*.h
INCLUDES = -I$(INCLUDEDIR) \
-I${TOPDIR}
KERNEL_AR_OBJS = *.c *.S
OUTS = *.o
libs: $(KERNEL_AR_OBJS)
@echo "Compiling FreeRTOS"
@$(COMPILER) $(COMPILER_FLAGS) $(EXTRA_COMPILER_FLAGS) $(INCLUDES) $^
@$(ARCHIVER) -r ${LIBFREERTOS} ${OUTS}
make clean
.PHONY: include
include:
${CP} ${INCLUDEFILES} ${INCLUDEDIR}
clean:
rm -rf ${OUTS}

@ -1,19 +0,0 @@
Each real time kernel port consists of three files that contain the core kernel
components and are common to every port, and one or more files that are
specific to a particular microcontroller and/or compiler.
+ The FreeRTOS/Source/Portable/MemMang directory contains the three sample
memory allocators as described on the http://www.FreeRTOS.org WEB site.
+ The other directories each contain files specific to a particular
microcontroller or compiler.
For example, if you are interested in the GCC port for the ATMega323
microcontroller then the port specific files are contained in
FreeRTOS/Source/Portable/GCC/ATMega323 directory. If this is the only
port you are interested in then all the other directories can be
ignored.

@ -1,17 +0,0 @@
Each real time kernel port consists of three files that contain the core kernel
components and are common to every port, and one or more files that are
specific to a particular microcontroller and or compiler.
+ The FreeRTOS/Source directory contains the three files that are common to
every port - list.c, queue.c and tasks.c. The kernel is contained within these
three files. croutine.c implements the optional co-routine functionality - which
is normally only used on very memory limited systems.
+ The FreeRTOS/Source/Portable directory contains the files that are specific to
a particular microcontroller and or compiler.
+ The FreeRTOS/Source/include directory contains the real time kernel header
files.
See the readme file in the FreeRTOS/Source/Portable directory for more
information.

@ -1,19 +0,0 @@
The download includes the kernel source code, and a demo application for EVERY
RTOS port. See http://www.freertos.org/a00017.html for full details of the
directory structure and information on locating the files you require.
The easiest way to use FreeRTOS is start start with one of the demo application
projects. Once this is running the project can be modified to include your own
source files. This way the correct files and compiler options will be
automatically included in your application.
+ The Source directory contains the real time kernel source files for every
port. The kernel itself is only 3 files.
+ The Demo directory contains the demo application source files for every
port.
+ The TraceCon directory contains the trace visualisation exe file.
See the readme files in the respective directories for further information.

@ -1,9 +0,0 @@
PARAMETER VERSION = 2.2.0
BEGIN OS
PARAMETER OS_NAME = freertos
PARAMETER STDIN = *
PARAMETER STDOUT = *
END

@ -1,127 +0,0 @@
proc swapp_get_name {} {
return "FreeRTOS Hello World";
}
proc swapp_get_description {} {
return "Let's say 'Hello World' in FreeRTOS.";
}
proc get_os {} {
set oslist [xget_sw_modules "type" "os"];
set os [lindex $oslist 0];
if { $os == "" } {
error "No Operating System specified in the Board Support Package.";
}
return $os;
}
proc get_stdout {} {
set os [get_os];
set stdout [xget_sw_module_parameter $os "STDOUT"];
return $stdout;
}
proc check_stdout_hw {} {
set uartlites [xget_ips "type" "uartlite"];
set uart16550s [xget_ips "type" "uart16550"];
if { ([llength $uartlites] == 0) && ([llength $uart16550s] == 0) } {
# Check for MDM-Uart peripheral. The MDM would be listed as a peripheral
# only if it has a UART interface. So no further check is required
set mdmlist [xget_ips "type" "mdm"]
if { [llength $mdmlist] == 0 } {
error "This application requires a Uart IP in the hardware."
}
}
}
proc check_stdout_sw {} {
set stdout [get_stdout];
if { $stdout == "none" } {
error "The STDOUT parameter is not set on the OS. Hello World requires stdout to be set."
}
}
proc get_mem_size { memlist } {
return [lindex $memlist 4];
}
proc require_memory {memsize} {
set imemlist [xget_memory_ranges "access_type" "I"];
set idmemlist [xget_memory_ranges "access_type" "ID"];
set dmemlist [xget_memory_ranges "access_type" "D"];
set memlist [concat $imemlist $idmemlist $dmemlist];
while { [llength $memlist] > 3 } {
set mem [lrange $memlist 0 4];
set memlist [lreplace $memlist 0 4];
if { [get_mem_size $mem] >= $memsize } {
return 1;
}
}
error "This application requires atleast $memsize bytes of memory.";
}
proc swapp_is_supported_hw {} {
# check for uart peripheral
check_stdout_hw;
# require about 1M of memory
require_memory "1000000";
return 1;
}
proc swapp_is_supported_sw {} {
# check for stdout being set
check_stdout_sw;
return 1;
}
proc generate_stdout_config { fid } {
set stdout [get_stdout];
# if stdout is uartlite, we don't have to generate anything
set stdout_type [xget_ip_attribute "type" $stdout];
if { [regexp -nocase "uartlite" $stdout_type] || [string match -nocase "mdm" $stdout_type] } {
return;
} elseif { [regexp -nocase "uart16550" $stdout_type] } {
# mention that we have a 16550
puts $fid "#define STDOUT_IS_16550";
# and note down its base address
set prefix "XPAR_";
set postfix "_BASEADDR";
set stdout_baseaddr_macro $prefix$stdout$postfix;
set stdout_baseaddr_macro [string toupper $stdout_baseaddr_macro];
puts $fid "#define STDOUT_BASEADDR $stdout_baseaddr_macro";
}
}
# depending on the type of os (standalone|xilkernel), choose
# the correct source files
proc swapp_generate {} {
# cleanup this file for writing
set fid [open "platform_config.h" "w+"];
puts $fid "#ifndef __PLATFORM_CONFIG_H_";
puts $fid "#define __PLATFORM_CONFIG_H_\n";
# if we have a uart16550 as stdout, then generate some config for that
generate_stdout_config $fid;
puts $fid "#endif";
close $fid;
}
proc swapp_get_linker_constraints {} {
# we need a 4k heap
return "stack 40k heap 40k";
}

@ -1,407 +0,0 @@
/*
FreeRTOS V8.2.1 - Copyright (C) 2015 Real Time Engineers Ltd.
All rights reserved
VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.
This file is part of the FreeRTOS distribution.
FreeRTOS is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License (version 2) as published by the
Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception.
***************************************************************************
>>! NOTE: The modification to the GPL is included to allow you to !<<
>>! distribute a combined work that includes FreeRTOS without being !<<
>>! obliged to provide the source code for proprietary components !<<
>>! outside of the FreeRTOS kernel. !<<
***************************************************************************
FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. Full license text is available on the following
link: http://www.freertos.org/a00114.html
***************************************************************************
* *
* FreeRTOS provides completely free yet professionally developed, *
* robust, strictly quality controlled, supported, and cross *
* platform software that is more than just the market leader, it *
* is the industry's de facto standard. *
* *
* Help yourself get started quickly while simultaneously helping *
* to support the FreeRTOS project by purchasing a FreeRTOS *
* tutorial book, reference manual, or both: *
* http://www.FreeRTOS.org/Documentation *
* *
***************************************************************************
http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading
the FAQ page "My application does not run, what could be wrong?". Have you
defined configASSERT()?
http://www.FreeRTOS.org/support - In return for receiving this top quality
embedded software for free we request you assist our global community by
participating in the support forum.
http://www.FreeRTOS.org/training - Investing in training allows your team to
be as productive as possible as early as possible. Now you can receive
FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers
Ltd, and the world's leading authority on the world's leading RTOS.
http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,
including FreeRTOS+Trace - an indispensable productivity tool, a DOS
compatible FAT file system, and our tiny thread aware UDP/IP stack.
http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate.
Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS.
http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High
Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS
licenses offer ticketed support, indemnification and commercial middleware.
http://www.SafeRTOS.com - High Integrity Systems also provide a safety
engineered and independently SIL3 certified version for use in safety and
mission critical applications that require provable dependability.
1 tab == 4 spaces!
*/
/*
* FreeRTOS-main.c (this file) defines a very simple demo that creates two tasks,
* one queue, and one timer.
*
* The main() Function:
* main() creates one software timer, one queue, and two tasks. It then starts
* the scheduler.
*
* The Queue Send Task:
* The queue send task is implemented by the prvQueueSendTask() function in
* this file. prvQueueSendTask() sits in a loop that causes it to repeatedly
* block for 200 milliseconds, before sending the value 100 to the queue that
* was created within main(). Once the value is sent, the task loops back
* around to block for another 200 milliseconds.
*
* The Queue Receive Task:
* The queue receive task is implemented by the prvQueueReceiveTask() function
* in this file. prvQueueReceiveTask() sits in a loop that causes it to
* repeatedly attempt to read data from the queue that was created within
* main(). When data is received, the task checks the value of the data, and
* if the value equals the expected 100, increments the ulRecieved variable.
* The 'block time' parameter passed to the queue receive function specifies
* that the task should be held in the Blocked state indefinitely to wait for
* data to be available on the queue. The queue receive task will only leave
* the Blocked state when the queue send task writes to the queue. As the queue
* send task writes to the queue every 200 milliseconds, the queue receive task
* leaves the Blocked state every 200 milliseconds, and therefore toggles the LED
* every 200 milliseconds.
*
* The Software Timer:
* The software timer is configured to be an "auto reset" timer. Its callback
* function simply increments the ulCallback variable each time it executes.
*/
/* Kernel includes. */
#include "FreeRTOS.h"
#include "task.h"
#include "queue.h"
#include "timers.h"
/* BSP includes. */
#include "xtmrctr.h"
/* Priorities at which the tasks are created. */
#define mainQUEUE_RECEIVE_TASK_PRIORITY ( tskIDLE_PRIORITY + 2 )
#define mainQUEUE_SEND_TASK_PRIORITY ( tskIDLE_PRIORITY + 1 )
/* The rate at which data is sent to the queue, specified in milliseconds, and
converted to ticks using the portTICK_PERIOD_MS constant. */
#define mainQUEUE_SEND_FREQUENCY_MS ( 200 / portTICK_PERIOD_MS )
/* The number of items the queue can hold. This is 1 as the receive task
will remove items as they are added because it has the higher priority, meaning
the send task should always find the queue empty. */
#define mainQUEUE_LENGTH ( 1 )
/* A block time of 0 simply means, "don't block". */
#define mainDONT_BLOCK ( TickType_t ) 0
/* The following constants describe the timer instance used in this application.
They are defined here such that a user can easily change all the needed parameters
in one place. */
#define TIMER_DEVICE_ID XPAR_TMRCTR_0_DEVICE_ID
#define TIMER_FREQ_HZ XPAR_TMRCTR_0_CLOCK_FREQ_HZ
#define TIMER_INTR_ID XPAR_INTC_0_TMRCTR_0_VEC_ID
/*-----------------------------------------------------------*/
/*
* The tasks as described in the comments at the top of this file.
*/
static void prvQueueReceiveTask( void *pvParameters );
static void prvQueueSendTask( void *pvParameters );
/*
* The LED timer callback function. This does nothing but increment the
* ulCallback variable each time it executes.
*/
static void vSoftwareTimerCallback( TimerHandle_t xTimer );
/*-----------------------------------------------------------*/
/* The queue used by the queue send and queue receive tasks. */
static QueueHandle_t xQueue = NULL;
/* The LED software timer. This uses vSoftwareTimerCallback() as its callback
function. */
static TimerHandle_t xExampleSoftwareTimer = NULL;
/*-----------------------------------------------------------*/
/* Structures that hold the state of the various peripherals used by this demo.
These are used by the Xilinx peripheral driver API functions. */
static XTmrCtr xTimer0Instance;
/* The variable that is incremented each time the receive task receives the
value 100. */
static unsigned long ulReceived = 0UL;
/* The variable that is incremented each time the software time callback function
executes. */
static unsigned long ulCallback = 0UL;
/*-----------------------------------------------------------*/
int main( void )
{
/***************************************************************************
See http://www.FreeRTOS.org for full information on FreeRTOS, including
an API reference, pdf API reference manuals, and FreeRTOS tutorial books.
See http://www.freertos.org/Free-RTOS-for-Xilinx-MicroBlaze-on-Spartan-6-FPGA.html
for comprehensive standalone FreeRTOS for MicroBlaze demos.
***************************************************************************/
/* Create the queue used by the queue send and queue receive tasks as
described in the comments at the top of this file. */
xQueue = xQueueCreate( mainQUEUE_LENGTH, sizeof( unsigned long ) );
/* Sanity check that the queue was created. */
configASSERT( xQueue );
/* Start the two tasks as described in the comments at the top of this
file. */
xTaskCreate( prvQueueReceiveTask, "Rx", configMINIMAL_STACK_SIZE, NULL, mainQUEUE_RECEIVE_TASK_PRIORITY, NULL );
xTaskCreate( prvQueueSendTask, "TX", configMINIMAL_STACK_SIZE, NULL, mainQUEUE_SEND_TASK_PRIORITY, NULL );
/* Create the software timer */
xExampleSoftwareTimer = xTimerCreate( "SoftwareTimer", /* A text name, purely to help debugging. */
( 5000 / portTICK_PERIOD_MS ),/* The timer period, in this case 5000ms (5s). */
pdTRUE, /* This is an auto-reload timer, so xAutoReload is set to pdTRUE. */
( void * ) 0, /* The ID is not used, so can be set to anything. */
vSoftwareTimerCallback /* The callback function that switches the LED off. */
);
/* Start the software timer. */
xTimerStart( xExampleSoftwareTimer, mainDONT_BLOCK );
/* Start the tasks and timer running. */
vTaskStartScheduler();
/* If all is well, the scheduler will now be running, and the following line
will never be reached. If the following line does execute, then there was
insufficient FreeRTOS heap memory available for the idle and/or timer tasks
to be created. See the memory management section on the FreeRTOS web site
for more details. */
for( ;; );
}
/*-----------------------------------------------------------*/
/* The callback is executed when the software timer expires. */
static void vSoftwareTimerCallback( TimerHandle_t xTimer )
{
/* Just increment the ulCallbac variable. */
ulCallback++;
}
/*-----------------------------------------------------------*/
static void prvQueueSendTask( void *pvParameters )
{
TickType_t xNextWakeTime;
const unsigned long ulValueToSend = 100UL;
/* Initialise xNextWakeTime - this only needs to be done once. */
xNextWakeTime = xTaskGetTickCount();
for( ;; )
{
/* Place this task in the blocked state until it is time to run again.
The block time is specified in ticks, the constant used converts ticks
to ms. While in the Blocked state this task will not consume any CPU
time. */
vTaskDelayUntil( &xNextWakeTime, mainQUEUE_SEND_FREQUENCY_MS );
/* Send to the queue - causing the queue receive task to unblock and
toggle an LED. 0 is used as the block time so the sending operation
will not block - it shouldn't need to block as the queue should always
be empty at this point in the code. */
xQueueSend( xQueue, &ulValueToSend, mainDONT_BLOCK );
}
}
/*-----------------------------------------------------------*/
static void prvQueueReceiveTask( void *pvParameters )
{
unsigned long ulReceivedValue;
for( ;; )
{
/* Wait until something arrives in the queue - this task will block
indefinitely provided INCLUDE_vTaskSuspend is set to 1 in
FreeRTOSConfig.h. */
xQueueReceive( xQueue, &ulReceivedValue, portMAX_DELAY );
/* To get here something must have been received from the queue, but
is it the expected value? If it is, increment the ulReceived variable. */
if( ulReceivedValue == 100UL )
{
ulReceived++;
}
}
}
/*-----------------------------------------------------------*/
void vApplicationMallocFailedHook( void )
{
/* vApplicationMallocFailedHook() will only be called if
configUSE_MALLOC_FAILED_HOOK is set to 1 in FreeRTOSConfig.h. It is a hook
function that will get called if a call to pvPortMalloc() fails.
pvPortMalloc() is called internally by the kernel whenever a task, queue or
semaphore is created. It is also called by various parts of the demo
application. If heap_1.c or heap_2.c are used, then the size of the heap
available to pvPortMalloc() is defined by configTOTAL_HEAP_SIZE in
FreeRTOSConfig.h, and the xPortGetFreeHeapSize() API function can be used
to query the size of free heap space that remains (although it does not
provide information on how the remaining heap might be fragmented). */
taskDISABLE_INTERRUPTS();
for( ;; );
}
/*-----------------------------------------------------------*/
void vApplicationStackOverflowHook( TaskHandle_t *pxTask, signed char *pcTaskName )
{
( void ) pcTaskName;
( void ) pxTask;
/* vApplicationStackOverflowHook() will only be called if
configCHECK_FOR_STACK_OVERFLOW is set to either 1 or 2. The handle and name
of the offending task will be passed into the hook function via its
parameters. However, when a stack has overflowed, it is possible that the
parameters will have been corrupted, in which case the pxCurrentTCB variable
can be inspected directly. */
taskDISABLE_INTERRUPTS();
for( ;; );
}
/*-----------------------------------------------------------*/
void vApplicationIdleHook( void )
{
/* vApplicationIdleHook() will only be called if configUSE_IDLE_HOOK is set
to 1 in FreeRTOSConfig.h. It will be called on each iteration of the idle
task. It is essential that code added to this hook function never attempts
to block in any way (for example, call xQueueReceive() with a block time
specified, or call vTaskDelay()). If the application makes use of the
vTaskDelete() API function (as this demo application does) then it is also
important that vApplicationIdleHook() is permitted to return to its calling
function, because it is the responsibility of the idle task to clean up
memory allocated by the kernel to any task that has since been deleted. */
}
/*-----------------------------------------------------------*/
void vApplicationTickHook( void )
{
/* vApplicationTickHook() will only be called if configUSE_TICK_HOOK is set
to 1 in FreeRTOSConfig.h. It executes from an interrupt context so must
not use any FreeRTOS API functions that do not end in ...FromISR().
This simple blinky demo does not use the tick hook, but a tick hook is
required to be defined as the blinky and full demos share a
FreeRTOSConfig.h header file. */
}
/*-----------------------------------------------------------*/
/* This is an application defined callback function used to install the tick
interrupt handler. It is provided as an application callback because the kernel
will run on lots of different MicroBlaze and FPGA configurations - there could
be multiple timer instances in the hardware platform and the users can chose to
use any one of them. This example uses Timer 0. If that is available in your
hardware platform then this example callback implementation should not require
modification. The definitions for the timer instance used are at the top of this
file so that users can change them at one place based on the timer instance they
use. The name of the interrupt handler that should be installed is vPortTickISR(),
which the function below declares as an extern. */
void vApplicationSetupTimerInterrupt( void )
{
portBASE_TYPE xStatus;
const unsigned char ucTimerCounterNumber = ( unsigned char ) 0U;
const unsigned long ulCounterValue = ( ( TIMER_FREQ_HZ / configTICK_RATE_HZ ) - 1UL );
extern void vPortTickISR( void *pvUnused );
/* Initialise the timer/counter. */
xStatus = XTmrCtr_Initialize( &xTimer0Instance, TIMER_DEVICE_ID );
if( xStatus == XST_SUCCESS )
{
/* Install the tick interrupt handler as the timer ISR.
*NOTE* The xPortInstallInterruptHandler() API function must be used for
this purpose. */
xStatus = xPortInstallInterruptHandler( TIMER_INTR_ID, vPortTickISR, NULL );
}
if( xStatus == pdPASS )
{
/* Enable the timer interrupt in the interrupt controller.
*NOTE* The vPortEnableInterrupt() API function must be used for this
purpose. */
vPortEnableInterrupt( TIMER_INTR_ID );
/* Configure the timer interrupt handler. */
XTmrCtr_SetHandler( &xTimer0Instance, ( void * ) vPortTickISR, NULL );
/* Set the correct period for the timer. */
XTmrCtr_SetResetValue( &xTimer0Instance, ucTimerCounterNumber, ulCounterValue );
/* Enable the interrupts. Auto-reload mode is used to generate a
periodic tick. Note that interrupts are disabled when this function is
called, so interrupts will not start to be processed until the first
task has started to run. */
XTmrCtr_SetOptions( &xTimer0Instance, ucTimerCounterNumber, ( XTC_INT_MODE_OPTION | XTC_AUTO_RELOAD_OPTION | XTC_DOWN_COUNT_OPTION ) );
/* Start the timer. */
XTmrCtr_Start( &xTimer0Instance, ucTimerCounterNumber );
}
/* Sanity check that the function executed as expected. */
configASSERT( ( xStatus == pdPASS ) );
}
/*-----------------------------------------------------------*/
/* This is an application defined callback function used to clear whichever
interrupt was installed by the the vApplicationSetupTimerInterrupt() callback
function - in this case the interrupt generated by the AXI timer. It is
provided as an application callback because the kernel will run on lots of
different MicroBlaze and FPGA configurations - not all of which will have the
same timer peripherals defined or available. This example uses the AXI Timer 0.
If that is available on your hardware platform then this example callback
implementation should not require modification provided the example definition
of vApplicationSetupTimerInterrupt() is also not modified. */
void vApplicationClearTimerInterrupt( void )
{
unsigned long ulCSR;
/* Clear the timer interrupt */
ulCSR = XTmrCtr_GetControlStatusReg( XPAR_TMRCTR_0_BASEADDR, 0 );
XTmrCtr_SetControlStatusReg( XPAR_TMRCTR_0_BASEADDR, 0, ulCSR );
}
/*-----------------------------------------------------------*/

@ -1,32 +0,0 @@
// BMM LOC annotation file.
//
// Release 13.1 - Data2MEM O.40d, build 1.9 Aug 19, 2010
// Copyright (c) 1995-2011 Xilinx, Inc. All rights reserved.
///////////////////////////////////////////////////////////////////////////////
//
// Processor 'microblaze_0', ID 100, memory map.
//
///////////////////////////////////////////////////////////////////////////////
ADDRESS_MAP microblaze_0 MICROBLAZE-LE 100
///////////////////////////////////////////////////////////////////////////////
//
// Processor 'microblaze_0' address space 'microblaze_0_bram_block_combined' 0x00000000:0x00001FFF (8 KBytes).
//
///////////////////////////////////////////////////////////////////////////////
ADDRESS_SPACE microblaze_0_bram_block_combined RAMB16 [0x00000000:0x00001FFF]
BUS_BLOCK
microblaze_0_bram_block/microblaze_0_bram_block/ramb16bwer_0 [31:24] INPUT = microblaze_0_bram_block_combined_0.mem PLACED = X1Y30;
microblaze_0_bram_block/microblaze_0_bram_block/ramb16bwer_1 [23:16] INPUT = microblaze_0_bram_block_combined_1.mem PLACED = X1Y32;
microblaze_0_bram_block/microblaze_0_bram_block/ramb16bwer_2 [15:8] INPUT = microblaze_0_bram_block_combined_2.mem PLACED = X0Y30;
microblaze_0_bram_block/microblaze_0_bram_block/ramb16bwer_3 [7:0] INPUT = microblaze_0_bram_block_combined_3.mem PLACED = X0Y32;
END_BUS_BLOCK;
END_ADDRESS_SPACE;
END_ADDRESS_MAP;

@ -1,180 +0,0 @@
<?xml version="1.0" standalone="no"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:exsl="http://exslt.org/common"
xmlns:dyn="http://exslt.org/dynamic"
xmlns:math="http://exslt.org/math"
xmlns:xlink="http://www.w3.org/1999/xlink"
extension-element-prefixes="math dyn exsl xlink">
<!--
<xsl:output method="xml"
version="1.0"
encoding="UTF-8" indent="yes"
doctype-public="-//W3C//DTD SVG Tiny 1.1//EN"
doctype-system="http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd"/>
-->
<!--
======================================================
BUS INTERFACE DIMENSIONS
======================================================
-->
<xsl:variable name="BLKD_BIF_H" select="16"/>
<xsl:variable name="BLKD_BIF_W" select="32"/>
<xsl:variable name="BLKD_BIFC_H" select="24"/>
<xsl:variable name="BLKD_BIFC_W" select="24"/>
<xsl:variable name="BLKD_BIFC_dx" select="ceiling($BLKD_BIFC_W div 5)"/>
<xsl:variable name="BLKD_BIFC_dy" select="ceiling($BLKD_BIFC_H div 5)"/>
<xsl:variable name="BLKD_BIFC_Hi" select="($BLKD_BIFC_H - ($BLKD_BIFC_dy * 2))"/>
<xsl:variable name="BLKD_BIFC_Wi" select="($BLKD_BIFC_W - ($BLKD_BIFC_dx * 2))"/>
<xsl:variable name="BLKD_BIF_TYPE_ONEWAY" select="'OneWay'"/>
<!--
======================================================
GLOLBAL BUS INTERFACE DIMENSIONS
(Define for global MdtSVG_BifShapes.xsl which is used across all
diagrams to define the shapes of bifs the same across all diagrams)
======================================================
-->
<xsl:variable name="BIF_H" select="$BLKD_BIF_H"/>
<xsl:variable name="BIF_W" select="$BLKD_BIF_W"/>
<xsl:variable name="BIFC_H" select="$BLKD_BIFC_H"/>
<xsl:variable name="BIFC_W" select="$BLKD_BIFC_W"/>
<xsl:variable name="BIFC_dx" select="$BLKD_BIFC_dx"/>
<xsl:variable name="BIFC_dy" select="$BLKD_BIFC_dy"/>
<xsl:variable name="BIFC_Hi" select="$BLKD_BIFC_Hi"/>
<xsl:variable name="BIFC_Wi" select="$BLKD_BIFC_Wi"/>
<!--
======================================================
BUS DIMENSIONS
======================================================
-->
<xsl:variable name="BLKD_P2P_BUS_W" select="($BLKD_BUS_ARROW_H - ($BLKD_BUS_ARROW_G * 2))"/>
<xsl:variable name="BLKD_SBS_LANE_H" select="($BLKD_MOD_H + ($BLKD_BIF_H * 2))"/>
<xsl:variable name="BLKD_BUS_LANE_W" select="($BLKD_BIF_W + ($BLKD_MOD_BIF_GAP_H * 2))"/>
<xsl:variable name="BLKD_BUS_ARROW_W" select="ceiling($BLKD_BIFC_W div 3)"/>
<xsl:variable name="BLKD_BUS_ARROW_H" select="ceiling($BLKD_BIFC_H div 2)"/>
<xsl:variable name="BLKD_BUS_ARROW_G" select="ceiling($BLKD_BIFC_W div 12)"/>
<!--
======================================================
IO PORT DIMENSIONS
======================================================
-->
<xsl:variable name="BLKD_IOP_H" select="16"/>
<xsl:variable name="BLKD_IOP_W" select="16"/>
<xsl:variable name="BLKD_IOP_SPC" select="12"/>
<!--
======================================================
INTERRUPT NOTATION DIMENSIONS
======================================================
-->
<xsl:variable name="BLKD_INTR_W" select="18"/>
<xsl:variable name="BLKD_INTR_H" select="18"/>
<!--
======================================================
MODULE DIMENSIONS
======================================================
-->
<xsl:variable name="BLKD_MOD_IO_GAP" select="8"/>
<xsl:variable name="BLKD_MOD_W" select="( ($BLKD_BIF_W * 2) + ($BLKD_MOD_BIF_GAP_H * 1) + ($BLKD_MOD_LANE_W * 2))"/>
<xsl:variable name="BLKD_MOD_H" select="($BLKD_MOD_LABEL_H + ($BLKD_BIF_H * 1) + ($BLKD_MOD_BIF_GAP_V * 1) + ($BLKD_MOD_LANE_H * 2))"/>
<xsl:variable name="BLKD_MOD_BIF_GAP_H" select="ceiling($BLKD_BIF_H div 4)"/>
<xsl:variable name="BLKD_MOD_BIF_GAP_V" select="ceiling($BLKD_BIFC_H div 2)"/>
<xsl:variable name="BLKD_MOD_LABEL_W" select="(($BLKD_BIF_W * 2) + $BLKD_MOD_BIF_GAP_H)"/>
<xsl:variable name="BLKD_MOD_LABEL_H" select="(($BLKD_BIF_H * 2) + ceiling($BLKD_BIF_H div 3))"/>
<xsl:variable name="BLKD_MOD_LANE_W" select="ceiling($BLKD_BIF_W div 3)"/>
<xsl:variable name="BLKD_MOD_LANE_H" select="ceiling($BLKD_BIF_H div 4)"/>
<xsl:variable name="BLKD_MOD_EDGE_W" select="ceiling($BLKD_MOD_LANE_W div 2)"/>
<xsl:variable name="BLKD_MOD_SHAPES_G" select="($BLKD_BIF_W + $BLKD_BIF_W)"/>
<xsl:variable name="BLKD_MOD_BKTLANE_H" select="$BLKD_BIF_H"/>
<xsl:variable name="BLKD_MOD_BKTLANE_W" select="$BLKD_BIF_H"/>
<xsl:variable name="BLKD_MOD_BUCKET_G" select="ceiling($BLKD_BIF_W div 2)"/>
<xsl:variable name="BLKD_MPMC_MOD_H" select="(($BLKD_BIF_H * 1) + ($BLKD_MOD_BIF_GAP_V * 2) + ($BLKD_MOD_LANE_H * 2))"/>
<!--
======================================================
GLOBAL DIAGRAM DIMENSIONS
======================================================
-->
<xsl:variable name="BLKD_IORCHAN_H" select="$BLKD_BIF_H"/>
<xsl:variable name="BLKD_IORCHAN_W" select="$BLKD_BIF_H"/>
<xsl:variable name="BLKD_PRTCHAN_H" select="($BLKD_BIF_H * 2) + ceiling($BLKD_BIF_H div 2)"/>
<xsl:variable name="BLKD_PRTCHAN_W" select="($BLKD_BIF_H * 2) + ceiling($BLKD_BIF_H div 2) + 8"/>
<xsl:variable name="BLKD_DRAWAREA_MIN_W" select="(($BLKD_MOD_BKTLANE_W * 2) + (($BLKD_MOD_W * 3) + ($BLKD_MOD_BUCKET_G * 2)))"/>
<xsl:variable name="BLKD_INNER_X" select="($BLKD_PRTCHAN_W + $BLKD_IORCHAN_W + $BLKD_INNER_GAP)"/>
<xsl:variable name="BLKD_INNER_Y" select="($BLKD_PRTCHAN_H + $BLKD_IORCHAN_H + $BLKD_INNER_GAP)"/>
<xsl:variable name="BLKD_INNER_GAP" select="ceiling($BLKD_MOD_W div 2)"/>
<xsl:variable name="BLKD_SBS2IP_GAP" select="$BLKD_MOD_H"/>
<xsl:variable name="BLKD_BRIDGE_GAP" select="($BLKD_BUS_LANE_W * 4)"/>
<xsl:variable name="BLKD_IP2UNK_GAP" select="$BLKD_MOD_H"/>
<xsl:variable name="BLKD_PROC2SBS_GAP" select="($BLKD_BIF_H * 2)"/>
<xsl:variable name="BLKD_IOR2PROC_GAP" select="$BLKD_BIF_W"/>
<xsl:variable name="BLKD_MPMC2PROC_GAP" select="($BLKD_BIF_H * 2)"/>
<xsl:variable name="BLKD_SPECS2KEY_GAP" select="$BLKD_BIF_W"/>
<xsl:variable name="BLKD_DRAWAREA2KEY_GAP" select="ceiling($BLKD_BIF_W div 3)"/>
<xsl:variable name="BLKD_KEY_H" select="250"/>
<xsl:variable name="BLKD_KEY_W" select="($BLKD_DRAWAREA_MIN_W + ceiling($BLKD_DRAWAREA_MIN_W div 2.5))"/>
<xsl:variable name="BLKD_SPECS_H" select="100"/>
<xsl:variable name="BLKD_SPECS_W" select="300"/>
<xsl:variable name="BLKD_BKT_MODS_PER_ROW" select="3"/>
<!--
<xsl:template name="Print_Dimensions">
<xsl:message>MOD_LABEL_W : <xsl:value-of select="$MOD_LABEL_W"/></xsl:message>
<xsl:message>MOD_LABEL_H : <xsl:value-of select="$MOD_LABEL_H"/></xsl:message>
<xsl:message>MOD_LANE_W : <xsl:value-of select="$MOD_LANE_W"/></xsl:message>
<xsl:message>MOD_LANE_H : <xsl:value-of select="$MOD_LANE_H"/></xsl:message>
<xsl:message>MOD_EDGE_W : <xsl:value-of select="$MOD_EDGE_W"/></xsl:message>
<xsl:message>MOD_SHAPES_G : <xsl:value-of select="$MOD_SHAPES_G"/></xsl:message>
<xsl:message>MOD_BKTLANE_W : <xsl:value-of select="$MOD_BKTLANE_W"/></xsl:message>
<xsl:message>MOD_BKTLANE_H : <xsl:value-of select="$MOD_BKTLANE_H"/></xsl:message>
<xsl:message>MOD_BUCKET_G : <xsl:value-of select="$MOD_BUCKET_G"/></xsl:message>
</xsl:template>
-->
</xsl:stylesheet>

@ -1,150 +0,0 @@
<?xml version="1.0" standalone="no"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:exsl="http://exslt.org/common"
xmlns:dyn="http://exslt.org/dynamic"
xmlns:math="http://exslt.org/math"
xmlns:xlink="http://www.w3.org/1999/xlink"
extension-element-prefixes="math dyn exsl xlink">
<!-- Generic colors, shared between modules like webpages diagrams and pdfs -->
<xsl:variable name="COL_XLNX" select="'#AA0017'"/>
<xsl:variable name="COL_BLACK" select="'#000000'"/>
<xsl:variable name="COL_WHITE" select="'#FFFFFF'"/>
<xsl:variable name="COL_GRAY" select="'#CECECE'"/>
<xsl:variable name="COL_GRAY_LT" select="'#E1E1E1'"/>
<xsl:variable name="COL_GRAY_DK" select="'#B1B1B1'"/>
<xsl:variable name="COL_YELLOW" select="'#FFFFDD'"/>
<xsl:variable name="COL_YELLOW_LT" select="'#FFFFEE'"/>
<xsl:variable name="COL_RED" select="'#AA0000'"/>
<xsl:variable name="COL_GREEN" select="'#33CC33'"/>
<xsl:variable name="COL_BLUE_LT" select="'#AAAAFF'"/>
<!-- Colors specific to the Diagrams -->
<xsl:variable name="COL_BG" select="'#CCCCCC'"/>
<xsl:variable name="COL_BG_LT" select="'#EEEEEE'"/>
<xsl:variable name="COL_BG_UNK" select="'#DDDDDD'"/>
<xsl:variable name="COL_PROC_BG" select="'#FFCCCC'"/>
<xsl:variable name="COL_PROC_BG_MB" select="'#222222'"/>
<xsl:variable name="COL_PROC_BG_PP" select="'#90001C'"/>
<xsl:variable name="COL_PROC_BG_USR" select="'#666699'"/>
<xsl:variable name="COL_MPMC_BG" select="'#8B0800'"/>
<xsl:variable name="COL_MOD_BG" select="'#F0F0F0'"/>
<xsl:variable name="COL_MOD_SPRT" select="'#888888'"/>
<xsl:variable name="COL_MOD_MPRT" select="'#888888'"/>
<xsl:variable name="COL_IORING" select="'#000088'"/>
<xsl:variable name="COL_IORING_LT" select="'#CCCCFF'"/>
<xsl:variable name="COL_SYSPRT" select="'#0000BB'"/>
<xsl:variable name="COL_INTCS">
<INTCCOLOR INDEX="0" RGB="#FF9900"/>
<INTCCOLOR INDEX="1" RGB="#00CCCC"/>
<INTCCOLOR INDEX="2" RGB="#33FF33"/>
<INTCCOLOR INDEX="3" RGB="#FF00CC"/>
<INTCCOLOR INDEX="4" RGB="#99FF33"/>
<INTCCOLOR INDEX="5" RGB="#0066CC"/>
<INTCCOLOR INDEX="6" RGB="#9933FF"/>
<INTCCOLOR INDEX="7" RGB="#3300FF"/>
<INTCCOLOR INDEX="8" RGB="#00FF33"/>
<INTCCOLOR INDEX="9" RGB="#FF3333"/>
</xsl:variable>
<xsl:variable name="COL_BUSSTDS">
<BUSCOLOR BUSSTD="AXI" RGB="#0084AB" RGB_LT="#D0E6EF" RGB_DK="#85C3D9" RGB_TXT="#FFFFFF"/>
<BUSCOLOR BUSSTD="XIL" RGB="#990066" RGB_LT="#CC3399" RGB_DK="#85C3D9" RGB_TXT="#FFFFFF"/>
<BUSCOLOR BUSSTD="OCM" RGB="#0000DD" RGB_LT="#9999DD" RGB_DK="#85C3D9" RGB_TXT="#FFFFFF"/>
<BUSCOLOR BUSSTD="OPB" RGB="#339900" RGB_LT="#CCDDCC" RGB_DK="#85C3D9" RGB_TXT="#FFFFFF"/>
<BUSCOLOR BUSSTD="LMB" RGB="#7777FF" RGB_LT="#DDDDFF" RGB_DK="#85C3D9" RGB_TXT="#FFFFFF"/>
<BUSCOLOR BUSSTD="FSL" RGB="#CC00CC" RGB_LT="#FFBBFF" RGB_DK="#85C3D9" RGB_TXT="#FFFFFF"/>
<BUSCOLOR BUSSTD="DCR" RGB="#6699FF" RGB_LT="#BBDDFF" RGB_DK="#85C3D9" RGB_TXT="#FFFFFF"/>
<BUSCOLOR BUSSTD="FCB" RGB="#8C00FF" RGB_LT="#CCCCFF" RGB_DK="#85C3D9" RGB_TXT="#FFFFFF"/>
<BUSCOLOR BUSSTD="PLB" RGB="#FF5500" RGB_LT="#FFBB00" RGB_DK="#85C3D9" RGB_TXT="#FFFFFF"/>
<BUSCOLOR BUSSTD="PLBV34" RGB="#FF5500" RGB_LT="#FFBB00" RGB_DK="#85C3D9" RGB_TXT="#FFFFFF"/>
<BUSCOLOR BUSSTD="PLBV46" RGB="#BB9955" RGB_LT="#FFFFDD" RGB_DK="#85C3D9" RGB_TXT="#FFFFFF"/>
<BUSCOLOR BUSSTD="PLBV46_P2P" RGB="#BB9955" RGB_LT="#FFFFDD" RGB_DK="#85C3D9" RGB_TXT="#FFFFFF"/>
<BUSCOLOR BUSSTD="USER" RGB="#009999" RGB_LT="#00CCCC" RGB_DK="#85C3D9" RGB_TXT="#FFFFFF"/>
<BUSCOLOR BUSSTD="KEY" RGB="#444444" RGB_LT="#888888" RGB_DK="#85C3D9" RGB_TXT="#FFFFFF"/>
<BUSCOLOR BUSSTD="GRAYSCALE" RGB="#444444" RGB_LT="#888888" RGB_DK="#85C3D9" RGB_TXT="#FFFFFF"/>
</xsl:variable>
<xsl:variable name = "COL_BUSSTDS_NUMOF" select="count(exsl:node-set($COL_BUSSTDS)/BUSCOLOR)"/>
<xsl:template name="F_BusStd2RGB">
<xsl:param name="iBusStd" select="'USER'"/>
<xsl:choose>
<xsl:when test="exsl:node-set($COL_BUSSTDS)/BUSCOLOR[(@BUSSTD = $iBusStd)]/@RGB">
<xsl:value-of select="exsl:node-set($COL_BUSSTDS)/BUSCOLOR[(@BUSSTD = $iBusStd)]/@RGB"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="exsl:node-set($COL_BUSSTDS)/BUSCOLOR[(@BUSSTD = 'USER')]/@RGB"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="F_BusStd2RGB_LT">
<xsl:param name="iBusStd" select="'USER'"/>
<xsl:choose>
<xsl:when test="exsl:node-set($COL_BUSSTDS)/BUSCOLOR[(@BUSSTD = $iBusStd)]/@RGB_LT">
<xsl:value-of select="exsl:node-set($COL_BUSSTDS)/BUSCOLOR[(@BUSSTD = $iBusStd)]/@RGB_LT"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="exsl:node-set($COL_BUSSTDS)/BUSCOLOR[(@BUSSTD = 'USER')]/@RGB_LT"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="F_BusStd2RGB_DK">
<xsl:param name="iBusStd" select="'USER'"/>
<xsl:choose>
<xsl:when test="exsl:node-set($COL_BUSSTDS)/BUSCOLOR[(@BUSSTD = $iBusStd)]/@RGB_DK">
<xsl:value-of select="exsl:node-set($COL_BUSSTDS)/BUSCOLOR[(@BUSSTD = $iBusStd)]/@RGB_DK"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="exsl:node-set($COL_BUSSTDS)/BUSCOLOR[(@BUSSTD = 'USER')]/@RGB_DK"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="F_BusStd2RGB_TXT">
<xsl:param name="iBusStd" select="'USER'"/>
<xsl:choose>
<xsl:when test="exsl:node-set($COL_BUSSTDS)/BUSCOLOR[(@BUSSTD = $iBusStd)]/@RGB_TXT">
<xsl:value-of select="exsl:node-set($COL_BUSSTDS)/BUSCOLOR[(@BUSSTD = $iBusStd)]/@RGB_TXT"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="exsl:node-set($COL_BUSSTDS)/BUSCOLOR[(@BUSSTD = 'USER')]/@RGB_TXT"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="F_IntcIdx2RGB">
<xsl:param name="iIntcIdx" select="'0'"/>
<xsl:variable name="index_" select="$iIntcIdx mod 9"/>
<xsl:choose>
<xsl:when test="exsl:node-set($COL_INTCS)/INTCCOLOR[(@INDEX = $index_)]/@RGB">
<xsl:value-of select="exsl:node-set($COL_INTCS)/INTCCOLOR[(@INDEX = $index_)]/@RGB"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="exsl:node-set($COL_INTCS)/INTCCOLOR[(@INDEX = '0')]/@RGB"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>

@ -1,168 +0,0 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE stylesheet [
<!ENTITY UPPERCASE "ABCDEFGHIJKLMNOPQRSTUVWXYZ">
<!ENTITY LOWERCASE "abcdefghijklmnopqrstuvwxyz">
<!ENTITY UPPER2LOWER " '&UPPERCASE;' , '&LOWERCASE;' ">
<!ENTITY LOWER2UPPER " '&LOWERCASE;' , '&UPPERCASE;' ">
<!ENTITY ALPHALOWER "ABCDEFxX0123456789">
<!ENTITY HEXUPPER "ABCDEFxX0123456789">
<!ENTITY HEXLOWER "abcdefxX0123456789">
<!ENTITY HEXU2L " '&HEXLOWER;' , '&HEXUPPER;' ">
<!ENTITY ALLMODS "MODULE[(@INSTANCE)]">
<!ENTITY BUSMODS "MODULE[(@MODCLASS ='BUS')]">
<!ENTITY CPUMODS "MODULE[(@MODCLASS ='PROCESSOR')]">
<!ENTITY MODIOFS "MODULE/IOINTERFACES/IOINTERFACE">
<!ENTITY ALLIOFS "&MODIOFS;[(not(@IS_VALID) or (@IS_VALID = 'TRUE'))]">
<!ENTITY V11MODBIFS "MODULE/BUSINTERFACE">
<!ENTITY V12MODBIFS "MODULE/BUSINTERFACES/BUSINTERFACE">
<!ENTITY V11ALLBIFS "&V11MODBIFS;[(not(@IS_VALID) or (@IS_VALID = 'TRUE')) and @TYPE and @BUSSTD]">
<!ENTITY V12ALLBIFS "&V12MODBIFS;[(not(@IS_VALID) or (@IS_VALID = 'TRUE')) and @TYPE and @BUSSTD]">
<!ENTITY V11MODPORTS "MODULE/PORT">
<!ENTITY V12MODPORTS "MODULE/PORTS/PORT">
<!ENTITY V11ALLPORTS "&V11MODPORTS;[ (not(@IS_VALID) or (@IS_VALID = 'TRUE'))]">
<!ENTITY V12ALLPORTS "&V12MODPORTS;[ (not(@IS_VALID) or (@IS_VALID = 'TRUE'))]">
<!ENTITY V11NDFPORTS "&V11MODPORTS;[((not(@IS_VALID) or (@IS_VALID = 'TRUE')) and (not(@BUS) and not(@IOS)))]">
<!ENTITY V12NDFPORTS "&V12MODPORTS;[((not(@IS_VALID) or (@IS_VALID = 'TRUE')) and (not(@BUS) and not(@IOS)))]">
<!ENTITY V11DEFPORTS "&V11MODPORTS;[((not(@IS_VALID) or (@IS_VALID = 'TRUE')) and ((@BUS) or (@IOS)))]">
<!ENTITY V12DEFPORTS "&V12MODPORTS;[((not(@IS_VALID) or (@IS_VALID = 'TRUE')) and ((@BUS) or (@IOS)))]">
]>
<!--
<!ENTITY MSTBIFS "&MODBIFS;[(not(@IS_VALID) or (@IS_VALID = 'TRUE')) and (@TYPE = 'MASTER')]">
<!ENTITY SLVBIFS "&MODBIFS;[(not(@IS_VALID) or (@IS_VALID = 'TRUE')) and (@TYPE = 'SLAVE')]">
<!ENTITY MOSBIFS "&MODBIFS;[(not(@IS_VALID) or (@IS_VALID = 'TRUE')) and ((@TYPE = 'MASTER') or (@TYPE = 'SLAVE'))]">
<!ENTITY P2PBIFS "&MODBIFS;[(not(@IS_VALID) or (@IS_VALID = 'TRUE')) and ((@TYPE = 'TARGET') or (@TYPE = 'INITIATOR'))]">
-->
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:exsl="http://exslt.org/common"
xmlns:dyn="http://exslt.org/dynamic"
xmlns:math="http://exslt.org/math"
xmlns:xlink="http://www.w3.org/1999/xlink"
extension-element-prefixes="math exsl dyn xlink">
<!--
======================================================
EDK SYSTEM (EDWARD) Globals.
======================================================
-->
<xsl:variable name="G_SYS_ROOT" select="/"/>
<!--
<xsl:variable name="G_SYS_DOC" select="dyn:evaluate($G_SYS_ROOT)"/>
<xsl:variable name="G_SYS_DOC" select="dyn:evaluate($G_SYS_ROOT)"/>
-->
<xsl:variable name="G_SYS" select="$G_SYS_ROOT/EDKSYSTEM"/>
<xsl:variable name="G_SYS_TIMESTAMP" select="$G_SYS/@TIMESTAMP"/>
<xsl:variable name="G_SYS_EDKVERSION" select="$G_SYS/@EDKVERSION"/>
<xsl:variable name="G_SYS_INFO" select="$G_SYS/SYSTEMINFO"/>
<xsl:variable name="G_SYS_INFO_PKG" select="$G_SYS_INFO/@PACKAGE"/>
<xsl:variable name="G_SYS_INFO_DEV" select="$G_SYS_INFO/@DEVICE"/>
<xsl:variable name="G_SYS_INFO_ARCH" select="$G_SYS_INFO/@ARCH"/>
<xsl:variable name="G_SYS_INFO_SPEED" select="$G_SYS_INFO/@SPEEDGRADE"/>
<xsl:variable name="G_SYS_MODS" select="$G_SYS/MODULES"/>
<xsl:variable name="G_SYS_EXPS" select="$G_SYS/EXTERNALPORTS"/>
<!-- INDEX KEYS FOR FAST ACCESS -->
<xsl:key name="G_MAP_MODULES" match="&ALLMODS;" use="@INSTANCE"/>
<xsl:key name="G_MAP_PROCESSORS" match="&CPUMODS;" use="@INSTANCE"/>
<xsl:key name="G_MAP_BUSSES" match="&BUSMODS;" use="@INSTANCE"/>
<xsl:key name="G_MAP_BUSSES" match="&BUSMODS;" use="@BUSSTD"/>
<xsl:key name="G_MAP_BUSSES" match="&BUSMODS;" use="@BUSSTD_PSF"/>
<xsl:key name="G_MAP_ALL_IOFS" match="&ALLIOFS;" use="../../@INSTANCE"/>
<xsl:key name="G_MAP_ALL_BIFS" match="&V11ALLBIFS;" use="@TYPE"/>
<xsl:key name="G_MAP_ALL_BIFS" match="&V12ALLBIFS;" use="@TYPE"/>
<xsl:key name="G_MAP_ALL_BIFS" match="&V11ALLBIFS;" use="@BUSSTD"/>
<xsl:key name="G_MAP_ALL_BIFS" match="&V12ALLBIFS;" use="@BUSSTD"/>
<xsl:key name="G_MAP_ALL_BIFS" match="&V11ALLBIFS;" use="@BUSSTD_PSF"/>
<xsl:key name="G_MAP_ALL_BIFS" match="&V12ALLBIFS;" use="@BUSSTD_PSF"/>
<xsl:key name="G_MAP_ALL_BIFS" match="&V11ALLBIFS;" use="../@INSTANCE"/>
<xsl:key name="G_MAP_ALL_BIFS" match="&V12ALLBIFS;" use="../../@INSTANCE"/>
<!--
<xsl:key name="G_MAP_ALL_BIFS_BY_BUS" match="&ALLBIFS;" use="@BUSNAME"/>
<xsl:key name="G_MAP_ALL_BIFS_BY_STD" match="&ALLBIFS;" use="@BUSSTD"/>
<xsl:key name="G_MAP_ALL_BIFS_BY_STD" match="&ALLBIFS;" use="@BUSSTD_PSF"/>
<xsl:key name="G_MAP_MST_BIFS" match="&MSTBIFS;" use="@BUSNAME"/>
<xsl:key name="G_MAP_SLV_BIFS" match="&SLVBIFS;" use="@BUSNAME"/>
<xsl:key name="G_MAP_MOS_BIFS" match="&MOSBIFS;" use="@BUSNAME"/>
<xsl:key name="G_MAP_P2P_BIFS" match="&P2PBIFS;" use="@BUSNAME"/>
<xsl:key name="G_MAP_P2P_BIFS" match="&P2PBIFS;" use="@BUSSTD"/>
<xsl:key name="G_MAP_P2P_BIFS" match="&P2PBIFS;" use="@BUSSTD_PSF"/>
-->
<xsl:key name="G_MAP_ALL_PORTS" match="&V11ALLPORTS;" use="../@INSTANCE"/>
<xsl:key name="G_MAP_ALL_PORTS" match="&V12ALLPORTS;" use="../../@INSTANCE"/>
<xsl:key name="G_MAP_DEF_PORTS" match="&V11DEFPORTS;" use="../@INSTANCE"/> <!-- Default ports -->
<xsl:key name="G_MAP_DEF_PORTS" match="&V12DEFPORTS;" use="../../@INSTANCE"/> <!-- Default ports -->
<xsl:key name="G_MAP_NDF_PORTS" match="&V11NDFPORTS;" use="../@INSTANCE"/> <!-- Non Default ports -->
<xsl:key name="G_MAP_NDF_PORTS" match="&V12NDFPORTS;" use="../../@INSTANCE"/> <!-- Non Default ports -->
<xsl:variable name="G_BIFTYPES">
<BIFTYPE TYPE="SLAVE"/>
<BIFTYPE TYPE="MASTER"/>
<BIFTYPE TYPE="MASTER_SLAVE"/>
<BIFTYPE TYPE="TARGET"/>
<BIFTYPE TYPE="INITIATOR"/>
<BIFTYPE TYPE="MONITOR"/>
<BIFTYPE TYPE="USER"/>
<BIFTYPE TYPE="TRANSPARENT"/>
</xsl:variable>
<xsl:variable name="G_BIFTYPES_NUMOF" select="count(exsl:node-set($G_BIFTYPES)/BIFTYPE)"/>
<xsl:variable name="G_IFTYPES">
<IFTYPE TYPE="SLAVE"/>
<IFTYPE TYPE="MASTER"/>
<IFTYPE TYPE="MASTER_SLAVE"/>
<IFTYPE TYPE="TARGET"/>
<IFTYPE TYPE="INITIATOR"/>
<IFTYPE TYPE="MONITOR"/>
<IFTYPE TYPE="USER"/>
<!--
<IFTYPE TYPE="TRANSPARENT"/>
-->
</xsl:variable>
<xsl:variable name="G_IFTYPES_NUMOF" select="count(exsl:node-set($G_IFTYPES)/IFTYPE)"/>
<xsl:variable name="G_BUSSTDS">
<BUSSTD NAME="AXI"/>
<BUSSTD NAME="XIL"/>
<BUSSTD NAME="OCM"/>
<BUSSTD NAME="OPB"/>
<BUSSTD NAME="LMB"/>
<BUSSTD NAME="FSL"/>
<BUSSTD NAME="DCR"/>
<BUSSTD NAME="FCB"/>
<BUSSTD NAME="PLB"/>
<BUSSTD NAME="PLB34"/>
<BUSSTD NAME="PLBV46"/>
<BUSSTD NAME="PLBV46_P2P"/>
<BUSSTD NAME="USER"/>
<BUSSTD NAME="KEY"/>
</xsl:variable>
<xsl:variable name="G_BUSSTDS_NUMOF" select="count(exsl:node-set($G_BUSSTDS)/BUSSTD)"/>
</xsl:stylesheet>

@ -1,584 +0,0 @@
<?xml version="1.0" standalone="no"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:exsl="http://exslt.org/common"
xmlns:dyn="http://exslt.org/dynamic"
xmlns:math="http://exslt.org/math"
xmlns:xlink="http://www.w3.org/1999/xlink"
extension-element-prefixes="math dyn exsl xlink">
<!--
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"
doctype-public="-//W3C//DTD SVG 1.0//EN"
doctype-system="http://www.w3.org/TR/SVG/DTD/svg10.dtd"/>
-->
<!--
======================================================
Function to put TEXT CSS and other Internal
Styling properties directly into the output
svg. The Qt 4.3 Renderer
cannot handle separate CSS StyleSheets
======================================================
-->
<xsl:template name="F_WriteText">
<xsl:param name="iClass" select="'_UNKNOWN_'"/>
<xsl:param name="iText" select="' '"/>
<xsl:param name="iX" select="'0'"/>
<xsl:param name="iY" select="'0'"/>
<!--
<xsl:message>TEXT <xsl:value-of select="$iText"/></xsl:message>
<xsl:message>CLASS <xsl:value-of select="$iClass"/></xsl:message>
-->
<xsl:element name="text">
<xsl:attribute name="x"><xsl:value-of select="$iX"/></xsl:attribute>
<xsl:attribute name="y"><xsl:value-of select="$iY"/></xsl:attribute>
<xsl:choose>
<xsl:when test="$iClass = 'sharedbus_label'">
<xsl:attribute name="fill"><xsl:value-of select="$COL_BLACK"/></xsl:attribute>
<xsl:attribute name="stroke"><xsl:value-of select="'none'"/></xsl:attribute>
<xsl:attribute name="font-size"><xsl:value-of select="'12pt'"/></xsl:attribute>
<xsl:attribute name="font-style"><xsl:value-of select="'italic'"/></xsl:attribute>
<xsl:attribute name="font-weight"><xsl:value-of select="'900'"/></xsl:attribute>
<xsl:attribute name="text-anchor"><xsl:value-of select="'start'"/></xsl:attribute>
<xsl:attribute name="font-family"><xsl:value-of select="'Verdana Courier Arial Helvetica san-serif'"/></xsl:attribute>
</xsl:when>
<xsl:when test="$iClass = 'p2pbus_label'">
<xsl:attribute name="fill"><xsl:value-of select="$COL_BLACK"/></xsl:attribute>
<xsl:attribute name="stroke"><xsl:value-of select="'none'"/></xsl:attribute>
<xsl:attribute name="font-size"><xsl:value-of select="'8pt'"/></xsl:attribute>
<xsl:attribute name="font-style"><xsl:value-of select="'italic'"/></xsl:attribute>
<xsl:attribute name="font-weight"><xsl:value-of select="'900'"/></xsl:attribute>
<xsl:attribute name="text-anchor"><xsl:value-of select="'start'"/></xsl:attribute>
<xsl:attribute name="font-family"><xsl:value-of select="'Verdana Courier Arial Helvetica san-serif'"/></xsl:attribute>
</xsl:when>
<xsl:when test="$iClass = 'p2pbus_label_horiz'">
<xsl:attribute name="fill"><xsl:value-of select="$COL_BLACK"/></xsl:attribute>
<xsl:attribute name="stroke"><xsl:value-of select="'none'"/></xsl:attribute>
<xsl:attribute name="font-size"><xsl:value-of select="'12pt'"/></xsl:attribute>
<xsl:attribute name="font-style"><xsl:value-of select="'italic'"/></xsl:attribute>
<xsl:attribute name="font-weight"><xsl:value-of select="'900'"/></xsl:attribute>
<xsl:attribute name="text-anchor"><xsl:value-of select="'start'"/></xsl:attribute>
<xsl:attribute name="writing-mode"><xsl:value-of select="'tb'"/></xsl:attribute>
<xsl:attribute name="font-family"><xsl:value-of select="'Verdana Courier Arial Helvetica san-serif'"/></xsl:attribute>
</xsl:when>
<xsl:when test="$iClass = 'bif_label'">
<xsl:attribute name="fill"><xsl:value-of select="$COL_BLACK"/></xsl:attribute>
<xsl:attribute name="stroke"><xsl:value-of select="'none'"/></xsl:attribute>
<xsl:attribute name="font-size"><xsl:value-of select="'10pt'"/></xsl:attribute>
<xsl:attribute name="font-style"><xsl:value-of select="'italic'"/></xsl:attribute>
<xsl:attribute name="font-weight"><xsl:value-of select="'900'"/></xsl:attribute>
<xsl:attribute name="text-anchor"><xsl:value-of select="'middle'"/></xsl:attribute>
<xsl:attribute name="font-family"><xsl:value-of select="'Verdana Courier Arial Helvetica san-serif'"/></xsl:attribute>
</xsl:when>
<xsl:when test="$iClass = 'bc_ipinst'">
<xsl:attribute name="fill"><xsl:value-of select="$COL_BLACK"/></xsl:attribute>
<xsl:attribute name="stroke"><xsl:value-of select="'none'"/></xsl:attribute>
<xsl:attribute name="font-size"><xsl:value-of select="'10pt'"/></xsl:attribute>
<xsl:attribute name="font-style"><xsl:value-of select="'italic'"/></xsl:attribute>
<xsl:attribute name="font-weight"><xsl:value-of select="'900'"/></xsl:attribute>
<xsl:attribute name="text-anchor"><xsl:value-of select="'middle'"/></xsl:attribute>
<xsl:attribute name="font-family"><xsl:value-of select="'Courier Arial Helvetica san-serif'"/></xsl:attribute>
</xsl:when>
<xsl:when test="$iClass = 'bc_iptype'">
<xsl:attribute name="fill"><xsl:value-of select="$COL_XLNX"/></xsl:attribute>
<xsl:attribute name="stroke"><xsl:value-of select="'none'"/></xsl:attribute>
<xsl:attribute name="font-size"><xsl:value-of select="'10pt'"/></xsl:attribute>
<xsl:attribute name="font-style"><xsl:value-of select="'italic'"/></xsl:attribute>
<xsl:attribute name="font-weight"><xsl:value-of select="'900'"/></xsl:attribute>
<xsl:attribute name="text-anchor"><xsl:value-of select="'middle'"/></xsl:attribute>
<xsl:attribute name="font-family"><xsl:value-of select="'Verdana Arial Helvetica san-serif'"/></xsl:attribute>
</xsl:when>
<xsl:when test="$iClass = 'iogrp_label'">
<xsl:attribute name="fill"><xsl:value-of select="$COL_IORING"/></xsl:attribute>
<xsl:attribute name="stroke"><xsl:value-of select="'none'"/></xsl:attribute>
<xsl:attribute name="font-size"><xsl:value-of select="'10pt'"/></xsl:attribute>
<xsl:attribute name="font-style"><xsl:value-of select="'normal'"/></xsl:attribute>
<xsl:attribute name="font-weight"><xsl:value-of select="'900'"/></xsl:attribute>
<xsl:attribute name="text-anchor"><xsl:value-of select="'middle'"/></xsl:attribute>
<xsl:attribute name="font-family"><xsl:value-of select="'Verdana Arial Helvetica san-serif'"/></xsl:attribute>
</xsl:when>
<xsl:when test="$iClass = 'mpmc_title'">
<xsl:attribute name="fill"><xsl:value-of select="$COL_WHITE"/></xsl:attribute>
<xsl:attribute name="stroke"><xsl:value-of select="'none'"/></xsl:attribute>
<xsl:attribute name="font-size"><xsl:value-of select="'16pt'"/></xsl:attribute>
<xsl:attribute name="font-style"><xsl:value-of select="'oblique'"/></xsl:attribute>
<xsl:attribute name="font-weight"><xsl:value-of select="'900'"/></xsl:attribute>
<xsl:attribute name="text-anchor"><xsl:value-of select="'middle'"/></xsl:attribute>
<xsl:attribute name="font-family"><xsl:value-of select="'Arial Helvetica san-serif'"/></xsl:attribute>
</xsl:when>
<xsl:when test="$iClass = 'mpmc_biflabel'">
<xsl:attribute name="fill"><xsl:value-of select="$COL_WHITE"/></xsl:attribute>
<xsl:attribute name="stroke"><xsl:value-of select="'none'"/></xsl:attribute>
<xsl:attribute name="font-size"><xsl:value-of select="'8pt'"/></xsl:attribute>
<xsl:attribute name="font-style"><xsl:value-of select="'normal'"/></xsl:attribute>
<xsl:attribute name="font-weight"><xsl:value-of select="'900'"/></xsl:attribute>
<xsl:attribute name="text-anchor"><xsl:value-of select="'middle'"/></xsl:attribute>
<xsl:attribute name="font-family"><xsl:value-of select="'Verdana Arial Helvetica san-serif'"/></xsl:attribute>
</xsl:when>
<xsl:when test="$iClass = 'intr_symbol'">
<xsl:attribute name="fill"><xsl:value-of select="$COL_BLACK"/></xsl:attribute>
<xsl:attribute name="stroke"><xsl:value-of select="'none'"/></xsl:attribute>
<xsl:attribute name="font-size"><xsl:value-of select="'10pt'"/></xsl:attribute>
<xsl:attribute name="font-weight"><xsl:value-of select="'900'"/></xsl:attribute>
<xsl:attribute name="text-anchor"><xsl:value-of select="'start'"/></xsl:attribute>
<xsl:attribute name="font-family"><xsl:value-of select="'Arial Helvetica san-serif'"/></xsl:attribute>
</xsl:when>
<xsl:when test="$iClass = 'bkt_label'">
<xsl:attribute name="fill"><xsl:value-of select="$COL_BLACK"/></xsl:attribute>
<xsl:attribute name="stroke"><xsl:value-of select="'none'"/></xsl:attribute>
<xsl:attribute name="font-size"><xsl:value-of select="'9pt'"/></xsl:attribute>
<xsl:attribute name="font-style"><xsl:value-of select="'normal'"/></xsl:attribute>
<xsl:attribute name="font-weight"><xsl:value-of select="'900'"/></xsl:attribute>
<xsl:attribute name="text-anchor"><xsl:value-of select="'start'"/></xsl:attribute>
<xsl:attribute name="font-family"><xsl:value-of select="'Arial Helvetica san-serif'"/></xsl:attribute>
</xsl:when>
<xsl:when test="$iClass = 'ipclass_label'">
<xsl:attribute name="fill"><xsl:value-of select="$COL_BLACK"/></xsl:attribute>
<xsl:attribute name="stroke"><xsl:value-of select="'none'"/></xsl:attribute>
<xsl:attribute name="font-size"><xsl:value-of select="'9pt'"/></xsl:attribute>
<xsl:attribute name="font-style"><xsl:value-of select="'normal'"/></xsl:attribute>
<xsl:attribute name="font-weight"><xsl:value-of select="'900'"/></xsl:attribute>
<xsl:attribute name="text-anchor"><xsl:value-of select="'start'"/></xsl:attribute>
<xsl:attribute name="font-family"><xsl:value-of select="'Arial Helvetica san-serif'"/></xsl:attribute>
</xsl:when>
<xsl:when test="$iClass = 'key_header'">
<xsl:attribute name="fill"><xsl:value-of select="$COL_BLACK"/></xsl:attribute>
<xsl:attribute name="stroke"><xsl:value-of select="'none'"/></xsl:attribute>
<xsl:attribute name="font-size"><xsl:value-of select="'10pt'"/></xsl:attribute>
<xsl:attribute name="font-weight"><xsl:value-of select="'900'"/></xsl:attribute>
<xsl:attribute name="text-anchor"><xsl:value-of select="'middle'"/></xsl:attribute>
<xsl:attribute name="font-family"><xsl:value-of select="'Arial Helvetica san-serif'"/></xsl:attribute>
</xsl:when>
<xsl:when test="$iClass = 'key_title'">
<xsl:attribute name="fill"><xsl:value-of select="$COL_XLNX"/></xsl:attribute>
<xsl:attribute name="stroke"><xsl:value-of select="'none'"/></xsl:attribute>
<xsl:attribute name="font-size"><xsl:value-of select="'14pt'"/></xsl:attribute>
<xsl:attribute name="font-weight"><xsl:value-of select="'900'"/></xsl:attribute>
<xsl:attribute name="text-anchor"><xsl:value-of select="'middle'"/></xsl:attribute>
<xsl:attribute name="font-family"><xsl:value-of select="'Arial Helvetica san-serif'"/></xsl:attribute>
</xsl:when>
<xsl:when test="$iClass = 'key_label'">
<xsl:attribute name="fill"><xsl:value-of select="$COL_BLACK"/></xsl:attribute>
<xsl:attribute name="stroke"><xsl:value-of select="'none'"/></xsl:attribute>
<xsl:attribute name="font-size"><xsl:value-of select="'10pt'"/></xsl:attribute>
<xsl:attribute name="font-style"><xsl:value-of select="'italic'"/></xsl:attribute>
<xsl:attribute name="font-weight"><xsl:value-of select="'900'"/></xsl:attribute>
<xsl:attribute name="text-anchor"><xsl:value-of select="'start'"/></xsl:attribute>
<xsl:attribute name="font-family"><xsl:value-of select="'Verdana Arial Helvetica san-serif'"/></xsl:attribute>
</xsl:when>
<xsl:when test="$iClass = 'key_label_small'">
<xsl:attribute name="fill"><xsl:value-of select="$COL_BLACK"/></xsl:attribute>
<xsl:attribute name="stroke"><xsl:value-of select="'none'"/></xsl:attribute>
<xsl:attribute name="font-size"><xsl:value-of select="'8pt'"/></xsl:attribute>
<xsl:attribute name="font-style"><xsl:value-of select="'italic'"/></xsl:attribute>
<xsl:attribute name="font-weight"><xsl:value-of select="'900'"/></xsl:attribute>
<xsl:attribute name="text-anchor"><xsl:value-of select="'start'"/></xsl:attribute>
<xsl:attribute name="font-family"><xsl:value-of select="'Verdana Arial Helvetica san-serif'"/></xsl:attribute>
</xsl:when>
<xsl:when test="$iClass = 'key_label_ul'">
<xsl:attribute name="fill"><xsl:value-of select="$COL_BLACK"/></xsl:attribute>
<xsl:attribute name="stroke"><xsl:value-of select="'none'"/></xsl:attribute>
<xsl:attribute name="font-size"><xsl:value-of select="'10pt'"/></xsl:attribute>
<xsl:attribute name="font-style"><xsl:value-of select="'italic'"/></xsl:attribute>
<xsl:attribute name="font-weight"><xsl:value-of select="'bold'"/></xsl:attribute>
<xsl:attribute name="text-anchor"><xsl:value-of select="'start'"/></xsl:attribute>
<xsl:attribute name="text-decoration"><xsl:value-of select="'underline'"/></xsl:attribute>
<xsl:attribute name="font-family"><xsl:value-of select="'Verdana Arial Helvetica san-serif'"/></xsl:attribute>
</xsl:when>
<xsl:when test="$iClass = 'ipd_portlabel'">
<xsl:attribute name="fill"><xsl:value-of select="$COL_BLACK"/></xsl:attribute>
<xsl:attribute name="stroke"><xsl:value-of select="'none'"/></xsl:attribute>
<xsl:attribute name="font-size"><xsl:value-of select="'8pt'"/></xsl:attribute>
<xsl:attribute name="font-style"><xsl:value-of select="'normal'"/></xsl:attribute>
<xsl:attribute name="font-weight"><xsl:value-of select="'bold'"/></xsl:attribute>
<xsl:attribute name="text-anchor"><xsl:value-of select="'middle'"/></xsl:attribute>
<xsl:attribute name="font-family"><xsl:value-of select="'Verdana Arial Helvetica san-serif'"/></xsl:attribute>
</xsl:when>
<xsl:when test="$iClass = 'ipd_biflabel'">
<xsl:attribute name="fill"><xsl:value-of select="$COL_BLACK"/></xsl:attribute>
<xsl:attribute name="stroke"><xsl:value-of select="'none'"/></xsl:attribute>
<xsl:attribute name="font-size"><xsl:value-of select="'8pt'"/></xsl:attribute>
<xsl:attribute name="font-style"><xsl:value-of select="'normal'"/></xsl:attribute>
<xsl:attribute name="font-weight"><xsl:value-of select="'bold'"/></xsl:attribute>
<xsl:attribute name="font-family"><xsl:value-of select="'Verdana Arial Helvetica san-serif'"/></xsl:attribute>
</xsl:when>
<xsl:when test="$iClass = 'ipd_iptype'">
<xsl:attribute name="fill"><xsl:value-of select="$COL_XLNX"/></xsl:attribute>
<xsl:attribute name="stroke"><xsl:value-of select="'none'"/></xsl:attribute>
<xsl:attribute name="font-size"><xsl:value-of select="'8pt'"/></xsl:attribute>
<xsl:attribute name="font-style"><xsl:value-of select="'italic'"/></xsl:attribute>
<xsl:attribute name="font-weight"><xsl:value-of select="'bold'"/></xsl:attribute>
<xsl:attribute name="text-anchor"><xsl:value-of select="'middle'"/></xsl:attribute>
<xsl:attribute name="font-family"><xsl:value-of select="'Verdana Arial Helvetica san-serif'"/></xsl:attribute>
</xsl:when>
<xsl:when test="$iClass = 'ipd_ipname'">
<xsl:attribute name="fill"><xsl:value-of select="$COL_BLACK"/></xsl:attribute>
<xsl:attribute name="stroke"><xsl:value-of select="'none'"/></xsl:attribute>
<xsl:attribute name="font-size"><xsl:value-of select="'8pt'"/></xsl:attribute>
<xsl:attribute name="font-style"><xsl:value-of select="'italic'"/></xsl:attribute>
<xsl:attribute name="font-weight"><xsl:value-of select="'bold'"/></xsl:attribute>
<xsl:attribute name="text-anchor"><xsl:value-of select="'middle'"/></xsl:attribute>
<xsl:attribute name="font-family"><xsl:value-of select="'Courier Arial Helvetica san-serif'"/></xsl:attribute>
</xsl:when>
<xsl:when test="$iClass = 'blkd_spec_name'">
<xsl:attribute name="fill"><xsl:value-of select="$COL_BLACK"/></xsl:attribute>
<xsl:attribute name="stroke"><xsl:value-of select="'none'"/></xsl:attribute>
<xsl:attribute name="font-size"><xsl:value-of select="'10pt'"/></xsl:attribute>
<xsl:attribute name="font-weight"><xsl:value-of select="'bold'"/></xsl:attribute>
<xsl:attribute name="text-anchor"><xsl:value-of select="'start'"/></xsl:attribute>
<xsl:attribute name="font-family"><xsl:value-of select="'Arial Helvetica san-serif'"/></xsl:attribute>
</xsl:when>
<xsl:when test="$iClass = 'blkd_spec_value_mid'">
<xsl:attribute name="fill"><xsl:value-of select="$COL_BLACK"/></xsl:attribute>
<xsl:attribute name="stroke"><xsl:value-of select="'none'"/></xsl:attribute>
<xsl:attribute name="font-size"><xsl:value-of select="'10pt'"/></xsl:attribute>
<xsl:attribute name="font-style"><xsl:value-of select="'italic'"/></xsl:attribute>
<xsl:attribute name="font-weight"><xsl:value-of select="'bold'"/></xsl:attribute>
<xsl:attribute name="text-anchor"><xsl:value-of select="'middle'"/></xsl:attribute>
<xsl:attribute name="font-family"><xsl:value-of select="'Courier Arial Helvetica san-serif'"/></xsl:attribute>
</xsl:when>
<xsl:otherwise><xsl:message>UNKNOWN Text style class <xsl:value-of select="$iClass"/></xsl:message></xsl:otherwise>
</xsl:choose>
<xsl:value-of select="$iText"/>
</xsl:element>
</xsl:template>
</xsl:stylesheet>
<!--
text.ioplblgrp {
fill: #000088;
stroke: none;
font-size: 10pt;
font-style: normal;
font-weight: 900;
text-anchor: middle;
font-family: Verdana Arial Helvetica sans-serif;
}
text.iplabel {
fill: #000000;
stroke: none;
font-size: 8pt;
font-style: italic;
font-weight: 800;
text-anchor: middle;
font-family: Courier Arial Helvetica sans-serif;
}
text.iptype {
fill: #AA0017;
stroke: none;
font-size: 8pt;
font-style: italic;
font-weight: bold;
text-anchor: middle;
font-family: Verdana Arial Helvetica sans-serif;
}
text.busintlabel {
fill: #810017;
stroke: none;
font-size: 7pt;
font-style: italic;
font-weight: 900;
text-anchor: middle;
font-family: Verdana Arial Helvetica sans-serif;
}
text.mpmcbiflabel {
fill: #FFFFFF;
stroke: none;
font-size: 6pt;
font-style: normal;
font-weight: 900;
text-anchor: middle;
font-family: Verdana Arial Helvetica sans-serif;
}
text.buslabel {
fill: #CC3333;
stroke: none;
font-size: 8pt;
font-style: italic;
font-weight: bold;
text-anchor: middle;
font-family: Verdana Arial Helvetica sans-serif;
}
text.ipclass {
fill: #000000;
stroke: none;
font-size: 7pt;
font-style: normal;
font-weight: bold;
text-anchor: start;
font-family: Times Arial Helvetica sans-serif;
}
text.procclass {
fill: #000000;
stroke: none;
font-size: 7pt;
font-style: normal;
font-weight: bold;
text-anchor: middle;
font-family: Times Arial Helvetica sans-serif;
}
text.portlabel {
fill: #000000;
stroke: none;
font-size: 8pt;
font-style: normal;
font-weight: bold;
text-anchor: middle;
font-family: Verdana Arial Helvetica sans-serif;
}
text.ipdbiflbl {
fill: #000000;
stroke: none;
font-size: 8pt;
font-style: normal;
font-weight: bold;
font-family: Verdana Arial Helvetica sans-serif;
}
text.mmMHeader {
fill: #FFFFFF;
stroke: none;
font-size: 10pt;
font-style: normal;
font-weight: bold;
text-anchor: middle;
font-family: Verdana Arial Helvetica sans-serif;
}
text.mmSHeader {
fill: #810017;
stroke: none;
font-size: 10pt;
font-style: normal;
font-weight: bold;
text-anchor: middle;
font-family: Verdana Arial Helvetica sans-serif;
}
text.dbglabel {
fill: #555555;
stroke: none;
font-size: 8pt;
font-style: normal;
font-weight: 900;
text-anchor: middle;
font-family: Times Arial Helvetica sans-serif;
}
text.iopnumb {
fill: #555555;
stroke: none;
font-size: 10pt;
font-style: normal;
font-weight: 900;
text-anchor: middle;
font-family: Verdana Arial Helvetica sans-serif;
}
tspan.iopgrp {
fill: #000000;
stroke: none;
font-size: 8pt;
font-style: normal;
font-weight: 900;
text-anchor: middle;
baseline-shift:super;
font-family: Arial Courier san-serif;
}
text.biflabel {
fill: #000000;
stroke: none;
font-size: 6pt;
font-style: normal;
font-weight: 900;
text-anchor: middle;
font-family: Verdana Arial Helvetica sans-serif;
}
text.p2pbuslabel {
fill: #000000;
stroke: none;
font-size: 10pt;
font-style: italic;
font-weight: bold;
text-anchor: start;
writing-mode: tb;
font-family: Verdana Arial Helvetica sans-serif;
}
text.mpbuslabel {
fill: #000000;
stroke: none;
font-size: 6pt;
font-style: italic;
font-weight: bold;
text-anchor: start;
writing-mode: tb;
font-family: Verdana Arial Helvetica sans-serif;
}
text.sharedbuslabel {
fill: #000000;
stroke: none;
font-size: 10pt;
font-style: italic;
font-weight: bold;
text-anchor: start;
font-family: Verdana Arial Helvetica sans-serif;
}
text.splitbustxt {
fill: #000000;
stroke: none;
font-size: 6pt;
font-style: normal;
font-weight: bold;
text-anchor: middle;
font-family: sans-serif;
}
text.horizp2pbuslabel {
fill: #000000;
stroke: none;
font-size: 6pt;
font-style: italic;
font-weight: bold;
text-anchor: start;
font-family: Verdana Arial Helvetica sans-serif;
}
text.keytitle {
fill: #AA0017;
stroke: none;
font-size: 12pt;
font-weight: bold;
text-anchor: middle;
font-family: Arial Helvetica sans-serif;
}
text.keyheader {
fill: #000000;
stroke: none;
font-size: 10pt;
font-weight: bold;
text-anchor: middle;
font-family: Arial Helvetica sans-serif;
}
text.keylabel {
fill: #000000;
stroke: none;
font-size: 8pt;
font-style: italic;
font-weight: bold;
text-anchor: start;
font-family: Verdana Arial Helvetica sans-serif;
}
text.keylblul {
fill: #000000;
stroke: none;
font-size: 8pt;
font-style: italic;
font-weight: bold;
text-anchor: start;
text-decoration: underline;
font-family: Verdana Arial Helvetica sans-serif;
}
text.specsheader {
fill: #000000;
stroke: none;
font-size: 10pt;
font-weight: bold;
text-anchor: start;
font-family: Arial Helvetica sans-serif;
}
text.specsvalue {
fill: #000000;
stroke: none;
font-size: 8pt;
font-style: italic;
font-weight: bold;
text-anchor: start;
font-family: Verdana Arial Helvetica sans-serif;
}
text.specsvaluemid {
fill: #000000;
stroke: none;
font-size: 8pt;
font-style: italic;
font-weight: bold;
text-anchor: middle;
font-family: Verdana Arial Helvetica sans-serif;
}
text.intrsymbol {
fill: #000000;
stroke: none;
font-size: 8pt;
font-weight: bold;
text-anchor: start;
font-family: Arial Helvetica sans-serif;
}
-->

@ -1,546 +0,0 @@
<?xml version="1.0" standalone="no"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:exsl="http://exslt.org/common"
xmlns:dyn="http://exslt.org/dynamic"
xmlns:math="http://exslt.org/math"
xmlns:xlink="http://www.w3.org/1999/xlink"
extension-element-prefixes="math dyn exsl xlink">
<!--
<xsl:output method="xml"
version="1.0"
encoding="UTF-8"
indent="yes"
doctype-public="-//W3C//DTD SVG 1.0//EN"
doctype-system="http://www.w3.org/TR/SVG/DTD/svg10.dtd"/>
-->
<xsl:template name="Define_Busses">
<!--
<xsl:param name="drawarea_w" select="500"/>
<xsl:param name="drawarea_h" select="500"/>
-->
<xsl:for-each select="exsl:node-set($COL_BUSSTDS)/BUSCOLOR">
<xsl:call-template name="Define_BusArrowsEastWest">
<xsl:with-param name="iBusStd" select="@BUSSTD"/>
</xsl:call-template>
<xsl:call-template name="Define_BusArrowsNorthSouth">
<xsl:with-param name="iBusStd" select="@BUSSTD"/>
</xsl:call-template>
<xsl:call-template name="Define_SplitBusses">
<xsl:with-param name="iBusStd" select="@BUSSTD"/>
</xsl:call-template>
</xsl:for-each>
<xsl:call-template name="Define_SharedBus">
<xsl:with-param name="iBusStd" select="'AXI'"/>
</xsl:call-template>
<xsl:call-template name="Define_SharedBus">
<xsl:with-param name="iBusStd" select="'OPB'"/>
</xsl:call-template>
<xsl:call-template name="Define_SharedBus">
<xsl:with-param name="iBusStd" select="'PLB'"/>
</xsl:call-template>
<xsl:call-template name="Define_SharedBus">
<xsl:with-param name="iBusStd" select="'PLBV46'"/>
</xsl:call-template>
<xsl:call-template name="Define_SharedBus_Group"/>
</xsl:template>
<xsl:template name="Define_BusArrowsEastWest">
<xsl:param name="iBusStd" select="'PLB'"/>
<xsl:variable name="busStdColor_">
<xsl:call-template name="F_BusStd2RGB">
<xsl:with-param name="iBusStd" select="$iBusStd"/>
</xsl:call-template>
</xsl:variable>
<xsl:variable name="busStdColor_lt_">
<xsl:call-template name="F_BusStd2RGB_LT">
<xsl:with-param name="iBusStd" select="$iBusStd"/>
</xsl:call-template>
</xsl:variable>
<g id="{$iBusStd}_BusArrowEast">
<path class="bus"
d="M 0,0
L {$BLKD_BUS_ARROW_W}, {ceiling($BLKD_BUS_ARROW_H div 2)}
L 0,{$BLKD_BUS_ARROW_H},
Z" style="stroke:none; fill:{$busStdColor_}"/>
</g>
<g id="{$iBusStd}_BusArrowWest">
<use x="0" y="0" xlink:href="#{$iBusStd}_BusArrowEast" transform="scale(-1,1) translate({$BLKD_BUS_ARROW_W * -1},0)"/>
</g>
<g id="{$iBusStd}_BusArrowHInitiator">
<rect x="0"
y="{$BLKD_BUS_ARROW_G}"
width= "{$BLKD_BUS_ARROW_W}"
height="{$BLKD_P2P_BUS_W}"
style="stroke:none; fill:{$busStdColor_}"/>
</g>
</xsl:template>
<!--
<xsl:param name="bus_col" select="'OPB'"/>
-->
<xsl:template name="Define_BusArrowsNorthSouth">
<xsl:param name="iBusStd" select="'PLB'"/>
<xsl:variable name="busStdColor_">
<xsl:call-template name="F_BusStd2RGB">
<xsl:with-param name="iBusStd" select="$iBusStd"/>
</xsl:call-template>
</xsl:variable>
<xsl:variable name="busStdColor_lt_">
<xsl:call-template name="F_BusStd2RGB_LT">
<xsl:with-param name="iBusStd" select="$iBusStd"/>
</xsl:call-template>
</xsl:variable>
<g id="{$iBusStd}_BusArrowSouth">
<path class="bus"
d="M 0,0
L {$BLKD_BUS_ARROW_H},0
L {ceiling($BLKD_BUS_ARROW_H div 2)}, {$BLKD_BUS_ARROW_W}
Z" style="stroke:none; fill:{$busStdColor_}"/>
</g>
<g id="{$iBusStd}_BusArrowNorth">
<use x="0" y="0" xlink:href="#{$iBusStd}_BusArrowSouth" transform="scale(1,-1) translate(0,{$BLKD_BUS_ARROW_H * -1})"/>
</g>
<g id="{$iBusStd}_BusArrowInitiator">
<rect x="{$BLKD_BUS_ARROW_G}"
y="0"
width= "{$BLKD_BUS_ARROW_W - ($BLKD_BUS_ARROW_G * 2)}"
height="{$BLKD_BUS_ARROW_H}"
style="stroke:none; fill:{$busStdColor_}"/>
</g>
</xsl:template>
<xsl:template name="Draw_P2PBus">
<xsl:param name="iBusX" select="0"/>
<xsl:param name="iBusTop" select="0"/>
<xsl:param name="iBusBot" select="0"/>
<xsl:param name="iBusStd" select="'_bstd_'"/>
<xsl:param name="iBusName" select="'_p2pbus_'"/>
<xsl:param name="iBotBifType" select="'_unk_'"/>
<xsl:param name="iTopBifType" select="'_unk_'"/>
<xsl:variable name="busStdColor_">
<xsl:choose>
<xsl:when test="@BUSSTD">
<xsl:call-template name="F_BusStd2RGB">
<xsl:with-param name="iBusStd" select="@BUSSTD"/>
</xsl:call-template>
</xsl:when>
<xsl:when test="not($iBusStd = '_bstd_')">
<xsl:call-template name="F_BusStd2RGB">
<xsl:with-param name="iBusStd" select="$iBusStd"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:call-template name="F_BusStd2RGB">
<xsl:with-param name="iBusStd" select="'TRS'"/>
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="p2pH_" select="($iBusBot - $iBusTop) - ($BLKD_BUS_ARROW_H * 2)"/>
<xsl:variable name="botArrow_">
<xsl:choose>
<xsl:when test="((($iBotBifType = 'INITIATOR') or ($iBotBifType = 'MASTER')) and ($iBusStd = 'FSL'))">BusArrowInitiator</xsl:when>
<xsl:otherwise>BusArrowSouth</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="topArrow_">
<xsl:choose>
<xsl:when test="((($iTopBifType = 'INITIATOR') or ($iTopBifType = 'MASTER')) and ($iBusStd = 'FSL'))">BusArrowInitiator</xsl:when>
<xsl:otherwise>BusArrowNorth</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:if test="@BUSSTD">
<use x="{($iBusX + ceiling($BLKD_BIFC_W div 2)) - ceiling($BLKD_BUS_ARROW_W div 2)}"
y="{$iBusTop + ($BLKD_BIFC_H - $BLKD_BUS_ARROW_H) + $BLKD_BUS_ARROW_H}"
xlink:href="#{@BUSSTD}_{$topArrow_}"/>
<use x="{($iBusX + ceiling($BLKD_BIFC_W div 2)) - ceiling($BLKD_BUS_ARROW_W div 2)}"
y="{$iBusBot - $BLKD_BUS_ARROW_H}"
xlink:href="#{@BUSSTD}_{$botArrow_}"/>
</xsl:if>
<xsl:if test="(not(@BUSSTD) and not($iBusStd = '_bstd_'))">
<use x="{($iBusX + ceiling($BLKD_BIFC_W div 2)) - ceiling($BLKD_BUS_ARROW_W div 2)}"
y="{$iBusTop + ($BLKD_BIFC_H - $BLKD_BUS_ARROW_H) + $BLKD_BUS_ARROW_H}"
xlink:href="#{$iBusStd}_{$topArrow_}"/>
<use x="{($iBusX + ceiling($BLKD_BIFC_W div 2)) - ceiling($BLKD_BUS_ARROW_W div 2)}"
y="{$iBusBot - $BLKD_BUS_ARROW_H}"
xlink:href="#{$iBusStd}_{$botArrow_}"/>
</xsl:if>
<rect x="{($iBusX + ceiling($BLKD_BIFC_W div 2)) - ceiling($BLKD_BUS_ARROW_W div 2) + $BLKD_BUS_ARROW_G}"
y="{$iBusTop + $BLKD_BIFC_H + $BLKD_BUS_ARROW_H}"
height= "{$p2pH_ - ($BLKD_BUS_ARROW_H * 2)}"
width="{$BLKD_BUS_ARROW_W - ($BLKD_BUS_ARROW_G * 2)}"
style="stroke:none; fill:{$busStdColor_}"/>
<!--
<text class="p2pbuslabel"
x="{$iBusX + $BLKD_BUS_ARROW_W + ceiling($BLKD_BUS_ARROW_W div 2) + ceiling($BLKD_BUS_ARROW_W div 4) + 4}"
y="{$iBusTop + ($BLKD_BUS_ARROW_H * 3)}">
<xsl:value-of select="$iBusName"/>
</text>
-->
<xsl:call-template name="F_WriteText">
<xsl:with-param name="iX" select="($iBusX + $BLKD_BUS_ARROW_W + ceiling($BLKD_BUS_ARROW_W div 2) + ceiling($BLKD_BUS_ARROW_W div 4) + 4)"/>
<xsl:with-param name="iY" select="($iBusTop + ($BLKD_BUS_ARROW_H * 3))"/>
<xsl:with-param name="iText" select="$iBusName"/>
<xsl:with-param name="iClass" select="'p2pbus_label'"/>
</xsl:call-template>
<xsl:if test="$G_ROOT/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $iBusName)]/@GROUP">
<!--
<text class="ioplblgrp"
x="{$iBusX + $BLKD_BUS_ARROW_W + ceiling($BLKD_BUS_ARROW_W div 2) + ceiling($BLKD_BUS_ARROW_W div 4) + 6}"
y="{$iBusTop + ($BLKD_BUS_ARROW_H * 10)}">
<xsl:value-of select="$G_ROOT/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $iBusName)]/@GROUP"/>
</text>
-->
<xsl:call-template name="F_WriteText">
<xsl:with-param name="iX" select="(iBusX + $BLKD_BUS_ARROW_W + ceiling($BLKD_BUS_ARROW_W div 2) + ceiling($BLKD_BUS_ARROW_W div 4) + 6)"/>
<xsl:with-param name="iY" select="($iBusTop + ($BLKD_BUS_ARROW_H * 10))"/>
<xsl:with-param name="iText" select="$G_ROOT/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $iBusName)]/@GROUP"/>
<xsl:with-param name="iClass" select="'iogrp_label'"/>
</xsl:call-template>
</xsl:if>
</xsl:template>
<xsl:template name="Draw_Proc2ProcBus">
<xsl:param name="iBc_Y" select="0"/>
<xsl:param name="iBusStd" select="'_bstd_'"/>
<xsl:param name="iBusName" select="'_p2pbus_'"/>
<xsl:param name="iBcLeft_X" select="0"/>
<xsl:param name="iBcRght_X" select="0"/>
<xsl:param name="iLeftBifType" select="'_unk_'"/>
<xsl:param name="iRghtBifType" select="'_unk_'"/>
<xsl:variable name="busStdColor_">
<xsl:call-template name="F_BusStd2RGB">
<xsl:with-param name="iBusStd" select="$iBusStd"/>
</xsl:call-template>
</xsl:variable>
<xsl:variable name="pr2pr_W_" select="($iBcRght_X - $iBcLeft_X)"/>
<xsl:variable name="leftArrow_">
<xsl:choose>
<xsl:when test="((($iLeftBifType = 'INITIATOR') or ($iLeftBifType = 'MASTER')) and ($iBusStd = 'FSL'))">BusArrowHInitiator</xsl:when>
<xsl:otherwise>BusArrowWest</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="rghtArrow_">
<xsl:choose>
<xsl:when test="((($iRghtBifType = 'INITIATOR') or ($iRghtBifType = 'MASTER')) and ($iBusStd = 'FSL'))">BusArrowHInitiator</xsl:when>
<xsl:otherwise>BusArrowEast</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="bus_Y_" select="($iBc_Y + ceiling($BLKD_BIFC_H div 2) - ceiling($BLKD_BUS_ARROW_H div 2))"/>
<use x="{$iBcLeft_X}" y="{$bus_Y_}" xlink:href="#{$iBusStd}_{$leftArrow_}"/>
<use x="{$iBcRght_X - $BLKD_BUS_ARROW_W}" y="{$bus_Y_}" xlink:href="#{$iBusStd}_{$rghtArrow_}"/>
<rect x="{$iBcLeft_X + $BLKD_BUS_ARROW_W}"
y="{$bus_Y_ + $BLKD_BUS_ARROW_G}"
width= "{$pr2pr_W_ - (2 * $BLKD_BUS_ARROW_W)}"
height="{$BLKD_BUS_ARROW_H - (2 * $BLKD_BUS_ARROW_G)}" style="stroke:none; fill:{$busStdColor_}"/>
<!--
<text class="horizp2pbuslabel"
x="{$iBcLeft_X + $BLKD_BUS_ARROW_W + ceiling($BLKD_BUS_ARROW_W div 2) + ceiling($BLKD_BUS_ARROW_W div 4) + 4}"
y="{($bus_Y_)}"><xsl:value-of select="$iBusName"/></text>
<text class="horizp2pbuslabel"
x="{$iBcRght_X - (string-length($iBusName) * 8)}"
y="{($bus_Y_)}"><xsl:value-of select="$iBusName"/></text>
-->
<xsl:call-template name="F_WriteText">
<xsl:with-param name="iX" select="($iBcLeft_X + $BLKD_BUS_ARROW_W + ceiling($BLKD_BUS_ARROW_W div 2) + ceiling($BLKD_BUS_ARROW_W div 4) + 4)"/>
<xsl:with-param name="iY" select="$bus_Y_"/>
<xsl:with-param name="iText" select="$iBusName"/>
<xsl:with-param name="iClass" select="'p2pbus_label'"/>
</xsl:call-template>
<!--
<xsl:call-template name="F_WriteText">
<xsl:with-param name="iX" select="(iBcRght_X - (string-length($iBusName) * 8))"/>
<xsl:with-param name="iY" select="$bus_Y_"/>
<xsl:with-param name="iText" select="$iBusName"/>
<xsl:with-param name="iClass" select="'p2pbus_label'"/>
</xsl:call-template>
-->
</xsl:template>
<xsl:template name="Draw_SplitConnBus">
<xsl:param name="iBc_X" select="0"/>
<xsl:param name="iBc_Y" select="0"/>
<xsl:param name="iBc_Type" select="'_unk_'"/>
<xsl:param name="iBc_Side" select="'_unk_'"/>
<xsl:param name="iBusStd" select="'_bstd_'"/>
<xsl:param name="iBusName" select="'_p2pbus_'"/>
<xsl:variable name="busStdColor_">
<xsl:call-template name="F_BusStd2RGB">
<xsl:with-param name="iBusStd" select="$iBusStd"/>
</xsl:call-template>
</xsl:variable>
<xsl:variable name="connArrow_">
<xsl:choose>
<xsl:when test="((($iBc_Type = 'INITIATOR') or ($iBc_Type = 'MASTER')) and ($iBusStd = 'FSL'))">BusArrowHInitiator</xsl:when>
<xsl:otherwise>BusArrowEast</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="arrow_Y_" select="($iBc_Y + ceiling($BLKD_BIFC_H div 2) - ceiling($BLKD_BUS_ARROW_H div 2))"/>
<xsl:variable name="bus_X_">
<xsl:choose>
<xsl:when test="$iBc_Side = '0'"><xsl:value-of select="($iBc_X - ($BLKD_BUS_ARROW_W * 2))"/></xsl:when>
<xsl:when test="$iBc_Side = '1'"><xsl:value-of select="($iBc_X + $BLKD_BIFC_W + $BLKD_BUS_ARROW_W)"/></xsl:when>
</xsl:choose>
</xsl:variable>
<!--
<use x="{$bus_X_}" y="{$arrow_Y_}" xlink:href="#{$busStd}_BusArrowHInitiator"/>
-->
<xsl:variable name="arrow_X_">
<xsl:choose>
<xsl:when test="$iBc_Side = '0'"><xsl:value-of select="($iBc_X - $BLKD_BUS_ARROW_W)"/></xsl:when>
<xsl:when test="$iBc_Side = '1'"><xsl:value-of select="($iBc_X + $BLKD_BIFC_W)"/></xsl:when>
</xsl:choose>
</xsl:variable>
<xsl:choose>
<xsl:when test="(($iBusStd = 'FSL') and (($iBc_Type = 'MASTER') or ($iBc_Type = 'INITIATOR')))">
<use x="{$arrow_X_}" y="{$arrow_Y_}" xlink:href="#{$iBusStd}_{$connArrow_}"/>
<use x="{$bus_X_}" y="{$arrow_Y_}" xlink:href="#{$iBusStd}_BusArrowHInitiator"/>
</xsl:when>
<xsl:when test="(($iBc_Side = '1') and not($iBusStd = 'FSL') and (($iBc_Type = 'MASTER') or ($iBc_Type = 'INITIATOR')))">
<use x="{$arrow_X_ - $BLKD_BIFC_W}" y="{$arrow_Y_}" xlink:href="#{$iBusStd}_SplitBus_WEST"/>
</xsl:when>
<xsl:when test="(($iBc_Side = '1') and (($iBc_Type = 'SLAVE') or ($iBc_Type = 'TARGET') or ($iBc_Type = 'USER')))">
<use x="{$arrow_X_}" y="{$arrow_Y_}" xlink:href="#{$iBusStd}_SplitBus_EAST"/>
</xsl:when>
<xsl:otherwise>
<use x="{$arrow_X_}" y="{$arrow_Y_}" xlink:href="#{$iBusStd}_{$connArrow_}"/>
<use x="{$bus_X_}" y="{$arrow_Y_}" xlink:href="#{$iBusStd}_BusArrowHInitiator"/>
</xsl:otherwise>
</xsl:choose>
<xsl:variable name="text_X_">
<xsl:choose>
<xsl:when test="$iBc_Side = '0'"><xsl:value-of select="($bus_X_ - $BLKD_BUS_ARROW_W - (string-length($iBusName) * 5))"/></xsl:when>
<xsl:when test="$iBc_Side = '1'"><xsl:value-of select="($bus_X_ + $BLKD_BUS_ARROW_W)"/></xsl:when>
</xsl:choose>
</xsl:variable>
<!--
<text class="horizp2pbuslabel"
x="{$text_X_}"
y="{($arrow_Y_)}">
<xsl:value-of select="$iBusName"/>
</text>
-->
<xsl:call-template name="F_WriteText">
<xsl:with-param name="iX" select="$text_X_"/>
<xsl:with-param name="iY" select="$arrow_Y_"/>
<xsl:with-param name="iText" select="$iBusName"/>
<xsl:with-param name="iClass" select="'p2pbus_label'"/>
</xsl:call-template>
</xsl:template>
<xsl:template name="Define_SharedBus">
<xsl:param name="iBusStd" select="'PLB46'"/>
<xsl:variable name="sharedbus_w_" select="($G_Total_DrawArea_W - ($BLKD_INNER_GAP * 2))"/>
<xsl:variable name="busStdColor_">
<xsl:call-template name="F_BusStd2RGB">
<xsl:with-param name="iBusStd" select="$iBusStd"/>
</xsl:call-template>
</xsl:variable>
<xsl:variable name="busStdColor_lt_">
<xsl:call-template name="F_BusStd2RGB_LT">
<xsl:with-param name="iBusStd" select="$iBusStd"/>
</xsl:call-template>
</xsl:variable>
<g id="{$iBusStd}_SharedBus">
<use x="0" y="0" xlink:href="#{$iBusStd}_BusArrowWest"/>
<use x="{$sharedbus_w_ - $BLKD_BUS_ARROW_W}" y="0" xlink:href="#{$iBusStd}_BusArrowEast"/>
<rect x="{$BLKD_BUS_ARROW_W}"
y="{$BLKD_BUS_ARROW_G}"
width= "{$sharedbus_w_ - ($BLKD_BUS_ARROW_W * 2)}"
height="{$BLKD_BUS_ARROW_H - (2 * $BLKD_BUS_ARROW_G)}" style="stroke:none; fill:{$busStdColor_}"/>
</g>
</xsl:template>
<xsl:template name="Define_SplitBusses">
<xsl:param name="iBusStd" select="'FSL'"/>
<xsl:variable name="busStdColor_">
<xsl:call-template name="F_BusStd2RGB">
<xsl:with-param name="iBusStd" select="$iBusStd"/>
</xsl:call-template>
</xsl:variable>
<xsl:variable name="bifc_r_" select="ceiling($BLKD_BIFC_W div 3)"/>
<g id="{$iBusStd}_SplitBus_EAST">
<use x="0" y="0" xlink:href="#{$iBusStd}_BusArrowWest"/>
<rect x="{$BLKD_BUS_ARROW_W}"
y="{$BLKD_BUS_ARROW_G}"
width= "{$BLKD_BIFC_W}"
height="{$BLKD_BUS_ARROW_H - (2 * $BLKD_BUS_ARROW_G)}" style="stroke:none; fill:{$busStdColor_}"/>
</g>
<xsl:variable name="splbus_w_" select="($BLKD_BUS_ARROW_W + $BLKD_BIFC_W + $BLKD_BIFC_Wi)"/>
<g id="{$iBusStd}_SplitBus_WEST">
<use x="0" y="0" xlink:href="#{$iBusStd}_SplitBus_EAST" transform="scale(-1,1) translate({$splbus_w_ * -1},0)"/>
</g>
<g id="{$iBusStd}_SplitBus_OneWay">
<rect x="0"
y="{$BLKD_BUS_ARROW_G}"
width= "{($BLKD_BUS_ARROW_W * 2)}"
height="{$BLKD_BUS_ARROW_H - (2 * $BLKD_BUS_ARROW_G)}" style="stroke:none; fill:{$busStdColor_}"/>
<rect x="{($BLKD_BUS_ARROW_W * 2)}"
y="0"
width= "{$BLKD_BUS_ARROW_H}"
height="{$BLKD_BUS_ARROW_H}" style="stroke:none; fill:{$busStdColor_}"/>
</g>
</xsl:template>
<xsl:template name="Define_SharedBus_Group">
<!-- The Bridges go into the shared bus shape -->
<xsl:for-each select="$G_ROOT/EDKSYSTEM/BLKDIAGRAM/BRIDGESHAPES/MODULE">
<xsl:variable name="modInst_" select="@INSTANCE"/>
<xsl:variable name="modType_" select="$G_ROOT/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $modInst_)]/@MODTYPE"/>
<xsl:call-template name="Define_Peripheral">
<xsl:with-param name="iModVori" select="'normal'"/>
<xsl:with-param name="iModInst" select="$modInst_"/>
<xsl:with-param name="iModType" select="$modType_"/>
</xsl:call-template>
</xsl:for-each>
<g id="group_sharedBusses">
<!-- Draw the shared bus shapes first -->
<xsl:for-each select="$G_ROOT/EDKSYSTEM/BLKDIAGRAM/SBSSHAPES/MODULE">
<xsl:variable name="instance_" select="@INSTANCE"/>
<xsl:variable name="busStd_" select="$G_ROOT/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $instance_)]/@BUSSTD"/>
<xsl:variable name="busIndex_" select="$G_ROOT/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $instance_)]/@BUS_INDEX"/>
<xsl:variable name="busY_" select="($busIndex_ * $BLKD_SBS_LANE_H)"/>
<use x="0" y="{$busY_}" xlink:href="#{$busStd_}_SharedBus"/>
<!--
<text class="sharedbuslabel"
x="8"
y="{$busY_ + $BLKD_BUS_ARROW_H + 10}">
<xsl:value-of select="$instance_"/>
</text>
-->
<xsl:call-template name="F_WriteText">
<xsl:with-param name="iX" select="'8'"/>
<xsl:with-param name="iY" select="($busY_ + $BLKD_BUS_ARROW_H + 10)"/>
<xsl:with-param name="iText" select="$instance_"/>
<xsl:with-param name="iClass" select="'sharedbus_label'"/>
</xsl:call-template>
</xsl:for-each>
</g>
<g id="KEY_SharedBus">
<use x="0" y="0" xlink:href="#KEY_BusArrowWest"/>
<use x="30" y="0" xlink:href="#KEY_BusArrowEast"/>
<xsl:variable name="key_col_">
<xsl:call-template name="F_BusStd2RGB">
<xsl:with-param name="iBusStd" select="'KEY'"/>
</xsl:call-template>
</xsl:variable>
<rect x="{$BLKD_BUS_ARROW_W}"
y="{$BLKD_BUS_ARROW_G}"
width= "{30 - $BLKD_BUS_ARROW_W}"
height="{$BLKD_BUS_ARROW_H - (2 * $BLKD_BUS_ARROW_G)}" style="stroke:none; fill:{$key_col_}"/>
</g>
</xsl:template>
</xsl:stylesheet>

@ -1,115 +0,0 @@
<?xml version="1.0" standalone="no"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:exsl="http://exslt.org/common"
xmlns:dyn="http://exslt.org/dynamic"
xmlns:math="http://exslt.org/math"
xmlns:xlink="http://www.w3.org/1999/xlink"
extension-element-prefixes="math dyn exsl xlink">
<xsl:variable name="G_ROOT" select="/"/>
<!--
===========================================================================
CALCULATE GLOBAL VARIABLES BASED ON BLKDIAGRAM DEF IN INPUT XML
===========================================================================
-->
<xsl:variable name="G_Total_StandAloneMpmc_H">
<xsl:if test="$G_ROOT/EDKSYSTEM/BLKDIAGRAM/CMPLXSHAPES/MPMCSHAPE">
<xsl:value-of select="($BLKD_MPMC_MOD_H + $BLKD_MPMC2PROC_GAP)"/>
</xsl:if>
<xsl:if test="not($G_ROOT/EDKSYSTEM/BLKDIAGRAM/CMPLXSHAPES/MPMCSHAPE)">0</xsl:if>
</xsl:variable>
<xsl:variable name="G_Max_Stack_BlwSbs_H">
<xsl:call-template name="F_Calc_Max_Stack_BlwSbs_Height"/>
</xsl:variable>
<xsl:variable name="G_Max_Stack_AbvSbs_H">
<xsl:call-template name="F_Calc_Max_Stack_AbvSbs_Height"/>
</xsl:variable>
<xsl:variable name="G_Total_Stacks_W">
<xsl:call-template name="F_Calc_Stack_X">
<xsl:with-param name="iStackIdx" select="($G_ROOT/EDKSYSTEM/BLKDIAGRAM/@STACK_HORIZ_WIDTH)"/>
</xsl:call-template>
</xsl:variable>
<xsl:variable name="G_NumOfSharedBusses" select="count($G_ROOT/EDKSYSTEM/BLKDIAGRAM/SBSSHAPES/MODULE)"/>
<xsl:variable name="G_Total_SharedBus_H" select="($G_NumOfSharedBusses * $BLKD_SBS_LANE_H)"/>
<xsl:variable name="G_NumOfBridges" select="count($G_ROOT/EDKSYSTEM/BLKDIAGRAM/BRIDGESHAPES/MODULE)"/>
<xsl:variable name="G_Total_Bridges_W" select="(($G_NumOfBridges * ($BLKD_MOD_W + ($BLKD_BUS_LANE_W * 2))) + $BLKD_BRIDGE_GAP)"/>
<xsl:variable name="G_Total_DrawArea_CLC" select="($G_Total_Stacks_W + $G_Total_Bridges_W + ($BLKD_INNER_GAP * 2))"/>
<xsl:variable name="G_Total_DrawArea_W">
<xsl:if test="$G_Total_DrawArea_CLC &gt; ($BLKD_KEY_W + $BLKD_SPECS_W + $BLKD_SPECS2KEY_GAP)">
<xsl:value-of select="$G_Total_DrawArea_CLC"/>
</xsl:if>
<xsl:if test="not($G_Total_DrawArea_CLC &gt; ($BLKD_KEY_W + $BLKD_SPECS2KEY_GAP + $BLKD_SPECS_W))">
<xsl:value-of select="($BLKD_KEY_W + $BLKD_SPECS_W + $BLKD_SPECS2KEY_GAP)"/>
</xsl:if>
</xsl:variable>
<xsl:variable name="G_IpBucketMods_H">
<xsl:if test="$G_ROOT/EDKSYSTEM/BLKDIAGRAM/IPBUCKET/@MODS_H"><xsl:value-of select="$G_ROOT/EDKSYSTEM/BLKDIAGRAM/IPBUCKET/@MODS_H"/></xsl:if>
<xsl:if test="not($G_ROOT/EDKSYSTEM/BLKDIAGRAM/IPBUCKET/@MODS_H)">0</xsl:if>
</xsl:variable>
<xsl:variable name="G_Total_IpBucket_H" select="($G_IpBucketMods_H * ($BLKD_MOD_H + $BLKD_BIF_H))"/>
<xsl:variable name="G_Total_UnkBucket_H">
<xsl:if test="$G_ROOT/EDKSYSTEM/BLKDIAGRAM/UNKBUCKET">
<xsl:variable name="unkBucketMods_H_">
<xsl:if test="$G_ROOT/EDKSYSTEM/BLKDIAGRAM/UNKBUCKET/@MODS_H"><xsl:value-of select="$G_ROOT/EDKSYSTEM/BLKDIAGRAM/UNKBUCKET/@MODS_H"/></xsl:if>
<xsl:if test="not($G_ROOT/EDKSYSTEM/BLKDIAGRAM/UNKBUCKET/@MODS_H)">0</xsl:if>
</xsl:variable>
<xsl:variable name="total_UnkMod_H_" select="($unkBucketMods_H_ * ($BLKD_MOD_H + $BLKD_BIF_H))"/>
<xsl:variable name="unkBucketBifs_H_">
<xsl:if test="/EDKSYSTEM/BLKDIAGRAM/UNKBUCKET/@BIFS_H"><xsl:value-of select="/EDKSYSTEM/BLKDIAGRAM/UNKBUCKET/@BIFS_H"/></xsl:if>
<xsl:if test="not($G_ROOT/EDKSYSTEM/BLKDIAGRAM/UNKBUCKET/@BIFS_H)">0</xsl:if>
</xsl:variable>
<xsl:variable name="total_UnkBif_H_" select="($unkBucketBifs_H_ * ($BLKD_MOD_H + $BLKD_BIF_H))"/>
<xsl:value-of select="($total_UnkBif_H_ + $total_UnkMod_H_)"/>
</xsl:if>
<xsl:if test="not($G_ROOT/EDKSYSTEM/BLKDIAGRAM/UNKBUCKET)">0</xsl:if>
</xsl:variable>
<xsl:variable name="G_SharedBus_Y" select="($BLKD_INNER_Y + $G_Total_StandAloneMpmc_H + $G_Max_Stack_AbvSbs_H + $BLKD_PROC2SBS_GAP)"/>
<!-- ===========================================================================
Calculate the width of the Block Diagram based on the total number of
buslanes and modules in the design. If there are no buslanes or modules,
a default width, just wide enough to display the KEY and SPECS is used
=========================================================================== -->
<xsl:variable name="G_Total_Blkd_W" select="($G_Total_DrawArea_W + (($BLKD_PRTCHAN_W + $BLKD_IORCHAN_W)* 2))"/>
<xsl:variable name="G_Total_Diag_W" select="$G_Total_Blkd_W"/>
<!-- =========================================================================== -->
<!-- Calculate the height of the Block Diagram based on the total number of -->
<!-- buslanes and modules in the design. Take into account special shapes such -->
<!-- as MultiProc shapes. -->
<!-- =========================================================================== -->
<xsl:variable name="G_Total_DrawArea_H" select="($G_Total_StandAloneMpmc_H + $G_Max_Stack_AbvSbs_H + $BLKD_PROC2SBS_GAP + $G_Total_SharedBus_H + $G_Max_Stack_BlwSbs_H + $BLKD_SBS2IP_GAP + $G_Total_IpBucket_H + $BLKD_IP2UNK_GAP + $G_Total_UnkBucket_H + ($BLKD_INNER_GAP * 2))"/>
<xsl:variable name="G_Total_Blkd_H" select="($G_Total_DrawArea_H + (($BLKD_PRTCHAN_H + $BLKD_IORCHAN_H)* 2))"/>
<xsl:variable name="G_Total_Diag_H">
<xsl:if test="($IN_TESTMODE = 'TRUE')">
<xsl:message>Generating Blkdiagram in TestMode </xsl:message>
<xsl:value-of select="$G_Total_Blkd_H"/>
</xsl:if>
<xsl:if test="(not($IN_TESTMODE) or ($IN_TESTMODE = 'FALSE'))">
<xsl:value-of select="($G_Total_Blkd_H + $BLKD_DRAWAREA2KEY_GAP + $BLKD_KEY_H)"/>
</xsl:if>
</xsl:variable>
</xsl:stylesheet>

@ -1,495 +0,0 @@
<?xml version="1.0" standalone="no"?>
<xsl:stylesheet version="1.0"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:exsl="http://exslt.org/common"
xmlns:dyn="http://exslt.org/dynamic"
xmlns:math="http://exslt.org/math"
xmlns:xlink="http://www.w3.org/1999/xlink"
extension-element-prefixes="math dyn exsl xlink">
<!--
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"
doctype-public="-//W3C//DTD SVG Tiny 1.1//EN"
doctype-system="http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd"/>
-->
<!-- ======================= DEF BLOCK =============================== -->
<xsl:template name="Define_IOPorts">
<xsl:variable name="key_col_">
<xsl:call-template name="F_BusStd2RGB">
<xsl:with-param name="iBusStd" select="'KEY'"/>
</xsl:call-template>
</xsl:variable>
<xsl:variable name="key_lt_col_">
<xsl:call-template name="F_BusStd2RGB_LT">
<xsl:with-param name="iBusStd" select="'KEY'"/>
</xsl:call-template>
</xsl:variable>
<g id="G_IOPort">
<rect
x="0"
y="0"
width= "{$BLKD_IOP_W}"
height="{$BLKD_IOP_H}"
fill="{$COL_IORING_LT}"
stroke="{$COL_IORING}"
stroke-width="1"/>
<path d="M 0,0
L {$BLKD_IOP_W},{ceiling($BLKD_IOP_H div 2)}
L 0,{$BLKD_IOP_H}
Z"
stroke="none"
fill="{$COL_SYSPRT}"/>
</g>
<g id="G_BIPort">
<rect
x="0"
y="0"
width= "{$BLKD_IOP_W}"
height="{$BLKD_IOP_H}" style="fill:{$COL_IORING_LT}; stroke:{$COL_IORING}; stroke-width:1"/>
<path class="btop"
d="M 0,{ceiling($BLKD_IOP_H div 2)}
{ceiling($BLKD_IOP_W div 2)},0
{$BLKD_IOP_W},{ceiling($BLKD_IOP_H div 2)}
Z" style="stroke:none; fill:{$COL_SYSPRT}"/>
<path class="bbot"
d="M 0,{ceiling($BLKD_IOP_H div 2)}
{ceiling($BLKD_IOP_W div 2)},{$BLKD_IOP_H}
{$BLKD_IOP_W},{ceiling($BLKD_IOP_H div 2)}
Z" style="stroke:none; fill:{$COL_SYSPRT}"/>
</g>
<g id="KEY_IOPort">
<rect
x="0"
y="0"
width= "{$BLKD_IOP_W}"
height="{$BLKD_IOP_H}" style="fill:{$key_lt_col_}; stroke:none;"/>
<path class="ioport"
d="M 0,0
L {$BLKD_IOP_W},{ceiling($BLKD_IOP_H div 2)}
L 0,{$BLKD_IOP_H}
Z" style="stroke:none; fill:{$key_col_}"/>
</g>
<g id="KEY_BIPort">
<rect
x="0"
y="0"
width= "{$BLKD_IOP_W}"
height="{$BLKD_IOP_H}" style="fill:{$key_lt_col_}; stroke:none;"/>
<path class="btop"
d="M 0,{ceiling($BLKD_IOP_H div 2)}
{ceiling($BLKD_IOP_W div 2)},0
{$BLKD_IOP_W},{ceiling($BLKD_IOP_H div 2)}
Z" style="stroke:none; fill:{$key_col_}"/>
<path class="bbot"
d="M 0,{ceiling($BLKD_IOP_H div 2)}
{ceiling($BLKD_IOP_W div 2)},{$BLKD_IOP_H}
{$BLKD_IOP_W},{ceiling($BLKD_IOP_H div 2)}
Z" style="stroke:none; fill:{$key_col_}"/>
</g>
<g id="KEY_INPort">
<use x="0" y="0" xlink:href="#KEY_IOPort"/>
<rect
x="{$BLKD_IOP_W}"
y="0"
width= "{ceiling($BLKD_IOP_W div 2)}"
height="{$BLKD_IOP_H}" style="fill:{$COL_SYSPRT}; stroke:none;"/>
</g>
<g id="KEY_OUTPort">
<use x="0" y="0" xlink:href="#KEY_IOPort" transform="scale(-1,1) translate({$BLKD_IOP_W * -1},0)"/>
<rect
x="{$BLKD_IOP_W}"
y="0"
width= "{ceiling($BLKD_IOP_W div 2)}"
height="{$BLKD_IOP_H}" style="fill:{$COL_SYSPRT}; stroke:none;"/>
</g>
<g id="KEY_INOUTPort">
<use x="0" y="0" xlink:href="#KEY_BIPort"/>
<rect
x="{$BLKD_IOP_W}"
y="0"
width= "{ceiling($BLKD_IOP_W div 2)}"
height="{$BLKD_IOP_H}" style="fill:{$COL_SYSPRT}; stroke:none;"/>
</g>
</xsl:template>
<!-- ======================= DRAW BLOCK =============================== -->
<xsl:template name="Draw_IOPorts">
<xsl:variable name="ports_count_" select="count($G_ROOT/EDKSYSTEM/EXTERNALPORTS/PORT)"/>
<xsl:if test="($ports_count_ &gt; 30)">
<xsl:call-template name="Draw_IOPorts_4Sides"/>
</xsl:if>
<xsl:if test="($ports_count_ &lt;= 30)">
<xsl:call-template name="Draw_IOPorts_2Sides"/>
</xsl:if>
</xsl:template>
<xsl:template name="Draw_IOPorts_2Sides">
<xsl:variable name="ports_count_" select="count($G_ROOT/EDKSYSTEM/EXTERNALPORTS/PORT)"/>
<xsl:variable name="ports_per_side_" select="ceiling($ports_count_ div 2)"/>
<xsl:variable name="h_ofs_">
<xsl:value-of select="$BLKD_PRTCHAN_W + ceiling(($G_Total_DrawArea_W - (($ports_per_side_ * $BLKD_IOP_W) + (($ports_per_side_ - 1) * $BLKD_IOP_SPC))) div 2)"/>
</xsl:variable>
<xsl:variable name="v_ofs_">
<xsl:value-of select="$BLKD_PRTCHAN_H + ceiling(($G_Total_DrawArea_H - (($ports_per_side_ * $BLKD_IOP_H) + (($ports_per_side_ - 1) * $BLKD_IOP_SPC))) div 2)"/>
</xsl:variable>
<xsl:for-each select="EXTERNALPORTS/PORT">
<xsl:sort data-type="number" select="@INDEX" order="ascending"/>
<xsl:variable name="poffset_" select="0"/>
<xsl:variable name="pcount_" select="$poffset_ + (position() -1)"/>
<xsl:variable name="pdir_">
<xsl:choose>
<xsl:when test="(@DIR='I' or @DIR='IN' or @DIR='INPUT')">I</xsl:when>
<xsl:when test="(@DIR='O' or @DIR='OUT' or @DIR='OUTPUT')">O</xsl:when>
<xsl:when test="(@DIR='IO' or @DIR='INOUT')">B</xsl:when>
<xsl:otherwise>I</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="pside_">
<xsl:choose>
<xsl:when test="($pcount_ &gt;= ($ports_per_side_ * 0) and ($pcount_ &lt; ($ports_per_side_ * 1)))">W</xsl:when>
<xsl:when test="($pcount_ &gt;= ($ports_per_side_ * 1) and ($pcount_ &lt; ($ports_per_side_ * 2)))">E</xsl:when>
<xsl:otherwise>D</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="pdec_">
<xsl:choose>
<xsl:when test="($pside_ = 'W')"><xsl:value-of select="($ports_per_side_ * 0)"/></xsl:when>
<xsl:when test="($pside_ = 'E')"><xsl:value-of select="($ports_per_side_ * 1)"/></xsl:when>
<xsl:otherwise>0</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="px_">
<xsl:choose>
<xsl:when test="($pside_ = 'W')"><xsl:value-of select="($BLKD_PRTCHAN_W - $BLKD_IOP_W)"/></xsl:when>
<xsl:when test="($pside_ = 'S')"><xsl:value-of select="($h_ofs_ + (((position() - 1) - $pdec_) * ($BLKD_IOP_SPC + $BLKD_IOP_W)) - 2)"/></xsl:when>
<xsl:when test="($pside_ = 'E')"><xsl:value-of select="($BLKD_PRTCHAN_W + ($BLKD_IORCHAN_W * 2) + $G_Total_DrawArea_W)"/></xsl:when>
<xsl:when test="($pside_ = 'N')"><xsl:value-of select="($h_ofs_ + (((position() - 1) - $pdec_) * ($BLKD_IOP_SPC + $BLKD_IOP_W)))"/></xsl:when>
<xsl:otherwise>0</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="py_">
<xsl:choose>
<xsl:when test="($pside_ = 'W')"><xsl:value-of select="($v_ofs_ + (((position() - 1) - $pdec_) * ($BLKD_IOP_SPC + $BLKD_IOP_H)))"/></xsl:when>
<xsl:when test="($pside_ = 'S')"><xsl:value-of select="($BLKD_PRTCHAN_H + ($BLKD_IORCHAN_H * 2) + $G_Total_DrawArea_H)"/></xsl:when>
<xsl:when test="($pside_ = 'E')"><xsl:value-of select="($v_ofs_ + (((position() - 1) - $pdec_) * ($BLKD_IOP_SPC + $BLKD_IOP_H)))"/></xsl:when>
<xsl:when test="($pside_ = 'N')"><xsl:value-of select="($BLKD_PRTCHAN_H - $BLKD_IOP_H)"/></xsl:when>
<xsl:otherwise>0</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="prot_">
<xsl:choose>
<xsl:when test="(($pside_ = 'W') and ($pdir_ = 'I'))">0</xsl:when>
<xsl:when test="(($pside_ = 'S') and ($pdir_ = 'I'))">-90</xsl:when>
<xsl:when test="(($pside_ = 'E') and ($pdir_ = 'I'))">180</xsl:when>
<xsl:when test="(($pside_ = 'N') and ($pdir_ = 'I'))">90</xsl:when>
<xsl:when test="(($pside_ = 'W') and ($pdir_ = 'O'))">180</xsl:when>
<xsl:when test="(($pside_ = 'S') and ($pdir_ = 'O'))">90</xsl:when>
<xsl:when test="(($pside_ = 'E') and ($pdir_ = 'O'))">0</xsl:when>
<xsl:when test="(($pside_ = 'N') and ($pdir_ = 'O'))">-90</xsl:when>
<xsl:when test="(($pside_ = 'W') and ($pdir_ = 'B'))">0</xsl:when>
<xsl:when test="(($pside_ = 'S') and ($pdir_ = 'B'))">0</xsl:when>
<xsl:when test="(($pside_ = 'E') and ($pdir_ = 'B'))">0</xsl:when>
<xsl:when test="(($pside_ = 'N') and ($pdir_ = 'B'))">0</xsl:when>
<xsl:otherwise>0</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="txo_">
<xsl:choose>
<xsl:when test="($pside_ = 'W')">-10</xsl:when>
<xsl:when test="($pside_ = 'S')">6</xsl:when>
<xsl:when test="($pside_ = 'E')"><xsl:value-of select="(($BLKD_IOP_W * 2) - 4)"/></xsl:when>
<xsl:when test="($pside_ = 'N')">6</xsl:when>
<xsl:otherwise>0</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="tyo_">
<xsl:choose>
<xsl:when test="($pside_ = 'W')"><xsl:value-of select="ceiling($BLKD_IOP_H div 2) + 6"/></xsl:when>
<xsl:when test="($pside_ = 'S')"><xsl:value-of select="($BLKD_IOP_H * 2) + 4"/></xsl:when>
<xsl:when test="($pside_ = 'E')"><xsl:value-of select="ceiling($BLKD_IOP_H div 2) + 6"/></xsl:when>
<xsl:when test="($pside_ = 'N')">-2</xsl:when>
<xsl:otherwise>0</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:if test="$pdir_ = 'B'">
<use x="{$px_}"
y="{$py_}"
id="{@NAME}"
xlink:href="#G_BIPort"
transform="rotate({$prot_},{$px_ + ceiling($BLKD_IOP_W div 2)},{$py_ + ceiling($BLKD_IOP_H div 2)})"/>
</xsl:if>
<xsl:if test="(($pside_ = 'S') and not($pdir_ = 'B'))">
<rect
x="{$px_}"
y="{$py_}"
width= "{$BLKD_IOP_W}"
height="{$BLKD_IOP_H}" style="stroke:{$COL_IORING}; stroke-width:1"/>
</xsl:if>
<xsl:if test="not($pdir_ = 'B')">
<use x="{$px_}"
y="{$py_}"
id="{@NAME}"
xlink:href="#G_IOPort"
transform="rotate({$prot_},{$px_ + ceiling($BLKD_IOP_W div 2)},{$py_ + ceiling($BLKD_IOP_H div 2)})"/>
</xsl:if>
<text class="iopnumb"
x="{$px_ + $txo_}"
y="{$py_ + $tyo_}">
<xsl:value-of select="@INDEX"/><tspan class="iopgrp"><xsl:value-of select="@GROUP"/></tspan>
</text>
</xsl:for-each>
</xsl:template>
<xsl:template name="Draw_IOPorts_4Sides">
<xsl:variable name="ports_count_" select="count($G_ROOT/EDKSYSTEM/EXTERNALPORTS/PORT)"/>
<xsl:variable name="ports_per_side_" select="ceiling($ports_count_ div 4)"/>
<xsl:variable name="h_ofs_">
<xsl:value-of select="$BLKD_PRTCHAN_W + ceiling(($G_Total_DrawArea_W - (($ports_per_side_ * $BLKD_IOP_W) + (($ports_per_side_ - 1) * $BLKD_IOP_SPC))) div 2)"/>
</xsl:variable>
<xsl:variable name="v_ofs_">
<xsl:value-of select="$BLKD_PRTCHAN_H + ceiling(($G_Total_DrawArea_H - (($ports_per_side_ * $BLKD_IOP_H) + (($ports_per_side_ - 1) * $BLKD_IOP_SPC))) div 2)"/>
</xsl:variable>
<xsl:for-each select="$G_ROOT/EDKSYSTEM/EXTERNALPORTS/PORT">
<xsl:sort data-type="number" select="@INDEX" order="ascending"/>
<xsl:variable name="poffset_" select="0"/>
<xsl:variable name="pcount_" select="$poffset_ + (position() -1)"/>
<xsl:variable name="pdir_">
<xsl:choose>
<xsl:when test="(@DIR='I' or @DIR='IN' or @DIR='INPUT')">I</xsl:when>
<xsl:when test="(@DIR='O' or @DIR='OUT' or @DIR='OUTPUT')">O</xsl:when>
<xsl:when test="(@DIR='IO' or @DIR='INOUT')">B</xsl:when>
<xsl:otherwise>I</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="pside_">
<xsl:choose>
<xsl:when test="($pcount_ &gt;= ($ports_per_side_ * 0) and ($pcount_ &lt; ($ports_per_side_ * 1)))">W</xsl:when>
<xsl:when test="($pcount_ &gt;= ($ports_per_side_ * 1) and ($pcount_ &lt; ($ports_per_side_ * 2)))">S</xsl:when>
<xsl:when test="($pcount_ &gt;= ($ports_per_side_ * 2) and ($pcount_ &lt; ($ports_per_side_ * 3)))">E</xsl:when>
<xsl:when test="($pcount_ &gt;= ($ports_per_side_ * 3) and ($pcount_ &lt; ($ports_per_side_ * 4)))">N</xsl:when>
<xsl:otherwise>D</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="pdec_">
<xsl:choose>
<xsl:when test="($pside_ = 'W')"><xsl:value-of select="($ports_per_side_ * 0)"/></xsl:when>
<xsl:when test="($pside_ = 'S')"><xsl:value-of select="($ports_per_side_ * 1)"/></xsl:when>
<xsl:when test="($pside_ = 'E')"><xsl:value-of select="($ports_per_side_ * 2)"/></xsl:when>
<xsl:when test="($pside_ = 'N')"><xsl:value-of select="($ports_per_side_ * 3)"/></xsl:when>
<xsl:otherwise>0</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="px_">
<xsl:choose>
<xsl:when test="($pside_ = 'W')"><xsl:value-of select="($BLKD_PRTCHAN_W - $BLKD_IOP_W)"/></xsl:when>
<xsl:when test="($pside_ = 'S')"><xsl:value-of select="($h_ofs_ + (((position() - 1) - $pdec_) * ($BLKD_IOP_SPC + $BLKD_IOP_W)) - 2)"/></xsl:when>
<xsl:when test="($pside_ = 'E')"><xsl:value-of select="($BLKD_PRTCHAN_W + ($BLKD_IORCHAN_W * 2) + $G_Total_DrawArea_W)"/></xsl:when>
<xsl:when test="($pside_ = 'N')"><xsl:value-of select="($h_ofs_ + (((position() - 1) - $pdec_) * ($BLKD_IOP_SPC + $BLKD_IOP_W)))"/></xsl:when>
<xsl:otherwise>0</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="py_">
<xsl:choose>
<xsl:when test="($pside_ = 'W')"><xsl:value-of select="($v_ofs_ + (((position() - 1) - $pdec_) * ($BLKD_IOP_SPC + $BLKD_IOP_H)))"/></xsl:when>
<xsl:when test="($pside_ = 'S')"><xsl:value-of select="($BLKD_PRTCHAN_H + ($BLKD_IORCHAN_H * 2) + $G_Total_DrawArea_H)"/></xsl:when>
<xsl:when test="($pside_ = 'E')"><xsl:value-of select="($v_ofs_ + (((position() - 1) - $pdec_) * ($BLKD_IOP_SPC + $BLKD_IOP_H)))"/></xsl:when>
<xsl:when test="($pside_ = 'N')"><xsl:value-of select="($BLKD_PRTCHAN_H - $BLKD_IOP_H)"/></xsl:when>
<xsl:otherwise>0</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="prot_">
<xsl:choose>
<xsl:when test="(($pside_ = 'W') and ($pdir_ = 'I'))">0</xsl:when>
<xsl:when test="(($pside_ = 'S') and ($pdir_ = 'I'))">-90</xsl:when>
<xsl:when test="(($pside_ = 'E') and ($pdir_ = 'I'))">180</xsl:when>
<xsl:when test="(($pside_ = 'N') and ($pdir_ = 'I'))">90</xsl:when>
<xsl:when test="(($pside_ = 'W') and ($pdir_ = 'O'))">180</xsl:when>
<xsl:when test="(($pside_ = 'S') and ($pdir_ = 'O'))">90</xsl:when>
<xsl:when test="(($pside_ = 'E') and ($pdir_ = 'O'))">0</xsl:when>
<xsl:when test="(($pside_ = 'N') and ($pdir_ = 'O'))">-90</xsl:when>
<xsl:when test="(($pside_ = 'W') and ($pdir_ = 'B'))">0</xsl:when>
<xsl:when test="(($pside_ = 'S') and ($pdir_ = 'B'))">0</xsl:when>
<xsl:when test="(($pside_ = 'E') and ($pdir_ = 'B'))">0</xsl:when>
<xsl:when test="(($pside_ = 'N') and ($pdir_ = 'B'))">0</xsl:when>
<xsl:otherwise>0</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="txo_">
<xsl:choose>
<xsl:when test="($pside_ = 'W')">-14</xsl:when>
<xsl:when test="($pside_ = 'S')">8</xsl:when>
<xsl:when test="($pside_ = 'E')"><xsl:value-of select="(($BLKD_IOP_W * 2) - 4)"/></xsl:when>
<xsl:when test="($pside_ = 'N')">8</xsl:when>
<xsl:otherwise>0</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="tyo_">
<xsl:choose>
<xsl:when test="($pside_ = 'W')"><xsl:value-of select="ceiling($BLKD_IOP_H div 2) + 6"/></xsl:when>
<xsl:when test="($pside_ = 'S')"><xsl:value-of select="($BLKD_IOP_H * 2) + 4"/></xsl:when>
<xsl:when test="($pside_ = 'E')"><xsl:value-of select="ceiling($BLKD_IOP_H div 2) + 6"/></xsl:when>
<xsl:when test="($pside_ = 'N')">-2</xsl:when>
<xsl:otherwise>0</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:if test="$pdir_ = 'B'">
<use x="{$px_}"
y="{$py_}"
id="{@NAME}"
xlink:href="#G_BIPort"
transform="rotate({$prot_},{$px_ + ceiling($BLKD_IOP_W div 2)},{$py_ + ceiling($BLKD_IOP_H div 2)})"/>
</xsl:if>
<xsl:if test="(($pside_ = 'S') and not($pdir_ = 'B'))">
<rect
x="{$px_}"
y="{$py_}"
width= "{$BLKD_IOP_W}"
height="{$BLKD_IOP_H}" style="stroke:{$COL_IORING}; stroke-width:1"/>
</xsl:if>
<xsl:if test="not($pdir_ = 'B')">
<use x="{$px_}"
y="{$py_}"
id="{@NAME}"
xlink:href="#G_IOPort"
transform="rotate({$prot_},{$px_ + ceiling($BLKD_IOP_W div 2)},{$py_ + ceiling($BLKD_IOP_H div 2)})"/>
</xsl:if>
<text class="iopnumb"
x="{$px_ + $txo_}"
y="{$py_ + $tyo_}"><xsl:value-of select="@INDEX"/><tspan class="iopgrp"><xsl:value-of select="@GROUP"/></tspan>
</text>
</xsl:for-each>
</xsl:template>
<xsl:template name="Define_ExtPortsTable">
<!--
<xsl:if test="$oriented_= 'WEST'"><xsl:value-of select="$proc2procX_ - (string-length(@BUSNAME) * 6)"/></xsl:if>
<xsl:variable name="max_name_" select="math:max(string-length($G_ROOT/EDKSYSTEM/EXTERNALPORTS/PORT/@NAME))"/>
<xsl:variable name="max_sgnm_" select="math:max(string-length($G_ROOT/EDKSYSTEM/EXTERNALPORTS/PORT/@SIGNAME))"/>
<xsl:message>MAX NAME <xsl:value-of select="$max_name_"/></xsl:message>
<xsl:message>MAX SIG <xsl:value-of select="$max_sgnm_"/></xsl:message>
-->
<xsl:variable name="ext_ports_">
<xsl:if test="not($G_ROOT/EDKSYSTEM/EXTERNALPORTS/PORT)">
<EXTPORT NAME="__none__" SIGNAME="__none_" NAMELEN="0" SIGLEN="0"/>
</xsl:if>
<xsl:if test="$G_ROOT/EDKSYSTEM/EXTERNALPORTS/PORT">
<xsl:for-each select="$G_ROOT/EDKSYSTEM/EXTERNALPORTS/PORT">
<EXTPORT NAME="{@NAME}" SIGNAME="{@SIGNAME}" NAMELEN="{string-length(@NAME)}" SIGLEN="{string-length(@SIGNAME)}"/>
</xsl:for-each>
</xsl:if>
</xsl:variable>
<xsl:variable name="max_name_" select="math:max(exsl:node-set($ext_ports_)/EXTPORT/@NAMELEN)"/>
<xsl:variable name="max_sign_" select="math:max(exsl:node-set($ext_ports_)/EXTPORT/@SIGLEN)"/>
<xsl:variable name="h_font_" select="12"/>
<xsl:variable name="w_font_" select="12"/>
<xsl:variable name="w_num_" select="($w_font_ * 5)"/>
<xsl:variable name="w_dir_" select="($w_font_ * 3)"/>
<xsl:variable name="w_lsbmsb_" select="($w_font_ * 9)"/>
<xsl:variable name="w_attr_" select="($w_font_ * 4)"/>
<xsl:variable name="w_name_" select="($w_font_ * $max_name_)"/>
<xsl:variable name="w_sign_" select="($w_font_ * $max_sign_)"/>
<xsl:variable name="w_table_" select="($w_num_ + $w_name_ + $w_dir_ + $w_sign_ + $w_attr_)"/>
<!--
<xsl:message>MAX NAME <xsl:value-of select="$max_name_"/></xsl:message>
<xsl:message>MAX SIG <xsl:value-of select="$max_sign_"/></xsl:message>
<xsl:message>W NUM <xsl:value-of select="$w_num_"/></xsl:message>
<xsl:message>W DIR <xsl:value-of select="$w_dir_"/></xsl:message>
<xsl:message>W NAM <xsl:value-of select="$w_name_"/></xsl:message>
<xsl:message>W SIG <xsl:value-of select="$w_sign_"/></xsl:message>
<xsl:message>W ATT <xsl:value-of select="$w_attr_"/></xsl:message>
<xsl:message>W TABLE <xsl:value-of select="$w_table_"/></xsl:message>
-->
<g id="BlkDiagram_ExtPortsTable">
<rect
x="0"
y="0"
width= "{$w_table_}"
height="{$h_font_}" style="fill:{$COL_RED}; stroke:none; stroke-width:1"/>
</g>
</xsl:template>
<!-- ======================= END MAIN BLOCK =========================== -->
</xsl:stylesheet>

@ -1,465 +0,0 @@
<?xml version="1.0" standalone="no"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:exsl="http://exslt.org/common"
xmlns:dyn="http://exslt.org/dynamic"
xmlns:math="http://exslt.org/math"
xmlns:xlink="http://www.w3.org/1999/xlink"
extension-element-prefixes="math dyn exsl xlink">
<!--
<xsl:output method="xml"
version="1.0"
encoding="UTF-8"
indent="yes"
doctype-public="-//W3C//DTD SVG Tiny 1.1//EN"
doctype-system="http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd"/>
-->
<!-- ======================= DEF BLOCK =================================== -->
<xsl:template name="Define_AllStacks">
<xsl:for-each select="$G_ROOT/EDKSYSTEM/BLKDIAGRAM/BCLANESPACES/BCLANESPACE[(@EAST &lt; $G_ROOT/EDKSYSTEM/BLKDIAGRAM/@STACK_HORIZ_WIDTH)]">
<xsl:call-template name="Define_Stack">
<xsl:with-param name="iStackIdx" select="@EAST"/>
</xsl:call-template>
</xsl:for-each>
</xsl:template>
<xsl:template name="Define_Stack">
<xsl:param name="iStackIdx" select="100"/>
<!-- Define the stack's peripheral shapes-->
<xsl:for-each select="$G_ROOT/EDKSYSTEM/BLKDIAGRAM/CMPLXSHAPES/CMPLXSHAPE[((@STACK_HORIZ_INDEX = $iStackIdx) and not(@MODCLASS = 'MEMORY_UNIT'))]">
<xsl:for-each select="MODULE">
<xsl:variable name="modInst_" select="@INSTANCE"/>
<xsl:variable name="modType_" select="$G_ROOT/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $modInst_)]/@MODTYPE"/>
<xsl:call-template name="Define_Peripheral">
<xsl:with-param name="iModInst" select="$modInst_"/>
<xsl:with-param name="iModType" select="$modType_"/>
<xsl:with-param name="iShapeId" select="../@SHAPE_ID"/>
<xsl:with-param name="iHorizIdx" select="../@STACK_HORIZ_INDEX"/>
<xsl:with-param name="iVertiIdx" select="../@SHAPE_VERTI_INDEX"/>
</xsl:call-template>
</xsl:for-each>
</xsl:for-each>
<!-- Define the stack's memory shapes-->
<xsl:for-each select="$G_ROOT/EDKSYSTEM/BLKDIAGRAM/CMPLXSHAPES/CMPLXSHAPE[((@STACK_HORIZ_INDEX = $iStackIdx) and (@MODCLASS='MEMORY_UNIT'))]">
<xsl:call-template name="Define_MemoryUnit">
<xsl:with-param name="iShapeId" select="@SHAPE_ID"/>
</xsl:call-template>
</xsl:for-each>
<!-- Define the stack's processors-->
<xsl:for-each select="$G_ROOT/EDKSYSTEM/BLKDIAGRAM/PROCSHAPES/MODULE[@INSTANCE and @BIFS_W and @BIFS_H and (@STACK_HORIZ_INDEX = $iStackIdx)]">
<xsl:call-template name="Define_Processor"/>
</xsl:for-each>
<!-- Make an inventory of all the things in this processor's stack -->
<xsl:variable name="pstackW_">
<xsl:call-template name="F_Calc_Stack_Width">
<xsl:with-param name="iStackIdx" select="$iStackIdx"/>
</xsl:call-template>
</xsl:variable>
<xsl:variable name="pstackH_">
<xsl:call-template name="F_Calc_Stack_Height">
<xsl:with-param name="iStackIdx" select="$iStackIdx"/>
</xsl:call-template>
</xsl:variable>
<!--
<xsl:message>Proc Stack Height <xsl:value-of select="$pstackH_"/></xsl:message>
<xsl:message>Proc Stack Height <xsl:value-of select="$pstackH_"/></xsl:message>
-->
<xsl:variable name="procW_" select="$BLKD_MOD_W"/>
<xsl:variable name="procX_" select="(ceiling($pstackW_ div 2) - ceiling($procW_ div 2))"/>
<xsl:variable name="sbsGap_" select="($BLKD_PROC2SBS_GAP + $G_Total_SharedBus_H)"/>
<xsl:variable name="stack_name_">
<xsl:call-template name="F_generate_Stack_Name">
<xsl:with-param name="iHorizIdx" select="$iStackIdx"/>
</xsl:call-template>
</xsl:variable>
<!--
<xsl:message>Horiz index<xsl:value-of select="$stackIdx"/></xsl:message>
<xsl:message>Drawing stack <xsl:value-of select="$stack_name_"/></xsl:message>
-->
<!-- Now use all this stuff to draw the stack-->
<g id="{$stack_name_}">
<rect x="0"
y="0"
rx="6"
ry="6"
width = "{$pstackW_}"
height= "{$pstackH_}"
style="fill:{$COL_BG}; stroke:none;"/>
<!-- First draw the the processor's peripherals-->
<xsl:for-each select="$G_ROOT/EDKSYSTEM/BLKDIAGRAM/CMPLXSHAPES/CMPLXSHAPE[(@STACK_HORIZ_INDEX = $iStackIdx)]">
<xsl:sort select="@STACK_VERTI_INDEX" data-type="number"/>
<xsl:variable name="shapeW_" select="(@MODS_W * $BLKD_MOD_W)"/>
<xsl:variable name="shapeX_" select="(ceiling($pstackW_ div 2) - ceiling($shapeW_ div 2))"/>
<xsl:variable name="stack_SymName_">
<xsl:call-template name="F_generate_Stack_SymbolName">
<xsl:with-param name="iHorizIdx" select="@STACK_HORIZ_INDEX"/>
<xsl:with-param name="iVertiIdx" select="@SHAPE_VERTI_INDEX"/>
</xsl:call-template>
</xsl:variable>
<!--
<xsl:message>Drawing stack peripheral <xsl:value-of select="$stack_SymName_"/></xsl:message>
-->
<xsl:variable name="shapeY_">
<xsl:call-template name="F_Calc_Stack_Shape_Y">
<xsl:with-param name="iHorizIdx" select="@STACK_HORIZ_INDEX"/>
<xsl:with-param name="iVertiIdx" select="@SHAPE_VERTI_INDEX"/>
</xsl:call-template>
</xsl:variable>
<use x="{$shapeX_}" y="{$shapeY_}" xlink:href="#{$stack_SymName_}"/>
</xsl:for-each>
<!-- Then draw the slave buckets for the shared busses that this processor is master to -->
<xsl:for-each select="$G_ROOT/EDKSYSTEM/BLKDIAGRAM/SBSBUCKETS/SBSBUCKET[(@STACK_HORIZ_INDEX = $iStackIdx)]">
<xsl:sort select="@SHAPE_VERTI_INDEX" data-type="number"/>
<xsl:variable name="bucketW_" select="(($BLKD_MOD_BKTLANE_W * 2) + (($BLKD_MOD_W * @MODS_W) + ($BLKD_MOD_BUCKET_G * (@MODS_W - 1))))"/>
<xsl:variable name="bucketX_" select="(ceiling($pstackW_ div 2) - ceiling($bucketW_ div 2))"/>
<xsl:variable name="bucketY_">
<xsl:call-template name="F_Calc_Stack_Shape_Y">
<xsl:with-param name="iHorizIdx" select="@STACK_HORIZ_INDEX"/>
<xsl:with-param name="iVertiIdx" select="@SHAPE_VERTI_INDEX"/>
</xsl:call-template>
</xsl:variable>
<!--
<xsl:message>SBS Bucket Y <xsl:value-of select="$bucketY_"/></xsl:message>
-->
<use x="{$bucketX_}" y="{$bucketY_}" xlink:href="#sbsbucket_{@BUSNAME}"/>
<xsl:variable name="slavesOfTxt_">SLAVES OF <xsl:value-of select="@BUSNAME"/></xsl:variable>
<!--
<text class="bkt_label"
x="{$bucketX_}"
y="{$bucketY_ - 4}"><xsl:value-of select="$slavesOfTxt_"/></text>
-->
<xsl:call-template name="F_WriteText">
<xsl:with-param name="iX" select="$bucketX_"/>
<xsl:with-param name="iY" select="($bucketY_ - 4)"/>
<xsl:with-param name="iText" select="$slavesOfTxt_"/>
<xsl:with-param name="iClass" select="'bkt_label'"/>
</xsl:call-template>
</xsl:for-each>
<!-- Then draw the the processor itself -->
<xsl:for-each select="$G_ROOT/EDKSYSTEM/BLKDIAGRAM/PROCSHAPES/MODULE[(@STACK_HORIZ_INDEX = $iStackIdx)]">
<xsl:sort select="@SHAPE_VERTI_INDEX" data-type="number"/>
<xsl:variable name="procY_">
<xsl:call-template name="F_Calc_Stack_Shape_Y">
<xsl:with-param name="iHorizIdx" select="@STACK_HORIZ_INDEX"/>
<xsl:with-param name="iVertiIdx" select="@SHAPE_VERTI_INDEX"/>
</xsl:call-template>
</xsl:variable>
<xsl:variable name="stack_SymName_">
<xsl:call-template name="F_generate_Stack_SymbolName">
<xsl:with-param name="iHorizIdx" select="@STACK_HORIZ_INDEX"/>
<xsl:with-param name="iVertiIdx" select="@SHAPE_VERTI_INDEX"/>
</xsl:call-template>
</xsl:variable>
<use x="{$procX_}" y="{$procY_}" xlink:href="#{$stack_SymName_}"/>
<!--
<xsl:if test = "not(@IS_LIKEPROC)">
<text class="ipclass_label"
x="{$procX_}"
y="{$procY_ - 4}">PROCESSOR</text>
</xsl:if>
<xsl:if test = "@IS_LIKEPROC = 'TRUE'">
<text class="ipclass_label"
x="{$procX_}"
y="{$procY_ - 4}">USER MODULE</text>
</xsl:if>
-->
<xsl:if test = "not(@IS_LIKEPROC)">
<xsl:call-template name="F_WriteText">
<xsl:with-param name="iX" select="$procX_"/>
<xsl:with-param name="iY" select="($procY_ - 4)"/>
<xsl:with-param name="iText" select="'PROCESSOR'"/>
<xsl:with-param name="iClass" select="'ipclass_label'"/>
</xsl:call-template>
</xsl:if>
<xsl:if test = "@IS_LIKEPROC = 'TRUE'">
<xsl:call-template name="F_WriteText">
<xsl:with-param name="iX" select="$procX_"/>
<xsl:with-param name="iY" select="($procY_ - 4)"/>
<xsl:with-param name="iText" select="'USER MODULE'"/>
<xsl:with-param name="iClass" select="'ipclass_label'"/>
</xsl:call-template>
</xsl:if>
</xsl:for-each>
</g>
</xsl:template>
<xsl:template name="Define_Processor">
<xsl:param name="iProcInst" select="@INSTANCE"/>
<xsl:param name="iModType" select="$G_ROOT/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $iProcInst)]/@MODTYPE"/>
<xsl:variable name="label_y_">
<xsl:value-of select="$BLKD_MOD_LANE_H"/>
</xsl:variable>
<!--
<xsl:message>The proctype is <xsl:value-of select="$procType"/></xsl:message>
-->
<xsl:variable name="procH_" select="(($BLKD_MOD_LANE_H * 2) + (($BLKD_BIF_H + $BLKD_MOD_BIF_GAP_V) * @BIFS_H) + ($BLKD_MOD_LABEL_H + $BLKD_MOD_BIF_GAP_V))"/>
<xsl:variable name="procW_" select="(($BLKD_MOD_LANE_W * 2) + (($BLKD_BIF_W * @BIFS_W) + $BLKD_MOD_BIF_GAP_H))"/>
<xsl:variable name="procColor_">
<xsl:choose>
<xsl:when test="contains($iModType,'microblaze')"><xsl:value-of select="$COL_PROC_BG_MB"/></xsl:when>
<xsl:when test="contains($iModType,'ppc')"><xsl:value-of select="$COL_PROC_BG_PP"/></xsl:when>
<xsl:otherwise>
<xsl:value-of select="$COL_PROC_BG_USR"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<!--
<xsl:message>The proc color is <xsl:value-of select="$procColor"/></xsl:message>
-->
<xsl:variable name="procName_">
<xsl:call-template name="F_generate_Stack_SymbolName">
<xsl:with-param name="iHorizIdx" select="@STACK_HORIZ_INDEX"/>
<xsl:with-param name="iVertiIdx" select="@SHAPE_VERTI_INDEX"/>
</xsl:call-template>
</xsl:variable>
<!--
<xsl:message>The proc name is <xsl:value-of select="$procName_"/></xsl:message>
-->
<g id="{$procName_}">
<rect x="0"
y="0"
rx="6"
ry="6"
width = "{$procW_}"
height= "{$procH_}"
style="fill:{$procColor_}; stroke:{$COL_WHITE}; stroke-width:2"/>
<rect x="{ceiling($procW_ div 2) - ceiling($BLKD_MOD_LABEL_W div 2)}"
y="{$BLKD_MOD_LANE_H}"
rx="3"
ry="3"
width= "{$BLKD_MOD_LABEL_W}"
height="{$BLKD_MOD_LABEL_H}"
style="fill:{$COL_WHITE}; stroke:none;"/>
<!--
<text class="bciptype"
x="{ceiling($procW_ div 2)}"
y="{$BLKD_MOD_LANE_H + 8}">
<xsl:value-of select="$iModType"/>
</text>
<text class="bciplabel"
x="{ceiling($procW_ div 2)}"
y="{$BLKD_MOD_LANE_H + 16}">
<xsl:value-of select="$iProcInst"/>
</text>
-->
<xsl:call-template name="F_WriteText">
<xsl:with-param name="iX" select="ceiling($procW_ div 2)"/>
<xsl:with-param name="iY" select="($BLKD_MOD_LANE_H + 8)"/>
<xsl:with-param name="iText" select="$iModType"/>
<xsl:with-param name="iClass" select="'bc_iptype'"/>
</xsl:call-template>
<xsl:call-template name="F_WriteText">
<xsl:with-param name="iX" select="ceiling($procW_ div 2)"/>
<xsl:with-param name="iY" select="($BLKD_MOD_LANE_H + 16)"/>
<xsl:with-param name="iText" select="$iProcInst"/>
<xsl:with-param name="iClass" select="'bc_ipinst'"/>
</xsl:call-template>
<xsl:if test="$G_ROOT/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $iProcInst)]/@GROUP">
<rect x="{ceiling($BLKD_MOD_W div 2) - ceiling($BLKD_MOD_LABEL_W div 2)}"
y="{$BLKD_MOD_LANE_H + $BIF_H + ceiling($BLKD_BIF_H div 3) - 2}"
rx="3"
ry="3"
width= "{$BLKD_MOD_LABEL_W}"
height="{$BLKD_BIF_H}"
style="fill:{$COL_IORING_LT}; stroke:none;"/>
<!--
<text class="ioplblgrp"
x="{ceiling($BLKD_MOD_W div 2)}"
y="{$BLKD_MOD_LANE_H + $BIF_H + ceiling($BIF_H div 3) + 12}">
<xsl:value-of select="$G_ROOT/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $iProcInst)]/@GROUP"/>
</text>
-->
<xsl:call-template name="F_WriteText">
<xsl:with-param name="iX" select="ceiling($BLKD_MOD_W div 2)"/>
<xsl:with-param name="iY" select="($BLKD_MOD_LANE_H + $BIF_H + ceiling($BIF_H div 3) + 12)"/>
<xsl:with-param name="iText" select="$G_ROOT/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $iProcInst)]/@GROUP"/>
<xsl:with-param name="iClass" select="'iogrp_label'"/>
</xsl:call-template>
</xsl:if>
<xsl:for-each select="$G_ROOT/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $iProcInst)]/BUSINTERFACE[(@BIF_X and @BIF_Y)]">
<xsl:variable name="bifBusStd_">
<xsl:choose>
<xsl:when test="@BUSSTD">
<xsl:value-of select="@BUSSTD"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="'TRS'"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="bifBusColor_">
<xsl:call-template name="F_BusStd2RGB">
<xsl:with-param name="iBusStd" select="$bifBusStd_"/>
</xsl:call-template>
</xsl:variable>
<xsl:variable name="bifName_">
<xsl:choose>
<xsl:when test="string-length(@NAME) &lt;= 5">
<xsl:value-of select="@NAME"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="substring(@NAME,0,5)"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="bif_x_" select="(( $BLKD_BIF_W * @BIF_X) + ($BLKD_MOD_BIF_GAP_H * @BIF_X) + ($BLKD_MOD_LANE_W * 1))"/>
<xsl:variable name="bif_y_" select="((($BLKD_BIF_H + $BLKD_MOD_BIF_GAP_V) * @BIF_Y) + ($BLKD_MOD_LANE_H + $BLKD_MOD_LABEL_H + $BLKD_MOD_BIF_GAP_V))"/>
<xsl:variable name="horz_line_y_" select="($bif_y_ + ceiling($BLKD_BIFC_H div 2))"/>
<xsl:variable name="horz_line_x1_">
<xsl:choose>
<xsl:when test="@BIF_X = '0'">0</xsl:when>
<xsl:otherwise><xsl:value-of select="($BLKD_MOD_W - $BLKD_MOD_LANE_W)"/></xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="horz_line_x2_">
<xsl:choose>
<xsl:when test="@BIF_X = '0'"><xsl:value-of select="$BLKD_MOD_LANE_W"/></xsl:when>
<xsl:otherwise><xsl:value-of select="$BLKD_MOD_W + 1"/></xsl:otherwise>
</xsl:choose>
</xsl:variable>
<line x1="{$horz_line_x1_}"
y1="{$horz_line_y_ - 2}"
x2="{$horz_line_x2_}"
y2="{$horz_line_y_ - 2}"
style="stroke:{$bifBusColor_};stroke-width:1"/>
<use x="{$bif_x_}" y="{$bif_y_}" xlink:href="#{$bifBusStd_}_BifLabel"/>
<!--
<text class="bif_label"
x="{$bif_x_ + ceiling($BIF_W div 2)}"
y="{$bif_y_ + ceiling($BIF_H div 2) + 3}">
<xsl:value-of select="$bifName_"/>
</text>
-->
<xsl:call-template name="F_WriteText">
<xsl:with-param name="iX" select="($bif_x_ + ceiling($BIF_W div 2))"/>
<xsl:with-param name="iY" select="($bif_y_ + ceiling($BIF_H div 2) + 3)"/>
<xsl:with-param name="iText" select="$bifName_"/>
<xsl:with-param name="iClass" select="'bif_label'"/>
</xsl:call-template>
</xsl:for-each>
<xsl:variable name="intcIdx_">
<xsl:choose>
<xsl:when test="$G_ROOT/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $iProcInst)]/INTERRUPTINFO/@INTC_INDEX">
<xsl:value-of select="$G_ROOT/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $iProcInst)]/INTERRUPTINFO/@INTC_INDEX"/>
</xsl:when>
<xsl:otherwise>"_no_interrupt_cntlr_"</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<!--
<xsl:message> The intc index should <xsl:value-of select="$interrupt_cntlr_"/></xsl:message>
<xsl:message> The intc index is <xsl:value-of select="/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $interrupt_cntlr_)]/@INTC_INDEX"/></xsl:message>
-->
<xsl:if test="$G_ROOT/EDKSYSTEM/MODULES/MODULE[(INTERRUPTINFO[(@INTC_INDEX = $intcIdx_)])]">
<xsl:variable name="intrColor_">
<xsl:call-template name="F_IntcIdx2RGB">
<xsl:with-param name="iIntcIdx" select="$intcIdx_"/>
<!--
<xsl:with-param name="iIntcIdx" select="$G_ROOT/EDKSYSTEM/MODULES/MODULE[(@INSTANCE = $interrupt_cntlr_)]/INTERRUPTINFO/@INTC_INDEX"/>
-->
</xsl:call-template>
</xsl:variable>
<xsl:call-template name="F_draw_InterruptedProc">
<xsl:with-param name="iIntr_X" select="($BLKD_MOD_W - ceiling($BLKD_INTR_W div 2))"/>
<xsl:with-param name="iIntr_Y" select="3"/>
<xsl:with-param name="iIntr_COL" select="$intrColor_"/>
<xsl:with-param name="iIntr_IDX" select="$intcIdx_"/>
</xsl:call-template>
</xsl:if>
</g>
</xsl:template>
</xsl:stylesheet>

@ -1,271 +0,0 @@
<?xml version="1.0" standalone="no"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:exsl="http://exslt.org/common"
xmlns:dyn="http://exslt.org/dynamic"
xmlns:math="http://exslt.org/math"
xmlns:xlink="http://www.w3.org/1999/xlink"
extension-element-prefixes="math dyn exsl xlink">
<!--
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"
doctype-public="-//W3C//DTD SVG 1.0//EN"
doctype-system="http://www.w3.org/TR/SVG/DTD/svg10.dtd"/>
-->
<!-- ======================= DEF BLOCK =================================== -->
<xsl:template name="Define_ConnectedBifTypes">
<xsl:for-each select="exsl:node-set($COL_BUSSTDS)/BUSCOLOR">
<xsl:variable name="busStd_" select="@BUSSTD"/>
<xsl:variable name="psfStd_" select="@BUSSTD_PSF"/>
<xsl:for-each select="$G_SYS_MODS">
<xsl:variable name="bif_by_busStd_" select="key('G_MAP_ALL_BIFS',$busStd_)[((@IS_INSTANTIATED = 'TRUE') or (@IS_INMHS = 'TRUE'))]"/>
<xsl:variable name="num_of_busStd_" select="count($bif_by_busStd_)"/>
<xsl:variable name="bif_by_psfStd_" select="key('G_MAP_ALL_BIFS',$psfStd_)[((@IS_INSTANTIATED = 'TRUE') or (@IS_INMHS = 'TRUE'))]"/>
<xsl:variable name="num_of_psfStd_" select="count($bif_by_psfStd_)"/>
<!--
<xsl:message>DEBUG : <xsl:value-of select="$busStd_"/> : <xsl:value-of select="$num_of_busStd_"/> : <xsl:value-of select="$num_of_psfStd_"/></xsl:message>
<xsl:variable name="bif_by_busStd_" select="key('G_MAP_ALL_BIFS',$busStd_)[(@IS_INSTANTIATED = 'TRUE')]"/>
<xsl:variable name="num_of_busStd_" select="count($bif_by_busStd_)"/>
-->
<xsl:if test="(($num_of_busStd_ &gt; 0) or ($num_of_psfStd_ &gt; 0))">
<xsl:if test="($num_of_busStd_ &gt; 0)">
<xsl:call-template name="Define_BifLabel">
<xsl:with-param name="iBusStd" select="$busStd_"/>
</xsl:call-template>
</xsl:if>
<xsl:if test="($num_of_psfStd_ &gt; 0)">
<xsl:call-template name="Define_BifLabel">
<xsl:with-param name="iBusStd" select="$psfStd_"/>
</xsl:call-template>
</xsl:if>
<xsl:for-each select="exsl:node-set($G_BIFTYPES)/BIFTYPE">
<xsl:variable name="bifType_" select="@TYPE"/>
<xsl:variable name="num_of_bifType_" select="count($bif_by_busStd_[(@TYPE = $bifType_)])"/>
<!--
<xsl:message>DEBUG : <xsl:value-of select="$bifType_"/> : <xsl:value-of select="$num_of_bifType_"/></xsl:message>
-->
<xsl:if test="($num_of_bifType_ &gt; 0)">
<xsl:if test="($num_of_busStd_ &gt; 0)">
<xsl:call-template name="Define_BifTypeConnector">
<xsl:with-param name="iBusStd" select="$busStd_"/>
<xsl:with-param name="iBifType" select="$bifType_"/>
</xsl:call-template>
</xsl:if>
<xsl:if test="($num_of_psfStd_ &gt; 0)">
<xsl:call-template name="Define_BifTypeConnector">
<xsl:with-param name="iBusStd" select="$busStd_"/>
<xsl:with-param name="iBifType" select="$bifType_"/>
</xsl:call-template>
</xsl:if>
</xsl:if>
</xsl:for-each>
</xsl:if>
</xsl:for-each>
</xsl:for-each>
<xsl:call-template name="Define_BifLabel">
<xsl:with-param name="iBusStd" select="'KEY'"/>
</xsl:call-template>
<xsl:for-each select="exsl:node-set($G_BIFTYPES)/BIFTYPE">
<xsl:variable name="bifType_" select="@TYPE"/>
<xsl:call-template name="Define_BifTypeConnector">
<xsl:with-param name="iBusStd" select="'KEY'"/>
<xsl:with-param name="iBifType" select="$bifType_"/>
</xsl:call-template>
</xsl:for-each>
</xsl:template>
<xsl:template name="Define_BifLabel">
<xsl:param name="iBusStd" select="'USER'"/>
<xsl:variable name="busStdColor_">
<xsl:call-template name="F_BusStd2RGB">
<xsl:with-param name="iBusStd" select="$iBusStd"/>
</xsl:call-template>
</xsl:variable>
<g id="{$iBusStd}_BifLabel">
<rect x="0"
y="0"
rx="3"
ry="3"
width= "{$BIF_W}"
height="{$BIF_H}"
style="fill:{$busStdColor_}; stroke:black; stroke-width:1"/>
</g>
</xsl:template>
<xsl:template name="Define_BifTypeConnector">
<xsl:param name="iBusStd" select="'USER'"/>
<xsl:param name="iBifType" select="'USER'"/>
<xsl:variable name="busStdColor_">
<xsl:call-template name="F_BusStd2RGB">
<xsl:with-param name="iBusStd" select="$iBusStd"/>
</xsl:call-template>
</xsl:variable>
<xsl:variable name="busStdColor_lt_">
<xsl:call-template name="F_BusStd2RGB_LT">
<xsl:with-param name="iBusStd" select="$iBusStd"/>
</xsl:call-template>
</xsl:variable>
<xsl:variable name="bifc_wi_" select="ceiling($BIFC_W div 3)"/>
<xsl:variable name="bifc_hi_" select="ceiling($BIFC_H div 3)"/>
<xsl:choose>
<xsl:when test="$iBifType = 'SLAVE'">
<g id="{$iBusStd}_busconn_{$iBifType}">
<circle
cx="{ceiling($BIFC_W div 2)}"
cy="{ceiling($BIFC_H div 2)}"
r="{ceiling($BIFC_W div 2)}"
style="fill:{$busStdColor_lt_}; stroke:{$busStdColor_}; stroke-width:1"/>
<circle
cx="{ceiling($BIFC_W div 2) + 0.5}"
cy="{ceiling($BIFC_H div 2)}"
r="{ceiling($BIFC_Wi div 2)}"
style="fill:{$busStdColor_}; stroke:none;"/>
</g>
</xsl:when>
<xsl:when test="$iBifType = 'MASTER'">
<g id="{$iBusStd}_busconn_{$iBifType}">
<rect x="0"
y="0"
width= "{$BIFC_W}"
height="{$BIFC_H}"
style="fill:{$busStdColor_lt_}; stroke:{$busStdColor_}; stroke-width:1"/>
<rect x="{$BIFC_dx + 0.5}"
y="{$BIFC_dy}"
width= "{$BIFC_Wi}"
height="{$BIFC_Hi}"
style="fill:{$busStdColor_}; stroke:none;"/>
</g>
</xsl:when>
<xsl:when test="$iBifType = 'INITIATOR'">
<g id="{$iBusStd}_busconn_{$iBifType}">
<rect x="0"
y="0"
width= "{$BIFC_W}"
height="{$BIFC_H}"
style="fill:{$busStdColor_lt_}; stroke:{$busStdColor_}; stroke-width:1"/>
<rect x="{$BIFC_dx + 0.5}"
y="{$BIFC_dy}"
width= "{$BIFC_Wi}"
height="{$BIFC_Hi}"
style="fill:{$busStdColor_}; stroke:none;"/>
</g>
</xsl:when>
<xsl:when test="$iBifType = 'TARGET'">
<g id="{$iBusStd}_busconn_{$iBifType}">
<circle
cx="{ceiling($BIFC_W div 2)}"
cy="{ceiling($BIFC_H div 2)}"
r="{ceiling($BIFC_W div 2)}"
style="fill:{$busStdColor_lt_}; stroke:{$busStdColor_}; stroke-width:1"/>
<circle
cx="{ceiling($BIFC_W div 2) + 0.5}"
cy="{ceiling($BIFC_H div 2)}"
r="{ceiling($BIFC_Wi div 2)}"
style="fill:{$busStdColor_}; stroke:none;"/>
</g>
</xsl:when>
<xsl:when test="$iBifType = 'MASTER_SLAVE'">
<g id="{$iBusStd}_busconn_{$iBifType}">
<circle
cx="{ceiling($BIFC_W div 2)}"
cy="{ceiling($BIFC_H div 2)}"
r="{ceiling($BIFC_W div 2)}"
style="fill:{$busStdColor_lt_}; stroke:{$busStdColor_}; stroke-width:1"/>
<circle
cx="{ceiling($BIFC_W div 2) + 0.5}"
cy="{ceiling($BIFC_H div 2)}"
r="{ceiling($BIFC_Wi div 2)}"
style="fill:{$busStdColor_}; stroke:none;"/>
<rect
x="0"
y="{ceiling($BIFC_H div 2)}"
width= "{$BIFC_W}"
height="{ceiling($BIFC_H div 2)}"
style="fill:{$busStdColor_lt_}; stroke:{$busStdColor_}; stroke-width:1"/>
<rect
x="{$BIFC_dx + 0.5}"
y="{ceiling($BIFC_H div 2)}"
width= "{$BIFC_Wi}"
height="{ceiling($BIFC_Hi div 2)}"
style="fill:{$busStdColor_}; stroke:none;"/>
</g>
</xsl:when>
<xsl:when test="$iBifType = 'MONITOR'">
<g id="{$iBusStd}_busconn_{$iBifType}">
<rect
x="0"
y="0.5"
width= "{$BIFC_W}"
height="{ceiling($BIFC_Hi div 2)}"
style="fill:{$busStdColor_}; stroke:none;"/>
<rect
x="0"
y="{ceiling($BIFC_H div 2) + 4}"
width= "{$BIFC_W}"
height="{ceiling($BIFC_Hi div 2)}"
style="fill:{$busStdColor_}; stroke:none;"/>
</g>
</xsl:when>
<xsl:when test="$iBifType = 'USER'">
<g id="{$iBusStd}_busconn_USER">
<circle
cx="{ceiling($BIFC_W div 2)}"
cy="{ceiling($BIFC_H div 2)}"
r="{ceiling($BIFC_W div 2)}"
style="fill:{$busStdColor_lt_}; stroke:{$busStdColor_}; stroke-width:1"/>
<circle
cx="{ceiling($BIFC_W div 2) + 0.5}"
cy="{ceiling($BIFC_H div 2)}"
r="{ceiling($BIFC_Wi div 2)}"
style="fill:{$busStdColor_}; stroke:none;"/>
</g>
</xsl:when>
<xsl:otherwise>
<g id="{$iBusStd}_busconn_{$iBifType}">
<circle
cx="{ceiling($BIFC_W div 2)}"
cy="{ceiling($BIFC_H div 2)}"
r="{ceiling($BIFC_W div 2)}"
style="fill:{$COL_WHITE}; stroke:{$busStdColor_}; stroke-width:1"/>
<circle
cx="{ceiling($BIFC_W div 2) + 0.5}"
cy="{ceiling($BIFC_H div 2)}"
r="{ceiling($BIFC_Wi div 2)}"
style="fill:{$COL_WHITE}; stroke:none;"/>
</g>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>

@ -1,263 +0,0 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE stylesheet [
<!ENTITY UPPERCASE "ABCDEFGHIJKLMNOPQRSTUVWXYZ">
<!ENTITY LOWERCASE "abcdefghijklmnopqrstuvwxyz">
<!ENTITY UPPER2LOWER " '&UPPERCASE;' , '&LOWERCASE;' ">
<!ENTITY LOWER2UPPER " '&LOWERCASE;' , '&UPPERCASE;' ">
<!ENTITY ALPHALOWER "ABCDEFxX0123456789">
<!ENTITY HEXUPPER "ABCDEFxX0123456789">
<!ENTITY HEXLOWER "abcdefxX0123456789">
<!ENTITY HEXU2L " '&HEXLOWER;' , '&HEXUPPER;' ">
<!ENTITY ALLMODS "MODULE[(@INSTANCE)]">
<!ENTITY BUSMODS "MODULE[(@MODCLASS ='BUS')]">
<!ENTITY CPUMODS "MODULE[(@MODCLASS ='PROCESSOR')]">
<!ENTITY MODIOFS "MODULE/IOINTERFACES/IOINTERFACE">
<!ENTITY ALLIOFS "&MODIOFS;[(not(@IS_VALID) or (@IS_VALID = 'TRUE'))]">
<!ENTITY MODBIFS "MODULE/BUSINTERFACES/BUSINTERFACE">
<!ENTITY ALLBIFS "&MODBIFS;[(not(@IS_VALID) or (@IS_VALID = 'TRUE'))]">
<!ENTITY MSTBIFS "&MODBIFS;[(not(@IS_VALID) or (@IS_VALID = 'TRUE')) and (@TYPE = 'MASTER')]">
<!ENTITY SLVBIFS "&MODBIFS;[(not(@IS_VALID) or (@IS_VALID = 'TRUE')) and (@TYPE = 'SLAVE')]">
<!ENTITY MOSBIFS "&MODBIFS;[(not(@IS_VALID) or (@IS_VALID = 'TRUE')) and ((@TYPE = 'MASTER') or (@TYPE = 'SLAVE'))]">
<!ENTITY P2PBIFS "&MODBIFS;[(not(@IS_VALID) or (@IS_VALID = 'TRUE')) and ((@TYPE = 'TARGET') or (@TYPE = 'INITIATOR'))]">
<!ENTITY MODPORTS "MODULE/PORTS/PORT">
<!ENTITY ALLPORTS "&MODPORTS;[ (not(@IS_VALID) or (@IS_VALID = 'TRUE'))]">
<!ENTITY NDFPORTS "&MODPORTS;[((not(@IS_VALID) or (@IS_VALID = 'TRUE')) and (not(@BUS) and not(@IOS)))]">
<!ENTITY DEFPORTS "&MODPORTS;[((not(@IS_VALID) or (@IS_VALID = 'TRUE')) and ((@BUS) or (@IOS)))]">
]>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:exsl="http://exslt.org/common"
xmlns:dyn="http://exslt.org/dynamic"
xmlns:math="http://exslt.org/math"
xmlns:xlink="http://www.w3.org/1999/xlink"
extension-element-prefixes="math dyn exsl xlink">
<xsl:variable name="G_ROOT" select="/"/>
<!--
======================================================
EDK SYSTEM (EDWARD) Globals.
======================================================
-->
<xsl:variable name="G_SYS_EVAL">
<xsl:choose>
<xsl:when test="not($P_SYSTEM_XML = '__UNDEF__')"><xsl:text>document($P_SYSTEM_XML)</xsl:text></xsl:when>
<xsl:otherwise><xsl:text>/</xsl:text></xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="G_SYS_DOC" select="dyn:evaluate($G_SYS_EVAL)"/>
<xsl:variable name="G_SYS" select="$G_SYS_DOC/EDKSYSTEM"/>
<xsl:variable name="G_SYS_TIMESTAMP" select="$G_SYS/@TIMESTAMP"/>
<xsl:variable name="G_SYS_EDKVERSION" select="$G_SYS/@EDKVERSION"/>
<xsl:variable name="G_SYS_INFO" select="$G_SYS/SYSTEMINFO"/>
<xsl:variable name="G_SYS_INFO_PKG" select="$G_SYS_INFO/@PACKAGE"/>
<xsl:variable name="G_SYS_INFO_DEV" select="$G_SYS_INFO/@DEVICE"/>
<xsl:variable name="G_SYS_INFO_ARCH" select="$G_SYS_INFO/@ARCH"/>
<xsl:variable name="G_SYS_INFO_SPEED" select="$G_SYS_INFO/@SPEEDGRADE"/>
<xsl:variable name="G_SYS_MODS" select="$G_SYS/MODULES"/>
<xsl:variable name="G_SYS_EXPS" select="$G_SYS/EXTERNALPORTS"/>
<xsl:variable name="COL_FOCUSED_MASTER" select="'AAAAFF'"/>
<xsl:variable name="COL_BG_OUTOF_FOCUS_CONNECTIONS" select="'AA7711'"/>
<!-- INDEX KEYS FOR FAST ACCESS -->
<xsl:key name="G_MAP_MODULES" match="&ALLMODS;" use="@INSTANCE"/>
<xsl:key name="G_MAP_PROCESSORS" match="&CPUMODS;" use="@INSTANCE"/>
<xsl:key name="G_MAP_BUSSES" match="&BUSMODS;" use="@INSTANCE"/>
<xsl:key name="G_MAP_BUSSES" match="&BUSMODS;" use="@BUSSTD"/>
<xsl:key name="G_MAP_BUSSES" match="&BUSMODS;" use="@BUSSTD_PSF"/>
<xsl:key name="G_MAP_ALL_IOFS" match="&ALLIOFS;" use="../../@INSTANCE"/>
<xsl:key name="G_MAP_ALL_BIFS" match="&ALLBIFS;" use="../../@INSTANCE"/>
<xsl:key name="G_MAP_ALL_BIFS_BY_BUS" match="&ALLBIFS;" use="@BUSNAME"/>
<!--
-->
<xsl:key name="G_MAP_MST_BIFS" match="&MSTBIFS;" use="@BUSNAME"/>
<xsl:key name="G_MAP_SLV_BIFS" match="&SLVBIFS;" use="@BUSNAME"/>
<xsl:key name="G_MAP_MOS_BIFS" match="&MOSBIFS;" use="@BUSNAME"/>
<xsl:key name="G_MAP_P2P_BIFS" match="&P2PBIFS;" use="@BUSNAME"/>
<xsl:key name="G_MAP_P2P_BIFS" match="&P2PBIFS;" use="@BUSSTD"/>
<xsl:key name="G_MAP_P2P_BIFS" match="&P2PBIFS;" use="@BUSSTD_PSF"/>
<xsl:key name="G_MAP_ALL_PORTS" match="&ALLPORTS;" use="../../@INSTANCE"/>
<xsl:key name="G_MAP_DEF_PORTS" match="&DEFPORTS;" use="../../@INSTANCE"/> <!-- Default ports -->
<xsl:key name="G_MAP_NDF_PORTS" match="&NDFPORTS;" use="../../@INSTANCE"/> <!-- Non Default ports -->
<!--
<xsl:key name="G_MAP_MASTER_BIFS" match="&MSTBIFS;" use="@BUSNAME"/>
<xsl:key name="G_MAP_MASTER_BIFS" match="MODULE[not(@MODCLASS ='BUS')]/BUSINTERFACES/BUSINTERFACE[(not(@IS_VALID) or (@IS_VALID = 'TRUE')) and (@TYPE = 'MASTER')]" use="../../@INSTANCE.@NAME"/>
<xsl:key name="G_MAP_BUSSES_BY_INSTANCE" match="MODULE[(@MODCLASS ='BUS')]" use="@INSTANCE"/>
<xsl:key name="G_MAP_XB_BUSSES" match="MODULE[(@MODCASS ='BUS')and (@IS_CROSSBAR)]" use="@INSTANCE"/>
-->
<!--
======================================================
Groups.xml (BLOCKS) Globals
======================================================
-->
<xsl:variable name="G_GRP_EVAL">
<xsl:choose>
<xsl:when test="not($P_GROUPS_XML = '__UNDEF__')"><xsl:text>document($P_GROUPS_XML)</xsl:text></xsl:when>
<xsl:otherwise><xsl:text>/</xsl:text></xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="G_GRPS_DOC" select="dyn:evaluate($G_GRP_EVAL)"/>
<xsl:variable name="G_GROUPS" select="$G_GRPS_DOC/BLOCKS"/>
<xsl:variable name="G_NUM_OF_PROCS" select="count($G_SYS/MODULES/MODULE[(@MODCLASS = 'PROCESSOR')])"/>
<xsl:variable name="G_NUM_OF_PROCS_W_ADDRS" select="count($G_SYS/MODULES/MODULE[(@MODCLASS = 'PROCESSOR') and MEMORYMAP/MEMRANGE[(not(@IS_VALID) or (@IS_VALID = 'TRUE'))]])"/>
<xsl:variable name="G_FOCUSED_SCOPE">
<xsl:choose>
<!-- FOCUSING ON SPECIFIC SELECTIONS-->
<xsl:when test="$G_ROOT/SAV/SELECTION">
</xsl:when>
<!-- FOCUSING ON PROCESSOR -->
<xsl:when test="$G_ROOT/SAV/MASTER">
<xsl:if test="$G_DEBUG = 'TRUE'"><xsl:message>FOCUSED MASTERS SPECIFIED</xsl:message></xsl:if>
<xsl:for-each select="$G_ROOT/SAV/MASTER">
<xsl:variable name="m_inst_" select="@INSTANCE"/>
<xsl:variable name="m_mod_" select="$G_SYS_MODS/MODULE[(@INSTANCE = $m_inst_)]"/>
<xsl:for-each select="$m_mod_/BUSINTERFACES/BUSINTERFACE[(not(@IS_VALID) or (@IS_VALID = 'TRUE')) and not(@BUSNAME = '__NOC__') and ((@TYPE = 'MASTER') or (@TYPE = 'SLAVE') or (@TYPE = 'INITIATOR') or (@TYPE = 'TARGET'))]">
<xsl:if test="$G_DEBUG = 'TRUE'"><xsl:message> FOCUSED MASTER BIF <xsl:value-of select="$m_inst_"/>.<xsl:value-of select="@NAME"/> = <xsl:value-of select="@BUSNAME"/></xsl:message></xsl:if>
<xsl:variable name="b_bus_" select="@BUSNAME"/>
<BUS NAME="{@BUSNAME}" BUSSTD="{@BUSSTD}"/>
<xsl:for-each select="$G_SYS_MODS/MODULE[(not(@INSTANCE = $m_inst_) and (@MODCLASS = 'BUS_BRIDGE'))]/BUSINTERFACES/BUSINTERFACE[(not(@IS_VALID) or (@IS_VALID = 'TRUE')) and (@TYPE = 'SLAVE') and (@BUSNAME = $b_bus_)]">
<xsl:variable name="b_inst_" select="../../@INSTANCE"/>
<xsl:choose>
<xsl:when test="MASTERS/MASTER">
<xsl:for-each select="MASTERS/MASTER">
<xsl:variable name="sm_inst_" select="@INSTANCE"/>
<xsl:if test="count($G_ROOT/SAV/MASTER[(@INSTANCE = $sm_inst_)]) &gt; 0">
<xsl:if test="$G_DEBUG = 'TRUE'"><xsl:message> FOCUSED PERIPHERAL BRIDGE <xsl:value-of select="$b_inst_"/></xsl:message></xsl:if>
<PERIPHERAL NAME="{$b_inst_}"/>
</xsl:if>
</xsl:for-each>
</xsl:when>
<xsl:otherwise>
<xsl:if test="$G_DEBUG = 'TRUE'"><xsl:message> FOCUSED PERIPHERAL BRIDGE <xsl:value-of select="$b_inst_"/></xsl:message></xsl:if>
<PERIPHERAL NAME="{$b_inst_}"/>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
</xsl:for-each>
<xsl:for-each select="$m_mod_/PERIPHERALS/PERIPHERAL">
<xsl:variable name="p_id_" select="@INSTANCE"/>
<xsl:variable name="p_mod_" select="$G_SYS_MODS/MODULE[@INSTANCE = $p_id_]"/>
<PERIPHERAL NAME="{@INSTANCE}"/>
<xsl:variable name="p_mr_cnt_" select="count($m_mod_/MEMORYMAP/MEMRANGE[(@INSTANCE = $p_id_)])"/>
<xsl:if test="$G_DEBUG = 'TRUE'"><xsl:message> FOCUSED PERIPHERAL <xsl:value-of select="$p_id_"/> has <xsl:value-of select="$p_mr_cnt_"/> memory ranges</xsl:message></xsl:if>
<xsl:for-each select="$m_mod_/MEMORYMAP/MEMRANGE[(@INSTANCE = $p_id_)]/ACCESSROUTE/ROUTEPNT">
<xsl:variable name="b_id_" select="@INSTANCE"/>
<xsl:for-each select="$G_SYS_MODS/MODULE[((@INSTANCE = $b_id_) and (@MODCLASS = 'BUS'))]">
<xsl:if test="$G_DEBUG = 'TRUE'"><xsl:message> FOCUSED PERIPHERAL BUS <xsl:value-of select="@INSTANCE"/></xsl:message></xsl:if>
<BUS NAME="{@INSTANCE}" BUSSTD="{@BUSSTD}"/>
</xsl:for-each>
</xsl:for-each>
</xsl:for-each>
</xsl:for-each>
</xsl:when>
<!-- FOCUSING ON BUS -->
<xsl:when test="$G_ROOT/SAV/BUS">
<xsl:if test="$G_DEBUG = 'TRUE'"><xsl:message>FOCUSED BUSSES SPECIFIED</xsl:message></xsl:if>
<xsl:for-each select="$G_ROOT/SAV/BUS">
<xsl:variable name="m_inst_" select="@INSTANCE"/>
<xsl:variable name="m_mod_" select="$G_SYS_MODS/MODULE[(@INSTANCE = $m_inst_)]"/>
<xsl:variable name="m_bstd_" select="$m_mod_/@BUSSTD"/>
<BUS NAME="{$m_inst_}" BUSSTD="{$m_bstd_}"/>
<xsl:if test="$G_DEBUG = 'TRUE'"><xsl:message> FOCUSED BUS <xsl:value-of select="$m_inst_"/> <xsl:value-of select="$m_bstd_"/></xsl:message></xsl:if>
</xsl:for-each>
</xsl:when>
</xsl:choose>
</xsl:variable>
<xsl:variable name="G_HAVE_XB_BUSSES">
<xsl:choose>
<xsl:when test="(count($G_SYS_MODS/MODULE[((@MODCLASS = 'BUS') and (@IS_CROSSBAR = 'TRUE'))]) &gt; 0)">TRUE</xsl:when>
<xsl:otherwise>FALSE</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:template name="F_ModClass_To_IpClassification">
<xsl:param name="iModClass" select="'NONE'"/>
<xsl:param name="iBusStd" select="'NONE'"/>
<xsl:choose>
<xsl:when test="$iModClass = 'BUS'"><xsl:value-of select="$iBusStd"/> Bus</xsl:when>
<xsl:when test="$iModClass = 'DEBUG'">Debug</xsl:when>
<xsl:when test="$iModClass = 'MEMORY'">Memory</xsl:when>
<xsl:when test="$iModClass = 'MEMORY_CNTLR'">Memory Controller</xsl:when>
<xsl:when test="$iModClass = 'INTERRUPT_CNTLR'">Interrupt Controller</xsl:when>
<xsl:when test="$iModClass = 'PERIPHERAL'">Peripheral</xsl:when>
<xsl:when test="$iModClass = 'PROCESSOR'">Processor</xsl:when>
<xsl:when test="$iModClass = 'BUS_BRIDGE'">Bus Bridge</xsl:when>
<xsl:otherwise><xsl:value-of select="$iModClass"/></xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="F_Connection_To_AXI_SLAVE">
<xsl:param name="iNameParam" select="''"/>
<xsl:param name="iModuleRefParam" select="''"/>
<xsl:variable name="FilName" select="$iModuleRefParam/PARAMETERS/PARAMETER[@NAME=concat('C_', $iNameParam, '_MASTERS')]/@VALUE"/>
<!-- <xsl:message>FIL NAME WAS <xsl:value-of select="$FilName"/></xsl:message> -->
<xsl:value-of select="$FilName"/>
</xsl:template>
<xsl:template name="F_IS_Interface_External">
<xsl:param name="iInstRef"/> <!-- Instance reference -->
<xsl:param name="iIntfRef"/> <!-- Interface reference -->
<xsl:variable name="intfName_" select="$iIntfRef/@NAME"/>
<xsl:variable name="instName_" select="$iInstRef/@INSTANCE"/>
<!-- <xsl:message>NAME 1 <xsl:value-of select="$expName1_"/></xsl:message>-->
<!-- <xsl:message>NAME 2 <xsl:value-of select="$expName2_"/></xsl:message>-->
<!--
<xsl:variable name="expName1_" select="concat($instName_,'_',$intfName_,'_',@PHYSICAL,'_pin')"/>
<xsl:variable name="expName2_" select="concat($instName_,'_',@PHYSICAL,'_pin')"/>
-->
<!-- Store the number of physical ports connected externals in a variable -->
<xsl:variable name="connected_externals_">
<xsl:for-each select="$iIntfRef/PORTMAPS/PORTMAP">
<xsl:variable name="portName_" select="@PHYSICAL"/>
<xsl:if test="$iInstRef/PORTS/PORT[(@NAME = $portName_)]">
<xsl:variable name="portNet_" select="$iInstRef/PORTS/PORT[(@NAME = $portName_)]/@SIGNAME"/>
<xsl:if test="$G_SYS_EXPS/PORT[(@SIGNAME = $portNet_)]">
<EXTP NAME="{@PHYSICAL}"/>
</xsl:if>
</xsl:if>
</xsl:for-each>
</xsl:variable>
<!--
<xsl:message><xsl:value-of select="$instName_"/>.<xsl:value-of select="$intfName_"/> has <xsl:value-of select="count(exsl:node-set($connected_externals_)/EXTP)"/> connected externals.</xsl:message>
-->
<xsl:choose>
<xsl:when test="(count(exsl:node-set($connected_externals_)/EXTP) &gt; 0)">TRUE</xsl:when>
<xsl:otherwise>FALSE</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>

@ -1,245 +0,0 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE stylesheet [
<!ENTITY UPPERCASE "ABCDEFGHIJKLMNOPQRSTUVWXYZ">
<!ENTITY LOWERCASE "abcdefghijklmnopqrstuvwxyz">
<!ENTITY UPPER2LOWER " '&UPPERCASE;' , '&LOWERCASE;' ">
<!ENTITY LOWER2UPPER " '&LOWERCASE;' , '&UPPERCASE;' ">
<!ENTITY ALPHALOWER "ABCDEFxX0123456789">
<!ENTITY HEXUPPER "ABCDEFxX0123456789">
<!ENTITY HEXLOWER "abcdefxX0123456789">
<!ENTITY HEXU2L " '&HEXLOWER;' , '&HEXUPPER;' ">
]>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:exsl="http://exslt.org/common"
xmlns:dyn="http://exslt.org/dynamic"
xmlns:math="http://exslt.org/math"
xmlns:xlink="http://www.w3.org/1999/xlink"
extension-element-prefixes="math exsl dyn xlink">
<xsl:include href="edw2xtl_sav_globals.xsl"/>
<xsl:include href="edw2xtl_sav_view_addr.xsl"/>
<xsl:include href="edw2xtl_sav_view_busif.xsl"/>
<xsl:include href="edw2xtl_sav_view_port.xsl"/>
<xsl:include href="edw2xtl_sav_view_groups.xsl"/>
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:param name="P_SYSTEM_XML" select= "'__UNDEF__'"/>
<xsl:param name="P_GROUPS_XML" select= "'__UNDEF__'"/>
<xsl:param name="G_DEBUG" select="'FALSE'"/>
<xsl:param name="G_ADD_CHOICES" select="'TRUE'"/>
<!--
<xsl:param name="P_VIEW" select="'__UNDEF__'"/>
<xsl:param name="P_MODE" select="'__UNDEF__'"/>
<xsl:param name="P_SCOPE" select="'__UNDEF__'"/>
-->
<!-- MAIN TEMPLATE -->
<xsl:template match="SAV[@VIEW]">
<xsl:if test="$G_DEBUG='TRUE'">
<xsl:message>SAV VIEW <xsl:value-of select="@VIEW"/></xsl:message>
<xsl:message>SAV MODE <xsl:value-of select="@MODE"/></xsl:message>
<xsl:message>SAV SCOPE <xsl:value-of select="@SCOPE"/></xsl:message>
</xsl:if>
<xsl:choose>
<xsl:when test="not(@VIEW = 'PORT') and not(@VIEW = 'BUSINTERFACE') and not(@VIEW = 'ADDRESS')">
<xsl:message>EDW2SAV XTELLER ERROR: UNDEFINED VIEW <xsl:value-of select="@VIEW"/></xsl:message>
</xsl:when>
<xsl:when test="(@MODE and not(@MODE = 'FLAT') and not(@MODE = 'TREE') and not(@MODE = 'GROUPS'))">
<xsl:message>EDW2SAV XTELLER ERROR: UNDEFINED MODE <xsl:value-of select="@MODE"/></xsl:message>
</xsl:when>
<xsl:when test="(@SCOPE and not(@SCOPE = 'FULL') and not(@SCOPE= 'FOCUS'))">
<xsl:message>EDW2SAV XTELLER ERROR: UNDEFINED SCOPE <xsl:value-of select="@SCOPE"/></xsl:message>
</xsl:when>
<xsl:when test="$P_SYSTEM_XML ='__UNDEF__'">
<xsl:message>EDW2SAV XTELLER ERROR: SYSTEM XML UNDEFINED</xsl:message>
</xsl:when>
<xsl:when test="not($G_SYS)" >
<xsl:message>EDW2SAV XTELLER ERROR: EDKSYSTEM MISSING in SYSTEM XML <xsl:value-of select="$P_SYSTEM_XML"/></xsl:message>
</xsl:when>
<xsl:when test="($P_GROUPS_XML ='__UNDEF__') and (@MODE = 'GROUPS')" >
<xsl:message>EDW2SAV XTELLER ERROR: GROUP XML UNDEFINED for FOCUS</xsl:message>
</xsl:when>
<xsl:when test="($P_GROUPS_XML ='__UNDEF__') and (@SCOPE = 'FOCUS') and (@VIEW = 'BUSINTERFACE')" >
<xsl:message>EDW2SAV XTELLER ERROR: GROUP XML UNDEFINED for SCOPE</xsl:message>
</xsl:when>
<xsl:otherwise>
<xsl:if test="$G_DEBUG='TRUE'">
<xsl:message>SYSTEM XML <xsl:value-of select="$P_SYSTEM_XML"/></xsl:message>
<xsl:message>GROUPS XML <xsl:value-of select="$P_GROUPS_XML"/></xsl:message>
</xsl:if>
<xsl:variable name="use_mode_">
<xsl:choose>
<xsl:when test="@MODE = 'GROUPS'">TREE</xsl:when>
<xsl:otherwise><xsl:value-of select="@MODE"/></xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="num_procs_focused_on_" select="count(MASTER)"/>
<xsl:variable name="num_buses_focused_on_" select="count(BUS)"/>
<xsl:element name="SET">
<xsl:attribute name="CLASS">PROJECT</xsl:attribute>
<xsl:attribute name="VIEW_ID"><xsl:value-of select="@VIEW"/></xsl:attribute>
<xsl:attribute name="DISPLAYMODE"><xsl:value-of select="$use_mode_"/></xsl:attribute>
<xsl:choose>
<!-- ADDRESS TAB VIEW -->
<xsl:when test="(@VIEW = 'ADDRESS')">
<xsl:call-template name="WRITE_VIEW_ADDRESS"/>
</xsl:when>
<!-- BIF TAB VIEWS -->
<xsl:when test="((@VIEW ='BUSINTERFACE') and (@SCOPE = 'FOCUS') and ($num_procs_focused_on_ &gt; 0))">
<xsl:call-template name="WRITE_VIEW_BIF_FOCUS_ON_PROCS"/>
</xsl:when>
<!-- BIF TAB VIEWS -->
<xsl:when test="((@VIEW ='BUSINTERFACE') and (@SCOPE = 'FOCUS') and ($num_buses_focused_on_ &gt; 0))">
<xsl:call-template name="WRITE_VIEW_BIF_FOCUS_ON_BUSES"/>
</xsl:when>
<xsl:when test="((@VIEW ='BUSINTERFACE') and (@MODE = 'TREE') and not(@SCOPE))">
<xsl:call-template name="WRITE_VIEW_BIF_TREE"/>
</xsl:when>
<xsl:when test="((@VIEW = 'BUSINTERFACE') and (@MODE = 'FLAT') and not(@SCOPE))">
<xsl:call-template name="WRITE_VIEW_BIF_FLAT"/>
</xsl:when>
<xsl:when test="((@VIEW = 'BUSINTERFACE') and (@MODE = 'GROUPS'))">
<xsl:call-template name="WRITE_VIEW_BIF_GROUPS">
<xsl:with-param name="iModules" select="$G_BLOCKS"/>
</xsl:call-template>
</xsl:when>
<!-- PORT TAB VIEWS -->
<xsl:when test="((@VIEW ='PORT') and (@SCOPE = 'FOCUS'))">
<xsl:call-template name="WRITE_VIEW_PORT_FOCUSED"/>
</xsl:when>
<!-- Generate XTeller panel data for Ports using hierarchy -->
<xsl:when test="((@VIEW = 'PORT') and (@MODE = 'TREE'))">
<xsl:call-template name="WRITE_VIEW_PORT_TREE"/>
</xsl:when>
<!-- Generate XTeller panel data for Ports without hierarchy, (flat view) -->
<xsl:when test="((@VIEW='PORT') and (@MODE = 'FLAT'))">
<xsl:call-template name="WRITE_VIEW_PORT_FLAT"/>
</xsl:when>
<xsl:otherwise>
<xsl:message>ERROR during SAV XTeller generation with panel <xsl:value-of select="@VIEW"/> and display mode <xsl:value-of select="@MODE"/></xsl:message>
</xsl:otherwise>
</xsl:choose>
</xsl:element>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="EDKSYSTEM">
<!--
<xsl:message>EDW VERSION <xsl:value-of select="$G_EDWVER"/></xsl:message>
<xsl:message>VIEW <xsl:value-of select="$VIEW"/></xsl:message>
<xsl:message>MODE <xsl:value-of select="$MODE"/></xsl:message>
-->
<xsl:variable name="by_interface_">
<xsl:choose>
<!--
Show interfaces or not
-->
<xsl:when test="(($SHOW_BUSIF ='TRUE') or ($SHOW_IOIF ='TRUE'))">TRUE</xsl:when>
<xsl:otherwise>FALSE</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<!--
<xsl:message>VIEW <xsl:value-of select="$VIEW"/></xsl:message>
<xsl:message>MODE <xsl:value-of select="$MODE"/></xsl:message>
<xsl:message>BY INTERFACE <xsl:value-of select="$by_interface_"/></xsl:message>
-->
<xsl:variable name="displayMode_">
<xsl:choose>
<!--
Hard code view to view for address panel,
always show view in what was formerly
multiprocessor view. See below.
<xsl:when test="(($G_NUM_OF_PROCS &gt; 1) and ($VIEW='ADDRESS'))">TREE</xsl:when>
<xsl:when test="(($G_NUM_OF_PROCS &lt;= 1) and ($VIEW='ADDRESS'))">FLAT</xsl:when>
-->
<xsl:when test="($VIEW='ADDRESS')">TREE</xsl:when>
<xsl:otherwise><xsl:value-of select="$MODE"/></xsl:otherwise>
</xsl:choose>
</xsl:variable>
<SET CLASS="PROJECT" VIEW= "{$VIEW}" MODE="{$displayMode_}">
<xsl:choose>
<!-- Generate XTeller panel data for Bus Interfaces using hierarchy -->
<xsl:when test="(($VIEW='BUSINTERFACE') and (not($MODE) or ($MODE = 'TREE')))">
<xsl:call-template name="WRITE_VIEW_BIF_TREE"/>
</xsl:when>
<!-- Generate XTeller panel data for Bus Interfaces without hierarchy, (flat view) -->
<xsl:when test="(($VIEW='BUSINTERFACE') and ($MODE = 'FLAT'))">
<xsl:call-template name="WRITE_VIEW_BIF_FLAT"/>
</xsl:when>
<!-- Generate XTeller panel data for Ports using hierarchy -->
<xsl:when test="(($VIEW='PORT') and (not($MODE) or ($MODE = 'TREE')))">
<xsl:call-template name="WRITE_VIEW_PORT_TREE"/>
</xsl:when>
<!-- Generate XTeller panel data for Ports without hierarchy, (flat view) -->
<xsl:when test="(($VIEW='PORT') and ($MODE = 'FLAT'))">
<xsl:call-template name="WRITE_VIEW_PORT_FLAT"/>
</xsl:when>
<!--
Hard code display of the address panel to always the the same.
No more tree or flat mode, always show address panel
in what was formerly the multiprocessor view.
-->
<xsl:when test="($VIEW='ADDRESS')">
<xsl:call-template name="WRITE_VIEW_ADDRESS"/>
</xsl:when>
<xsl:otherwise>
<xsl:message>ERROR during SAV XTeller generation with panel <xsl:value-of select="$VIEW"/> and display mode <xsl:value-of select="$MODE"/></xsl:message>
</xsl:otherwise>
</xsl:choose>
</SET>
</xsl:template>
</xsl:stylesheet>

@ -1,894 +0,0 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE stylesheet [
<!ENTITY UPPERCASE "ABCDEFGHIJKLMNOPQRSTUVWXYZ">
<!ENTITY LOWERCASE "abcdefghijklmnopqrstuvwxyz">
<!ENTITY UPPER2LOWER " '&UPPERCASE;' , '&LOWERCASE;' ">
<!ENTITY LOWER2UPPER " '&LOWERCASE;' , '&UPPERCASE;' ">
<!ENTITY ALPHALOWER "ABCDEFxX0123456789">
<!ENTITY HEXUPPER "ABCDEFxX0123456789">
<!ENTITY HEXLOWER "abcdefxX0123456789">
<!ENTITY HEXU2L " '&HEXLOWER;' , '&HEXUPPER;' ">
]>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:exsl="http://exslt.org/common"
xmlns:dyn="http://exslt.org/dynamic"
xmlns:math="http://exslt.org/math"
xmlns:xlink="http://www.w3.org/1999/xlink"
extension-element-prefixes="exsl dyn math xlink">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<!--
================================================================================
Generate XTeller for ADDRESSES
================================================================================
-->
<xsl:template name="WRITE_VIEW_ADDRESS">
<xsl:for-each select="$G_SYS_MODS/MODULE[((@MODCLASS = 'PROCESSOR') and (MEMORYMAP/MEMRANGE[((not(@IS_VALID) or (@IS_VALID = 'TRUE')) and ACCESSROUTE)]))]">
<xsl:sort data-type="number" select="@ROW_INDEX" order="ascending"/>
<xsl:variable name="procInst_" select="@INSTANCE"/>
<xsl:variable name="procMod_" select="self::node()"/>
<xsl:variable name="procModType" select="@MODTYPE"/>
<xsl:variable name="procModClass_" select="@MODCLASS"/>
<xsl:variable name="procInstHdrVal_"><xsl:value-of select="$procInst_"/>'s Address Map</xsl:variable>
<xsl:variable name="procInstRowIdx_" select="position() - 1"/>
<!-- <SET ID="{$procInst_}" CLASS="MODULE" ROW_INDEX="{$procInstRowIdx_}"> -->
<xsl:element name="SET">
<xsl:attribute name="ID"><xsl:value-of select="$procInst_"/></xsl:attribute>
<xsl:attribute name="CLASS">MODULE</xsl:attribute>
<xsl:attribute name="ROW_INDEX"><xsl:value-of select="$procInstRowIdx_"/></xsl:attribute>
<!-- <VARIABLE VIEWTYPE="STATIC" VIEWDISP="Instance" NAME="INSTANCE" VALUE="{$procInstHdrVal_}"/> -->
<xsl:element name="VARIABLE">
<xsl:attribute name="NAME">INSTANCE</xsl:attribute>
<xsl:attribute name="VALUE"><xsl:value-of select="$procInstHdrVal_"/></xsl:attribute>
<xsl:attribute name="VIEWDISP">Instance</xsl:attribute>
<xsl:attribute name="VIEWTYPE">STATIC</xsl:attribute>
</xsl:element>
<xsl:for-each select="$procMod_/MEMORYMAP/MEMRANGE[((not(@IS_VALID) or (@IS_VALID = 'TRUE')) and (ACCESSROUTE or (@MEMTYPE = 'BRIDGE')))]">
<xsl:sort data-type="number" select="@BASEDECIMAL" order="ascending"/>
<xsl:variable name="addr_id_"><xsl:value-of select="@BASENAME"/>:<xsl:value-of select="@HIGHNAME"/></xsl:variable>
<xsl:variable name="baseName_" select="@BASENAME"/>
<xsl:variable name="highName_" select="@HIGHNAME"/>
<!--
<xsl:if test="$G_DEBUG='TRUE'">
<xsl:message>ADDRESS ID <xsl:value-of select="$addr_id_"/></xsl:message>
</xsl:if>
-->
<xsl:variable name="set_id_">
<xsl:if test="(@INSTANCE)">
<xsl:value-of select="$procInst_"/>.<xsl:value-of select="@INSTANCE"/>:<xsl:value-of select="$addr_id_"/>
</xsl:if>
<xsl:if test="not(@INSTANCE)">
<xsl:value-of select="$procInst_"/>:<xsl:value-of select="$addr_id_"/>
</xsl:if>
</xsl:variable>
<xsl:variable name="procAddrRowIdx_" select="position() - 1"/>
<SET ID="{$set_id_}" CLASS="ADDRESS" ROW_INDEX="{$procAddrRowIdx_}">
<xsl:if test="(@INSTANCE)">
<xsl:variable name="periInst_" select="@INSTANCE"/>
<xsl:variable name="periMod_" select="key('G_MAP_MODULES', $periInst_)"/>
<!--
<xsl:variable name="subInstance_" select="$G_SYS_MODS/MODULE[(@INSTANCE = $instance_)]"/>
<xsl:message>Count memrange slaves <xsl:value-of select="count($modMemMapSlvs_)"/> </xsl:message>
<xsl:message>Count mod valid bifs <xsl:value-of select="count($modValidBifs_)"/> </xsl:message>
-->
<xsl:variable name="periModType_" select="$periMod_/@MODTYPE"/>
<xsl:variable name="periViewIcon_" select="$periMod_/LICENSEINFO/@ICON_NAME"/>
<xsl:variable name="periHwVersion_" select="$periMod_/@HWVERSION"/>
<VARIABLE VIEWTYPE="STATIC" VIEWDISP="Instance" NAME="INSTANCE" VALUE="{$periInst_}"/>
<VARIABLE VIEWTYPE="STATIC" VIEWDISP="IP Type" NAME="MODTYPE" VALUE="{$periModType_}" VIEWICON="{$periViewIcon_}"/>
<VARIABLE VIEWTYPE="STATIC" VIEWDISP="IP Version" NAME="HWVERSION" VALUE="{$periHwVersion_}"/>
</xsl:if>
<xsl:if test="not(@INSTANCE)">
<VARIABLE VIEWTYPE="STATIC" VIEWDISP="Instance" NAME="INSTANCE" VALUE="{$procInst_}"/>
<VARIABLE VIEWTYPE="STATIC" VIEWDISP="IP Type" NAME="MODTYPE" VALUE="{$procModType}" VIEWICON="{$procMod_/LICENSEINFO/@ICON_NAME}"/>
<VARIABLE VIEWTYPE="STATIC" VIEWDISP="IP Version" NAME="HWVERSION" VALUE="{$procHwVersion_}"/>
</xsl:if>
<VARIABLE VIEWTYPE="STATIC" VIEWDISP="Address Type" NAME="MEMTYPE" VALUE="{@MEMTYPE}"/>
<xsl:variable name="instName_">
<xsl:choose>
<xsl:when test="@INSTANCE"><xsl:value-of select="@INSTANCE"/></xsl:when>
<xsl:otherwise>Connected<xsl:value-of select="$procInst_"/></xsl:otherwise>
</xsl:choose>
</xsl:variable>
<!--
<xsl:message>INST : <xsl:value-of select="$set_id_"/></xsl:message>
-->
<xsl:variable name="is_locked_">
<xsl:if test="@IS_LOCKED = 'TRUE'">TRUE</xsl:if>
<xsl:if test="not(@IS_LOCKED) or not(@IS_LOCKED = 'TRUE')">FALSE</xsl:if>
</xsl:variable>
<xsl:variable name="baseAddrViewType_">
<xsl:choose>
<xsl:when test="$is_locked_='TRUE'">STATIC</xsl:when>
<xsl:otherwise>TEXTBOX</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:if test="(@SIZEABRV and not(@SIZEABRV = 'U'))">
<xsl:variable name="baseAddr_"><xsl:value-of select="translate(@BASEVALUE,&HEXU2L;)"/></xsl:variable>
<xsl:variable name="highAddr_"><xsl:value-of select="translate(@HIGHVALUE,&HEXU2L;)"/></xsl:variable>
<VARIABLE VIEWTYPE="{$baseAddrViewType_}" VIEWDISP="Base Address" NAME="BASEVALUE" VALUE="{$baseAddr_}"/>
<VARIABLE VIEWTYPE="STATIC" VIEWDISP="High Address" NAME="HIGHVALUE" VALUE="{$highAddr_}"/>
<xsl:if test="not(@MEMTYPE) or not(@MEMTYPE = 'BRIDGE')">
<VARIABLE VIEWTYPE="CHECKBOX" VIEWDISP="Lock" NAME="IS_LOCKED" VALUE="{$is_locked_}"/>
</xsl:if>
<xsl:if test="@MEMTYPE and (@MEMTYPE = 'BRIDGE') and not(@BRIDGE_TO)">
<VARIABLE VIEWTYPE="CHECKBOX" VIEWDISP="Lock" NAME="IS_LOCKED" VALUE="{$is_locked_}"/>
</xsl:if>
</xsl:if>
<xsl:if test="(@SIZEABRV and (@SIZEABRV = 'U'))">
<VARIABLE VIEWTYPE="TEXTBOX" VIEWDISP="Base Address" NAME="BASEVALUE" VALUE=""/>
</xsl:if>
<VARIABLE VIEWTYPE="STATIC" VIEWDISP="Base Name" NAME="BASENAME" VALUE="{@BASENAME}"/>
<xsl:variable name="sizeViewType_">
<xsl:choose>
<xsl:when test="(@SIZEABRV and (@SIZEABRV = 'U'))">DROPDOWN</xsl:when>
<xsl:when test="$is_locked_='TRUE'">STATIC</xsl:when>
<xsl:otherwise>DROPDOWN</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<VARIABLE VIEWTYPE="{$sizeViewType_}" VIEWDISP="Size" NAME="SIZEABRV" VALUE="{@SIZEABRV}"/>
<xsl:variable name="periInst_" select="@INSTANCE"/>
<xsl:variable name="periMod_" select="key('G_MAP_MODULES', $periInst_)"/>
<xsl:variable name="periModClass_" select="$periMod_/@MODCLASS"/>
<xsl:variable name="periValidBifs_" select="key('G_MAP_ALL_BIFS', $periInst_)[not(@BUSNAME = '__NOC__')]"/>
<xsl:variable name="periMemMapSlvs_" select="$periMod_/MEMORYMAP/MEMRANGE[(@BASENAME = $baseName_) and (@HIGHNAME = $highName_)]/SLAVES/SLAVE"/>
<xsl:variable name="periMemMapBifs_">
<xsl:for-each select="$periMemMapSlvs_">
<xsl:variable name="periSlvBifName_" select="@BUSINTERFACE"/>
<xsl:if test="$periValidBifs_[(@NAME = $periSlvBifName_)]">
<xsl:variable name="periBif_" select="$periValidBifs_[(@NAME = $periSlvBifName_)]"/>
<xsl:variable name="periBifName_" select="$periBif_/@NAME"/>
<xsl:variable name="periBifBus_" select="$periBif_/@BUSNAME"/>
<!--
<xsl:message> Slv Bif <xsl:value-of select="$periBifName_"/> = <xsl:value-of select="$periBifBus_"/></xsl:message>
-->
<MMBIF NAME="{$periBifName_}" BUS="{$periBifBus_}"/>
</xsl:if>
</xsl:for-each>
</xsl:variable>
<xsl:variable name="num_of_periMemMapBifs_" select="count(exsl:node-set($periMemMapBifs_)/MMBIF)"/>
<!--
<xsl:message> Total num of slv bifs <xsl:value-of select="$num_of_periMemMapBifs_"/> </xsl:message>
<xsl:message> </xsl:message>
-->
<xsl:variable name="valid_bifNames_">
<xsl:for-each select="exsl:node-set($periMemMapBifs_)/MMBIF">
<xsl:variable name="bifName_" select="@NAME"/>
<xsl:if test="position() &gt; 1">:</xsl:if><xsl:value-of select="$bifName_"/>
</xsl:for-each>
</xsl:variable>
<xsl:variable name="valid_busNames_">
<xsl:for-each select="exsl:node-set($periMemMapBifs_)/MMBIF">
<xsl:variable name="busName_" select="@BUS"/>
<xsl:if test="position() &gt; 1">:</xsl:if><xsl:value-of select="$busName_"/>
</xsl:for-each>
</xsl:variable>
<!--
<xsl:message> Mod Bif <xsl:value-of select="$bifName_"/> : <xsl:value-of select="position()"/></xsl:message>
<xsl:message> Mod Bif <xsl:value-of select="$bifName_"/> : <xsl:value-of select="position()"/></xsl:message>
<xsl:message>Slv Bif <xsl:value-of select="$bifName_"/> : <xsl:value-of select="position()"/></xsl:message>
<xsl:variable name="modBifs_" select="$modInst_/BUSINTERFACES"/>
<xsl:if test="$periValidBifs_[(@NAME = $bifName_)]">
<xsl:variable name="busName_" select="$periValidBifs_[(@NAME = $bifName_)]/@BUSNAME"/>
<xsl:message>Mod Bif <xsl:value-of select="$bifName_"/> : <xsl:value-of select="position()"/></xsl:message>
<xsl:if test="position() &gt; 1">:</xsl:if><xsl:value-of select="$bifName_"/>
</xsl:if>
-->
<!--
<xsl:message>Module Instances <xsl:value-of select="$instName_"/> </xsl:message>
<xsl:message>Base Name <xsl:value-of select="$baseName_"/> </xsl:message>
<xsl:message>High Name <xsl:value-of select="$highName_"/> </xsl:message>
<xsl:message>Valid bif names <xsl:value-of select="$valid_bifNames_"/> </xsl:message>
<xsl:message>Valid bif names <xsl:value-of select="$valid_bifNames_"/> </xsl:message>
<xsl:message>Valid bus names <xsl:value-of select="$valid_busNames_"/> </xsl:message>
-->
<xsl:variable name="var_bifNames_">
<xsl:choose>
<xsl:when test="string-length($valid_bifNames_) &lt; 1">
<xsl:choose>
<xsl:when test="$periModClass_ = 'BUS'">Not Applicable</xsl:when>
<xsl:otherwise>Not Connected</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:otherwise><xsl:value-of select="$valid_bifNames_"/></xsl:otherwise>
</xsl:choose>
</xsl:variable>
<VARIABLE VIEWTYPE="STATIC" VIEWDISP="Bus Interface(s)" NAME="BIFNAMES" VALUE="{$var_bifNames_}"/>
<xsl:if test="(($num_of_periMemMapBifs_ &gt; 0) and (string-length($valid_busNames_) &gt; 0))">
<VARIABLE VIEWTYPE="STATIC" VIEWDISP="Bus Name" NAME="BUSNAME" VALUE="{$valid_busNames_}"/>
</xsl:if>
</SET> <!-- End of one processor memory range row -->
</xsl:for-each> <!-- end of processor memory ranges loop -->
</xsl:element><!-- End of Processor memory map set -->
</xsl:for-each> <!-- end of processor module address space loop -->
<!--
Add branch for valid address that are not part of a processor's
memory map. Usually modules that have just been added, but have
not been connected to a bus yet.
-->
<xsl:variable name="nonProcAddresses_">
<!-- Add a dummy non proc as a place holder. Otherwise the exsl:node-set test
Below complains if the variable is completely empty
-->
<NONPROCADDRESS INSTANCE="__DUMMY__" BASENAME="__DUMMY__" HIGHNAME="__DUMMY__" BASEDECIMAL="__DUMMY__"/>
<xsl:for-each select="$G_SYS_MODS/MODULE[(not(@MODCLASS = 'PROCESSOR') and (MEMORYMAP/MEMRANGE[((not(@IS_VALID) or (@IS_VALID = 'TRUE')) and ACCESSROUTE)]))]">
<xsl:variable name="nonProcInst_" select="@INSTANCE"/>
<xsl:for-each select="MEMORYMAP/MEMRANGE[(not(@IS_VALID) or (@IS_VALID = 'TRUE'))]">
<xsl:variable name="highName_" select="@HIGHNAME"/>
<xsl:variable name="baseName_" select="@BASENAME"/>
<xsl:variable name="baseDecimal_" select="@BASEDECIMAL"/>
<xsl:if test="not($G_SYS_MODS/MODULE[(@MODCLASS = 'PROCESSOR')]/MEMORYMAP/MEMRANGE[((@INSTANCE = $nonProcInst_) and (@BASENAME = $baseName_) and (@HIGHNAME = $highName_))])">
<NONPROCADDRESS INSTANCE="{$nonProcInst_}" BASENAME="{$baseName_}" HIGHNAME="{$highName_}" BASEDECIMAL="{$baseDecimal_}"/>
</xsl:if>
</xsl:for-each>
</xsl:for-each>
</xsl:variable>
<!-- Add unmapped addresses -->
<xsl:variable name="hasUnMappedAddress">
<xsl:for-each select="$G_SYS_MODS/MODULE[(not(@MODCLASS = 'PROCESSOR') and (MEMORYMAP/MEMRANGE[(not(@IS_VALID) or (@IS_VALID = 'TRUE'))]))]">
<xsl:variable name="nonProcInst_" select="@INSTANCE"/>
<xsl:for-each select="MEMORYMAP/MEMRANGE[(not(@IS_VALID) or (@IS_VALID = 'TRUE'))]">
<xsl:variable name="highName_" select="@HIGHNAME"/>
<xsl:variable name="baseName_" select="@BASENAME"/>
<xsl:variable name="baseDecimal_" select="@BASEDECIMAL"/>
<xsl:if test="not($G_SYS_MODS/MODULE[(@MODCLASS = 'PROCESSOR')]/MEMORYMAP/MEMRANGE[((@INSTANCE = $nonProcInst_) and (@BASENAME = $baseName_) and (@HIGHNAME = $highName_))])"><xsl:value-of select="$nonProcInst_"/></xsl:if>
</xsl:for-each>
</xsl:for-each>
</xsl:variable>
<xsl:if test="string-length($hasUnMappedAddress) &gt; 1">
<SET ID="Unmapped Addresses" CLASS="MODULE" ROW_INDEX="{$G_NUM_OF_PROCS_W_ADDRS}">
<VARIABLE VIEWTYPE="STATIC" VIEWDISP="Instance" NAME="INSTANCE" VALUE="Unmapped Addresses"/>
<xsl:for-each select="$G_SYS_MODS/MODULE[(not(@MODCLASS = 'PROCESSOR') and (MEMORYMAP/MEMRANGE[(not(@IS_VALID) or (@IS_VALID = 'TRUE'))]))]/MEMORYMAP/MEMRANGE[(not(@IS_VALID) or (@IS_VALID = 'TRUE'))]">
<xsl:variable name="nonProcMod_" select="../.."/>
<xsl:variable name="nonProcMMap_" select="$nonProcMod_/MEMORYMAP"/>
<xsl:variable name="instance_" select="$nonProcMod_/@INSTANCE"/>
<xsl:variable name="row_index_" select="position()"/>
<xsl:variable name="instName_" select="$nonProcMod_/@INSTANCE"/>
<xsl:variable name="highName_" select="@HIGHNAME"/>
<xsl:variable name="baseName_" select="@BASENAME"/>
<xsl:variable name="baseDecimal_" select="@BASEDECIMAL"/>
<xsl:for-each select="$nonProcMMap_/MEMRANGE[((@BASENAME = $baseName_) and (@HIGHNAME = $highName_))]">
<xsl:if test="not($G_SYS_MODS/MODULE[(@MODCLASS = 'PROCESSOR')]/MEMORYMAP/MEMRANGE[((@INSTANCE = $instName_) and (@BASENAME = $baseName_) and (@HIGHNAME = $highName_))])">
<xsl:variable name="addr_id_"><xsl:value-of select="$baseName_"/>:<xsl:value-of select="$highName_"/></xsl:variable>
<xsl:variable name="set_id_"><xsl:value-of select="$instName_"/>:<xsl:value-of select="$addr_id_"/></xsl:variable>
<xsl:variable name="inst_modtype_" select="$nonProcMod_/@MODTYPE"/>
<xsl:variable name="inst_viewicon_" select="$nonProcMod_/LICENSEINFO/@ICON_NAME"/>
<xsl:variable name="inst_modclass_" select="$nonProcMod_/@MODCLASS"/>
<xsl:variable name="inst_hwversion_" select="$nonProcMod_/@HWVERSION"/>
<SET ID="{$set_id_}" CLASS="ADDRESS">
<VARIABLE VIEWTYPE="STATIC" VIEWDISP="Instance" NAME="INSTANCE" VALUE="{$instance_}"/>
<VARIABLE VIEWTYPE="STATIC" VIEWDISP="IP Type" NAME="MODTYPE" VALUE="{$inst_modtype_}" VIEWICON="{$inst_viewicon_}"/>
<VARIABLE VIEWTYPE="STATIC" VIEWDISP="IP Version" NAME="HWVERSION" VALUE="{$inst_hwversion_}"/>
<VARIABLE VIEWTYPE="STATIC" VIEWDISP="Address Type" NAME="MEMTYPE" VALUE="{@MEMTYPE}"/>
<xsl:variable name="is_locked_">
<xsl:if test="@IS_LOCKED = 'TRUE'">TRUE</xsl:if>
<xsl:if test="not(@IS_LOCKED) or not(@IS_LOCKED = 'TRUE')">FALSE</xsl:if>
</xsl:variable>
<xsl:variable name="baseAddrViewType_">
<xsl:choose>
<xsl:when test="$is_locked_='TRUE'">STATIC</xsl:when>
<xsl:otherwise>TEXTBOX</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:if test="(@SIZEABRV and not(@SIZEABRV = 'U'))">
<xsl:variable name="baseAddr_"><xsl:value-of select="translate(@BASEVALUE,&HEXU2L;)"/></xsl:variable>
<xsl:variable name="highAddr_"><xsl:value-of select="translate(@HIGHVALUE,&HEXU2L;)"/></xsl:variable>
<VARIABLE VIEWTYPE="{$baseAddrViewType_}" VIEWDISP="Base Address" NAME="BASEVALUE" VALUE="{$baseAddr_}"/>
<VARIABLE VIEWTYPE="STATIC" VIEWDISP="High Address" NAME="HIGHVALUE" VALUE="{$highAddr_}"/>
<xsl:if test="not(@MEMTYPE) or not(@MEMTYPE = 'BRIDGE')">
<VARIABLE VIEWTYPE="CHECKBOX" VIEWDISP="Lock" NAME="IS_LOCKED" VALUE="{$is_locked_}"/>
</xsl:if>
<xsl:if test="@MEMTYPE and (@MEMTYPE = 'BRIDGE') and not(@BRIDGE_TO)">
<VARIABLE VIEWTYPE="CHECKBOX" VIEWDISP="Lock" NAME="IS_LOCKED" VALUE="{$is_locked_}"/>
</xsl:if>
</xsl:if>
<xsl:if test="(@SIZEABRV and (@SIZEABRV = 'U'))">
<VARIABLE VIEWTYPE="TEXTBOX" VIEWDISP="Base Address" NAME="BASEVALUE" VALUE=""/>
</xsl:if>
<!--
Lock, DCache and ICache removed in 11.1
<xsl:if test="(@IS_CACHEABLE = 'TRUE')">
<xsl:variable name="is_dcached_">
<xsl:if test="(@IS_DCACHED = 'TRUE')">TRUE</xsl:if>
<xsl:if test="(not(@IS_DCACHED) or not(@IS_DCACHED = 'TRUE'))">FALSE</xsl:if>
</xsl:variable>
<xsl:variable name="is_icached_">
<xsl:if test="(@IS_ICACHED = 'TRUE')">TRUE</xsl:if>
<xsl:if test="(not(@IS_ICACHED) or not(@IS_ICACHED = 'TRUE'))">FALSE</xsl:if>
</xsl:variable>
<VARIABLE VIEWTYPE="CHECKBOX" VIEWDISP="DCache" NAME="IS_DCACHED" VALUE="{$is_dcached_}"/>
<VARIABLE VIEWTYPE="CHECKBOX" VIEWDISP="ICache" NAME="IS_ICACHED" VALUE="{$is_icached_}"/>
</xsl:if>
-->
<VARIABLE VIEWTYPE="STATIC" VIEWDISP="Base Name" NAME="BASENAME" VALUE="{@BASENAME}"/>
<xsl:variable name="sizeViewType_">
<xsl:choose>
<xsl:when test="(@SIZEABRV and (@SIZEABRV = 'U'))">DROPDOWN</xsl:when>
<xsl:when test="$is_locked_='TRUE'">STATIC</xsl:when>
<xsl:otherwise>DROPDOWN</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<VARIABLE VIEWTYPE="{$sizeViewType_}" VIEWDISP="Size" NAME="SIZEABRV" VALUE="{@SIZEABRV}"/>
<xsl:variable name="valid_bifNames_">
<xsl:choose>
<xsl:when test="$nonProcMMap_/MEMRANGE[(@BASENAME = $baseName_) and (@HIGHNAME = $highName_)]/SLAVES">
<xsl:for-each select="$nonProcMMap_/MEMRANGE[(@BASENAME = $baseName_) and (@HIGHNAME = $highName_)]/SLAVES/SLAVE">
<xsl:variable name="bifName_" select="@BUSINTERFACE"/>
<!-- <xsl:message>Bif Name <xsl:value-of select="$bifName_"/> </xsl:message> -->
<xsl:variable name="modBifs_" select="$nonProcMod_/BUSINTERFACES"/>
<xsl:if test="$modBifs_/BUSINTERFACE[((@NAME = $bifName_) and not(@IS_VALID = 'FALSE') and not(@BUSNAME = '__NOC__'))]">
<xsl:variable name="busName_" select="$modBifs_/BUSINTERFACE[((@NAME = $bifName_) and not(@IS_VALID = 'FALSE') and not(@BUSNAME = '__NOC__'))]/@BUSNAME"/>
<xsl:if test="position() &gt; 1">:</xsl:if><xsl:value-of select="@BUSINTERFACE"/>
</xsl:if>
</xsl:for-each>
</xsl:when>
<xsl:otherwise>
<xsl:for-each select="$nonProcMMap_/MEMRANGE[(@BASENAME = $baseName_) and (@HIGHNAME = $highName_)]/SLVINTERFACES/BUSINTERFACE">
<xsl:variable name="bifName_" select="@NAME"/>
<xsl:variable name="modBifs_" select="$nonProcMod_"/>
<xsl:if test="$modBifs_/BUSINTERFACE[((@NAME = $bifName_) and not(@IS_VALID = 'FALSE') and not(@BUSNAME = '__NOC__'))]">
<xsl:variable name="busName_" select="$modBifs_/BUSINTERFACE[((@NAME = $bifName_) and not(@IS_VALID = 'FALSE') and not(@BUSNAME = '__NOC__'))]/@BUSNAME"/>
<xsl:if test="position() &gt; 1">:</xsl:if><xsl:value-of select="@NAME"/>
</xsl:if>
</xsl:for-each>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="def_bifNames_">
<xsl:choose>
<xsl:when test="(string-length($valid_bifNames_) &lt; 1) or ((string-length($valid_bifNames_) = 1) and ($valid_bifNames_ = ':'))">Not Connected</xsl:when>
<xsl:when test="starts-with($valid_bifNames_,':')"><xsl:value-of select="substring-after($valid_bifNames_,':')"/></xsl:when>
<xsl:otherwise><xsl:value-of select="$valid_bifNames_"/></xsl:otherwise>
</xsl:choose>
</xsl:variable>
<VARIABLE VIEWTYPE="STATIC" VIEWDISP="Bus Interface(s)" NAME="BIFNAMES" VALUE="{$def_bifNames_}"/>
<xsl:choose>
<xsl:when test="$nonProcMMap_/MEMRANGE[(@BASENAME = $baseName_) and (@HIGHNAME = $highName_)]/SLAVES">
<xsl:for-each select="$nonProcMMap_/MEMRANGE[(@BASENAME = $baseName_) and (@HIGHNAME = $highName_)]/SLAVES/SLAVE">
<xsl:variable name="slvBifName_" select="@BUSINTERFACE"/>
<xsl:variable name="modBifs_" select="$nonProcMod_/BUSINTERFACES"/>
<xsl:if test="count($modBifs_/BUSINTERFACE[((@NAME = $slvBifName_) and not(@IS_VALID = 'FALSE') and not(@BUSNAME = '__NOC__'))]) = 1">
<xsl:variable name="slvBusName_" select="$modBifs_/BUSINTERFACE[((@NAME = $slvBifName_) and not(@IS_VALID = 'FALSE') and not(@BUSNAME = '__NOC__'))]/@BUSNAME"/>
<VARIABLE VIEWTYPE="STATIC" VIEWDISP="Bus Name" NAME="BUSNAME" VALUE="{$slvBusName_}"/>
</xsl:if>
</xsl:for-each>
</xsl:when>
<xsl:otherwise>
<xsl:for-each select="$nonProcMMap_/MEMRANGE[(@BASENAME = $baseName_) and (@HIGHNAME = $highName_)]/SLVINTERFACES/BUSINTERFACE">
<xsl:variable name="slvBifName_" select="@NAME"/>
<xsl:variable name="modBifs_" select="$nonProcMod_"/>
<xsl:if test="count($modBifs_/BUSINTERFACE[((@NAME = $slvBifName_) and not(@IS_VALID = 'FALSE') and not(@BUSNAME = '__NOC__'))]) = 1">
<xsl:variable name="slvBusName_" select="$modBifs_/BUSINTERFACE[((@NAME = $slvBifName_) and not(@IS_VALID = 'FALSE') and not(@BUSNAME = '__NOC__'))]/@BUSNAME"/>
<VARIABLE VIEWTYPE="STATIC" VIEWDISP="Bus Name" NAME="BUSNAME" VALUE="{$slvBusName_}"/>
</xsl:if>
</xsl:for-each>
</xsl:otherwise>
</xsl:choose>
</SET> <!-- End of one non processor memory range row -->
</xsl:if>
</xsl:for-each> <!-- end of non processor memory ranges loop -->
</xsl:for-each> <!-- end of NONPROCADDRESS loop -->
</SET> <!-- End of non processor tree branch -->
</xsl:if> <!-- End of test to see if we have and non processor mapped address -->
</xsl:template>
<xsl:template name="__WRITE_VIEW_ADDRESS__">
<!--
-->
<xsl:for-each select="$G_SYS_MODS/MODULE[((@MODCLASS = 'PROCESSOR') and (MEMORYMAP/MEMRANGE[((not(@IS_VALID) or (@IS_VALID = 'TRUE')) and ACCESSROUTE)]))]">
<xsl:sort data-type="number" select="@ROW_INDEX" order="ascending"/>
<xsl:variable name="procInst_" select="@INSTANCE"/>
<xsl:variable name="modClass_" select="@MODCLASS"/>
<xsl:variable name="procInstHdrVal_"><xsl:value-of select="$procInst_"/>'s Address Map</xsl:variable>
<xsl:variable name="procInstRowIdx_" select="position() - 1"/>
<xsl:variable name="modInstance_" select="self::node()"/>
<SET ID="{$procInst_}" CLASS="MODULE" ROW_INDEX="{$procInstRowIdx_}">
<VARIABLE VIEWTYPE="STATIC" VIEWDISP="Instance" NAME="INSTANCE" VALUE="{$procInstHdrVal_}"/>
<xsl:for-each select="$modInstance_/MEMORYMAP/MEMRANGE[((not(@IS_VALID) or (@IS_VALID = 'TRUE')) and (ACCESSROUTE or (@MEMTYPE = 'BRIDGE')))]">
<xsl:sort data-type="number" select="@BASEDECIMAL" order="ascending"/>
<xsl:variable name="addr_id_"><xsl:value-of select="@BASENAME"/>:<xsl:value-of select="@HIGHNAME"/></xsl:variable>
<xsl:variable name="baseName_" select="@BASENAME"/>
<xsl:variable name="highName_" select="@HIGHNAME"/>
<xsl:if test="$G_DEBUG='TRUE'">
<xsl:message>ADDRESS ID <xsl:value-of select="$addr_id_"/></xsl:message>
</xsl:if>
<xsl:variable name="set_id_">
<xsl:if test="(@INSTANCE)">
<xsl:value-of select="$procInst_"/>.<xsl:value-of select="@INSTANCE"/>:<xsl:value-of select="$addr_id_"/>
</xsl:if>
<xsl:if test="not(@INSTANCE)">
<xsl:value-of select="$procInst_"/>:<xsl:value-of select="$addr_id_"/>
</xsl:if>
</xsl:variable>
<xsl:variable name="procAddrRowIdx_" select="position() - 1"/>
<SET ID="{$set_id_}" CLASS="ADDRESS" ROW_INDEX="{$procAddrRowIdx_}">
<xsl:if test="(@INSTANCE)">
<xsl:variable name="instance_" select="@INSTANCE"/>
<xsl:variable name="subInstance_" select="$G_SYS_MODS/MODULE[(@INSTANCE = $instance_)]"/>
<xsl:variable name="inst_modtype_" select="$subInstance_/@MODTYPE"/>
<xsl:variable name="inst_viewicon_" select="$subInstance_/LICENSEINFO/@ICON_NAME"/>
<xsl:variable name="inst_hwversion_" select="$subInstance_/@HWVERSION"/>
<VARIABLE VIEWTYPE="STATIC" VIEWDISP="Instance" NAME="INSTANCE" VALUE="{$instance_}"/>
<VARIABLE VIEWTYPE="STATIC" VIEWDISP="IP Type" NAME="MODTYPE" VALUE="{$inst_modtype_}" VIEWICON="{$inst_viewicon_}"/>
<VARIABLE VIEWTYPE="STATIC" VIEWDISP="IP Version" NAME="HWVERSION" VALUE="{$inst_hwversion_}"/>
</xsl:if>
<xsl:if test="not(@INSTANCE)">
<VARIABLE VIEWTYPE="STATIC" VIEWDISP="Instance" NAME="INSTANCE" VALUE="{$modInstance_/@INSTANCE}"/>
<VARIABLE VIEWTYPE="STATIC" VIEWDISP="IP Type" NAME="MODTYPE" VALUE="{$modInstance_/@MODTYPE}" VIEWICON="{$modInstance_/LICENSEINFO/@ICON_NAME}"/>
<VARIABLE VIEWTYPE="STATIC" VIEWDISP="IP Version" NAME="HWVERSION" VALUE="{$modInstance_/@HWVERSION}"/>
</xsl:if>
<VARIABLE VIEWTYPE="STATIC" VIEWDISP="Address Type" NAME="MEMTYPE" VALUE="{@MEMTYPE}"/>
<xsl:variable name="instName_">
<xsl:choose>
<xsl:when test="@INSTANCE"><xsl:value-of select="@INSTANCE"/></xsl:when>
<xsl:otherwise>Connected<xsl:value-of select="$modInstance_/@INSTANCE"/></xsl:otherwise>
</xsl:choose>
</xsl:variable>
<!--
<xsl:message>INST : <xsl:value-of select="$set_id_"/></xsl:message>
-->
<xsl:variable name="is_locked_">
<xsl:if test="@IS_LOCKED = 'TRUE'">TRUE</xsl:if>
<xsl:if test="not(@IS_LOCKED) or not(@IS_LOCKED = 'TRUE')">FALSE</xsl:if>
</xsl:variable>
<xsl:variable name="baseAddrViewType_">
<xsl:choose>
<xsl:when test="$is_locked_='TRUE'">STATIC</xsl:when>
<xsl:otherwise>TEXTBOX</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:if test="(@SIZEABRV and not(@SIZEABRV = 'U'))">
<xsl:variable name="baseAddr_"><xsl:value-of select="translate(@BASEVALUE,&HEXU2L;)"/></xsl:variable>
<xsl:variable name="highAddr_"><xsl:value-of select="translate(@HIGHVALUE,&HEXU2L;)"/></xsl:variable>
<VARIABLE VIEWTYPE="{$baseAddrViewType_}" VIEWDISP="Base Address" NAME="BASEVALUE" VALUE="{$baseAddr_}"/>
<VARIABLE VIEWTYPE="STATIC" VIEWDISP="High Address" NAME="HIGHVALUE" VALUE="{$highAddr_}"/>
<xsl:if test="not(@MEMTYPE) or not(@MEMTYPE = 'BRIDGE')">
<VARIABLE VIEWTYPE="CHECKBOX" VIEWDISP="Lock" NAME="IS_LOCKED" VALUE="{$is_locked_}"/>
</xsl:if>
<xsl:if test="@MEMTYPE and (@MEMTYPE = 'BRIDGE') and not(@BRIDGE_TO)">
<VARIABLE VIEWTYPE="CHECKBOX" VIEWDISP="Lock" NAME="IS_LOCKED" VALUE="{$is_locked_}"/>
</xsl:if>
</xsl:if>
<xsl:if test="(@SIZEABRV and (@SIZEABRV = 'U'))">
<VARIABLE VIEWTYPE="TEXTBOX" VIEWDISP="Base Address" NAME="BASEVALUE" VALUE=""/>
</xsl:if>
<VARIABLE VIEWTYPE="STATIC" VIEWDISP="Base Name" NAME="BASENAME" VALUE="{@BASENAME}"/>
<xsl:variable name="sizeViewType_">
<xsl:choose>
<xsl:when test="(@SIZEABRV and (@SIZEABRV = 'U'))">DROPDOWN</xsl:when>
<xsl:when test="$is_locked_='TRUE'">STATIC</xsl:when>
<xsl:otherwise>DROPDOWN</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<VARIABLE VIEWTYPE="{$sizeViewType_}" VIEWDISP="Size" NAME="SIZEABRV" VALUE="{@SIZEABRV}"/>
<xsl:variable name="modInst_" select="$G_SYS_MODS/MODULE[(@INSTANCE = $instName_)]"/>
<xsl:variable name="modMemMap_" select="$modInst_/MEMORYMAP"/>
<xsl:variable name="valid_bifNames_">
<xsl:choose>
<xsl:when test="$modMemMap_/MEMRANGE[(@BASENAME = $baseName_) and (@HIGHNAME = $highName_)]/SLAVES">
<xsl:for-each select="$modMemMap_/MEMRANGE[(@BASENAME = $baseName_) and (@HIGHNAME = $highName_)]/SLAVES/SLAVE">
<xsl:variable name="bifName_" select="@BUSINTERFACE"/>
<!-- <xsl:message>Bif Name <xsl:value-of select="$bifName_"/> </xsl:message> -->
<xsl:variable name="modBifs_" select="$modInst_/BUSINTERFACES"/>
<xsl:if test="$modBifs_/BUSINTERFACE[((@NAME = $bifName_) and not(@IS_VALID = 'FALSE') and not(@BUSNAME = '__NOC__'))]">
<xsl:variable name="busName_" select="$modBifs_/BUSINTERFACE[((@NAME = $bifName_) and not(@IS_VALID = 'FALSE') and not(@BUSNAME = '__NOC__'))]/@BUSNAME"/>
<xsl:if test="position() &gt; 1">:</xsl:if><xsl:value-of select="@BUSINTERFACE"/>
</xsl:if>
</xsl:for-each>
</xsl:when>
<xsl:otherwise>
<xsl:for-each select="$modMemMap_/MEMRANGE[(@BASENAME = $baseName_) and (@HIGHNAME = $highName_)]/SLVINTERFACES/BUSINTERFACE">
<xsl:variable name="bifName_" select="@NAME"/>
<xsl:variable name="modBifs_" select="$modInst_"/>
<xsl:if test="$modBifs_/BUSINTERFACE[((@NAME = $bifName_) and not(@IS_VALID = 'FALSE') and not(@BUSNAME = '__NOC__'))]">
<xsl:variable name="busName_" select="$modBifs_/BUSINTERFACE[((@NAME = $bifName_) and not(@IS_VALID = 'FALSE') and not(@BUSNAME = '__NOC__'))]/@BUSNAME"/>
<xsl:if test="position() &gt; 1">:</xsl:if><xsl:value-of select="@NAME"/>
</xsl:if>
</xsl:for-each>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<!--
<xsl:message>Module Instances <xsl:value-of select="$instName_"/> </xsl:message>
<xsl:message>Base Name <xsl:value-of select="$baseName_"/> </xsl:message>
<xsl:message>High Name <xsl:value-of select="$highName_"/> </xsl:message>
<xsl:message>Valid bif names <xsl:value-of select="$valid_bifNames_"/> </xsl:message>
-->
<xsl:variable name="def_bifNames_">
<xsl:choose>
<xsl:when test="string-length($valid_bifNames_) &lt; 1">
<xsl:choose>
<xsl:when test="$modClass_ = 'BUS'">Not Applicable</xsl:when>
<xsl:otherwise>Not Connected</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:when test="starts-with($valid_bifNames_,':')"><xsl:value-of select="substring-after($valid_bifNames_,':')"/></xsl:when>
<xsl:otherwise><xsl:value-of select="$valid_bifNames_"/></xsl:otherwise>
</xsl:choose>
</xsl:variable>
<VARIABLE VIEWTYPE="STATIC" VIEWDISP="Bus Interface(s)" NAME="BIFNAMES" VALUE="{$def_bifNames_}"/>
<xsl:choose>
<xsl:when test="$modMemMap_/MEMRANGE[(@BASENAME = $baseName_) and (@HIGHNAME = $highName_)]/SLAVES">
<xsl:for-each select="$modMemMap_/MEMRANGE[(@BASENAME = $baseName_) and (@HIGHNAME = $highName_)]/SLAVES/SLAVE">
<xsl:variable name="bifName_" select="@BUSINTERFACE"/>
<xsl:variable name="modBifs_" select="$modInst_/BUSINTERFACES"/>
<xsl:if test="$modBifs_/BUSINTERFACE[((@NAME = $bifName_) and not(@IS_VALID = 'FALSE') and not(@BUSNAME = '__NOC__'))]">
<xsl:variable name="busName_" select="$modBifs_/BUSINTERFACE[((@NAME = $bifName_) and not(@IS_VALID = 'FALSE') and not(@BUSNAME = '__NOC__'))]/@BUSNAME"/>
<xsl:variable name="numBifs_" select="count($modBifs_/BUSINTERFACE[((@NAME = $bifName_) and not(@IS_VALID = 'FALSE') and not(@BUSNAME = '__NOC__'))])"/>
<xsl:if test="((position() = 1) or ($numBifs_ = 1))">
<VARIABLE VIEWTYPE="STATIC" VIEWDISP="Bus Name" NAME="BUSNAME" VALUE="{$busName_}"/>
</xsl:if>
</xsl:if>
</xsl:for-each>
</xsl:when>
<xsl:otherwise>
<xsl:for-each select="$modMemMap_/MEMRANGE[(@BASENAME = $baseName_) and (@HIGHNAME = $highName_)]/SLVINTERFACES/BUSINTERFACE">
<xsl:variable name="bifName_" select="@NAME"/>
<xsl:variable name="modBifs_" select="$modInst_"/>
<xsl:if test="$modBifs_/BUSINTERFACE[((@NAME = $bifName_) and not(@IS_VALID = 'FALSE') and not(@BUSNAME = '__NOC__'))]">
<xsl:variable name="busName_" select="$modBifs_/BUSINTERFACE[((@NAME = $bifName_) and not(@IS_VALID = 'FALSE') and not(@BUSNAME = '__NOC__'))]/@BUSNAME"/>
<xsl:variable name="numBifs_" select="count($modBifs_/BUSINTERFACE[((@NAME = $bifName_) and not(@IS_VALID = 'FALSE') and not(@BUSNAME = '__NOC__'))])"/>
<xsl:if test="((position() = 1) or ($numBifs_ = 1))">
<VARIABLE VIEWTYPE="STATIC" VIEWDISP="Bus Name" NAME="BUSNAME" VALUE="{$busName_}"/>
</xsl:if>
</xsl:if>
</xsl:for-each>
</xsl:otherwise>
</xsl:choose>
<!--
-->
</SET> <!-- End of one processor memory range row -->
</xsl:for-each> <!-- end of processor memory ranges loop -->
</SET>
</xsl:for-each> <!-- end of processor module address space loop -->
<!--
Add branch for valid address that are not part of a processor's
memory map. Usually modules that have just been added, but have
not been connected to a bus yet.
-->
<xsl:variable name="nonProcAddresses_">
<!-- Add a dummy non proc as a place holder. Otherwise the exsl:node-set test
Below complains if the variable is completely empty
-->
<NONPROCADDRESS INSTANCE="__DUMMY__" BASENAME="__DUMMY__" HIGHNAME="__DUMMY__" BASEDECIMAL="__DUMMY__"/>
<xsl:for-each select="$G_SYS_MODS/MODULE[(not(@MODCLASS = 'PROCESSOR') and (MEMORYMAP/MEMRANGE[((not(@IS_VALID) or (@IS_VALID = 'TRUE')) and ACCESSROUTE)]))]">
<xsl:variable name="nonProcInst_" select="@INSTANCE"/>
<xsl:for-each select="MEMORYMAP/MEMRANGE[(not(@IS_VALID) or (@IS_VALID = 'TRUE'))]">
<xsl:variable name="highName_" select="@HIGHNAME"/>
<xsl:variable name="baseName_" select="@BASENAME"/>
<xsl:variable name="baseDecimal_" select="@BASEDECIMAL"/>
<xsl:if test="not($G_SYS_MODS/MODULE[(@MODCLASS = 'PROCESSOR')]/MEMORYMAP/MEMRANGE[((@INSTANCE = $nonProcInst_) and (@BASENAME = $baseName_) and (@HIGHNAME = $highName_))])">
<NONPROCADDRESS INSTANCE="{$nonProcInst_}" BASENAME="{$baseName_}" HIGHNAME="{$highName_}" BASEDECIMAL="{$baseDecimal_}"/>
</xsl:if>
</xsl:for-each>
</xsl:for-each>
</xsl:variable>
<!-- Add unmapped addresses -->
<xsl:variable name="hasUnMappedAddress">
<xsl:for-each select="$G_SYS_MODS/MODULE[(not(@MODCLASS = 'PROCESSOR') and (MEMORYMAP/MEMRANGE[(not(@IS_VALID) or (@IS_VALID = 'TRUE'))]))]">
<xsl:variable name="nonProcInst_" select="@INSTANCE"/>
<xsl:for-each select="MEMORYMAP/MEMRANGE[(not(@IS_VALID) or (@IS_VALID = 'TRUE'))]">
<xsl:variable name="highName_" select="@HIGHNAME"/>
<xsl:variable name="baseName_" select="@BASENAME"/>
<xsl:variable name="baseDecimal_" select="@BASEDECIMAL"/>
<xsl:if test="not($G_SYS_MODS/MODULE[(@MODCLASS = 'PROCESSOR')]/MEMORYMAP/MEMRANGE[((@INSTANCE = $nonProcInst_) and (@BASENAME = $baseName_) and (@HIGHNAME = $highName_))])"><xsl:value-of select="$nonProcInst_"/></xsl:if>
</xsl:for-each>
</xsl:for-each>
</xsl:variable>
<xsl:if test="string-length($hasUnMappedAddress) &gt; 1">
<SET ID="Unmapped Addresses" CLASS="MODULE" ROW_INDEX="{$G_NUM_OF_PROCS_W_ADDRS}">
<VARIABLE VIEWTYPE="STATIC" VIEWDISP="Instance" NAME="INSTANCE" VALUE="Unmapped Addresses"/>
<xsl:for-each select="$G_SYS_MODS/MODULE[(not(@MODCLASS = 'PROCESSOR') and (MEMORYMAP/MEMRANGE[(not(@IS_VALID) or (@IS_VALID = 'TRUE'))]))]/MEMORYMAP/MEMRANGE[(not(@IS_VALID) or (@IS_VALID = 'TRUE'))]">
<xsl:variable name="nonProcMod_" select="../.."/>
<xsl:variable name="nonProcMMap_" select="$nonProcMod_/MEMORYMAP"/>
<xsl:variable name="instance_" select="$nonProcMod_/@INSTANCE"/>
<xsl:variable name="row_index_" select="position()"/>
<xsl:variable name="instName_" select="$nonProcMod_/@INSTANCE"/>
<xsl:variable name="highName_" select="@HIGHNAME"/>
<xsl:variable name="baseName_" select="@BASENAME"/>
<xsl:variable name="baseDecimal_" select="@BASEDECIMAL"/>
<xsl:for-each select="$nonProcMMap_/MEMRANGE[((@BASENAME = $baseName_) and (@HIGHNAME = $highName_))]">
<xsl:if test="not($G_SYS_MODS/MODULE[(@MODCLASS = 'PROCESSOR')]/MEMORYMAP/MEMRANGE[((@INSTANCE = $instName_) and (@BASENAME = $baseName_) and (@HIGHNAME = $highName_))])">
<xsl:variable name="addr_id_"><xsl:value-of select="$baseName_"/>:<xsl:value-of select="$highName_"/></xsl:variable>
<xsl:variable name="set_id_"><xsl:value-of select="$instName_"/>:<xsl:value-of select="$addr_id_"/></xsl:variable>
<xsl:variable name="inst_modtype_" select="$nonProcMod_/@MODTYPE"/>
<xsl:variable name="inst_viewicon_" select="$nonProcMod_/LICENSEINFO/@ICON_NAME"/>
<xsl:variable name="inst_modclass_" select="$nonProcMod_/@MODCLASS"/>
<xsl:variable name="inst_hwversion_" select="$nonProcMod_/@HWVERSION"/>
<SET ID="{$set_id_}" CLASS="ADDRESS">
<VARIABLE VIEWTYPE="STATIC" VIEWDISP="Instance" NAME="INSTANCE" VALUE="{$instance_}"/>
<VARIABLE VIEWTYPE="STATIC" VIEWDISP="IP Type" NAME="MODTYPE" VALUE="{$inst_modtype_}" VIEWICON="{$inst_viewicon_}"/>
<VARIABLE VIEWTYPE="STATIC" VIEWDISP="IP Version" NAME="HWVERSION" VALUE="{$inst_hwversion_}"/>
<VARIABLE VIEWTYPE="STATIC" VIEWDISP="Address Type" NAME="MEMTYPE" VALUE="{@MEMTYPE}"/>
<xsl:variable name="is_locked_">
<xsl:if test="@IS_LOCKED = 'TRUE'">TRUE</xsl:if>
<xsl:if test="not(@IS_LOCKED) or not(@IS_LOCKED = 'TRUE')">FALSE</xsl:if>
</xsl:variable>
<xsl:variable name="baseAddrViewType_">
<xsl:choose>
<xsl:when test="$is_locked_='TRUE'">STATIC</xsl:when>
<xsl:otherwise>TEXTBOX</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:if test="(@SIZEABRV and not(@SIZEABRV = 'U'))">
<xsl:variable name="baseAddr_"><xsl:value-of select="translate(@BASEVALUE,&HEXU2L;)"/></xsl:variable>
<xsl:variable name="highAddr_"><xsl:value-of select="translate(@HIGHVALUE,&HEXU2L;)"/></xsl:variable>
<VARIABLE VIEWTYPE="{$baseAddrViewType_}" VIEWDISP="Base Address" NAME="BASEVALUE" VALUE="{$baseAddr_}"/>
<VARIABLE VIEWTYPE="STATIC" VIEWDISP="High Address" NAME="HIGHVALUE" VALUE="{$highAddr_}"/>
<xsl:if test="not(@MEMTYPE) or not(@MEMTYPE = 'BRIDGE')">
<VARIABLE VIEWTYPE="CHECKBOX" VIEWDISP="Lock" NAME="IS_LOCKED" VALUE="{$is_locked_}"/>
</xsl:if>
<xsl:if test="@MEMTYPE and (@MEMTYPE = 'BRIDGE') and not(@BRIDGE_TO)">
<VARIABLE VIEWTYPE="CHECKBOX" VIEWDISP="Lock" NAME="IS_LOCKED" VALUE="{$is_locked_}"/>
</xsl:if>
</xsl:if>
<xsl:if test="(@SIZEABRV and (@SIZEABRV = 'U'))">
<VARIABLE VIEWTYPE="TEXTBOX" VIEWDISP="Base Address" NAME="BASEVALUE" VALUE=""/>
</xsl:if>
<!--
Lock, DCache and ICache removed in 11.1
<xsl:if test="(@IS_CACHEABLE = 'TRUE')">
<xsl:variable name="is_dcached_">
<xsl:if test="(@IS_DCACHED = 'TRUE')">TRUE</xsl:if>
<xsl:if test="(not(@IS_DCACHED) or not(@IS_DCACHED = 'TRUE'))">FALSE</xsl:if>
</xsl:variable>
<xsl:variable name="is_icached_">
<xsl:if test="(@IS_ICACHED = 'TRUE')">TRUE</xsl:if>
<xsl:if test="(not(@IS_ICACHED) or not(@IS_ICACHED = 'TRUE'))">FALSE</xsl:if>
</xsl:variable>
<VARIABLE VIEWTYPE="CHECKBOX" VIEWDISP="DCache" NAME="IS_DCACHED" VALUE="{$is_dcached_}"/>
<VARIABLE VIEWTYPE="CHECKBOX" VIEWDISP="ICache" NAME="IS_ICACHED" VALUE="{$is_icached_}"/>
</xsl:if>
-->
<VARIABLE VIEWTYPE="STATIC" VIEWDISP="Base Name" NAME="BASENAME" VALUE="{@BASENAME}"/>
<xsl:variable name="sizeViewType_">
<xsl:choose>
<xsl:when test="(@SIZEABRV and (@SIZEABRV = 'U'))">DROPDOWN</xsl:when>
<xsl:when test="$is_locked_='TRUE'">STATIC</xsl:when>
<xsl:otherwise>DROPDOWN</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<VARIABLE VIEWTYPE="{$sizeViewType_}" VIEWDISP="Size" NAME="SIZEABRV" VALUE="{@SIZEABRV}"/>
<xsl:variable name="valid_bifNames_">
<xsl:choose>
<xsl:when test="$nonProcMMap_/MEMRANGE[(@BASENAME = $baseName_) and (@HIGHNAME = $highName_)]/SLAVES">
<xsl:for-each select="$nonProcMMap_/MEMRANGE[(@BASENAME = $baseName_) and (@HIGHNAME = $highName_)]/SLAVES/SLAVE">
<xsl:variable name="bifName_" select="@BUSINTERFACE"/>
<!-- <xsl:message>Bif Name <xsl:value-of select="$bifName_"/> </xsl:message> -->
<xsl:variable name="modBifs_" select="$nonProcMod_/BUSINTERFACES"/>
<xsl:if test="$modBifs_/BUSINTERFACE[((@NAME = $bifName_) and not(@IS_VALID = 'FALSE') and not(@BUSNAME = '__NOC__'))]">
<xsl:variable name="busName_" select="$modBifs_/BUSINTERFACE[((@NAME = $bifName_) and not(@IS_VALID = 'FALSE') and not(@BUSNAME = '__NOC__'))]/@BUSNAME"/>
<xsl:if test="position() &gt; 1">:</xsl:if><xsl:value-of select="@BUSINTERFACE"/>
</xsl:if>
</xsl:for-each>
</xsl:when>
<xsl:otherwise>
<xsl:for-each select="$nonProcMMap_/MEMRANGE[(@BASENAME = $baseName_) and (@HIGHNAME = $highName_)]/SLVINTERFACES/BUSINTERFACE">
<xsl:variable name="bifName_" select="@NAME"/>
<xsl:variable name="modBifs_" select="$nonProcMod_"/>
<xsl:if test="$modBifs_/BUSINTERFACE[((@NAME = $bifName_) and not(@IS_VALID = 'FALSE') and not(@BUSNAME = '__NOC__'))]">
<xsl:variable name="busName_" select="$modBifs_/BUSINTERFACE[((@NAME = $bifName_) and not(@IS_VALID = 'FALSE') and not(@BUSNAME = '__NOC__'))]/@BUSNAME"/>
<xsl:if test="position() &gt; 1">:</xsl:if><xsl:value-of select="@NAME"/>
</xsl:if>
</xsl:for-each>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="def_bifNames_">
<xsl:choose>
<xsl:when test="(string-length($valid_bifNames_) &lt; 1) or ((string-length($valid_bifNames_) = 1) and ($valid_bifNames_ = ':'))">Not Connected</xsl:when>
<xsl:when test="starts-with($valid_bifNames_,':')"><xsl:value-of select="substring-after($valid_bifNames_,':')"/></xsl:when>
<xsl:otherwise><xsl:value-of select="$valid_bifNames_"/></xsl:otherwise>
</xsl:choose>
</xsl:variable>
<VARIABLE VIEWTYPE="STATIC" VIEWDISP="Bus Interface(s)" NAME="BIFNAMES" VALUE="{$def_bifNames_}"/>
<xsl:choose>
<xsl:when test="$nonProcMMap_/MEMRANGE[(@BASENAME = $baseName_) and (@HIGHNAME = $highName_)]/SLAVES">
<xsl:for-each select="$nonProcMMap_/MEMRANGE[(@BASENAME = $baseName_) and (@HIGHNAME = $highName_)]/SLAVES/SLAVE">
<xsl:variable name="slvBifName_" select="@BUSINTERFACE"/>
<xsl:variable name="modBifs_" select="$nonProcMod_/BUSINTERFACES"/>
<xsl:if test="count($modBifs_/BUSINTERFACE[((@NAME = $slvBifName_) and not(@IS_VALID = 'FALSE') and not(@BUSNAME = '__NOC__'))]) = 1">
<xsl:variable name="slvBusName_" select="$modBifs_/BUSINTERFACE[((@NAME = $slvBifName_) and not(@IS_VALID = 'FALSE') and not(@BUSNAME = '__NOC__'))]/@BUSNAME"/>
<VARIABLE VIEWTYPE="STATIC" VIEWDISP="Bus Name" NAME="BUSNAME" VALUE="{$slvBusName_}"/>
</xsl:if>
</xsl:for-each>
</xsl:when>
<xsl:otherwise>
<xsl:for-each select="$nonProcMMap_/MEMRANGE[(@BASENAME = $baseName_) and (@HIGHNAME = $highName_)]/SLVINTERFACES/BUSINTERFACE">
<xsl:variable name="slvBifName_" select="@NAME"/>
<xsl:variable name="modBifs_" select="$nonProcMod_"/>
<xsl:if test="count($modBifs_/BUSINTERFACE[((@NAME = $slvBifName_) and not(@IS_VALID = 'FALSE') and not(@BUSNAME = '__NOC__'))]) = 1">
<xsl:variable name="slvBusName_" select="$modBifs_/BUSINTERFACE[((@NAME = $slvBifName_) and not(@IS_VALID = 'FALSE') and not(@BUSNAME = '__NOC__'))]/@BUSNAME"/>
<VARIABLE VIEWTYPE="STATIC" VIEWDISP="Bus Name" NAME="BUSNAME" VALUE="{$slvBusName_}"/>
</xsl:if>
</xsl:for-each>
</xsl:otherwise>
</xsl:choose>
</SET> <!-- End of one non processor memory range row -->
</xsl:if>
</xsl:for-each> <!-- end of non processor memory ranges loop -->
</xsl:for-each> <!-- end of NONPROCADDRESS loop -->
</SET> <!-- End of non processor tree branch -->
</xsl:if> <!-- End of test to see if we have and non processor mapped address -->
</xsl:template>
</xsl:stylesheet>

@ -1,631 +0,0 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE stylesheet [
<!ENTITY UPPERCASE "ABCDEFGHIJKLMNOPQRSTUVWXYZ">
<!ENTITY LOWERCASE "abcdefghijklmnopqrstuvwxyz">
<!ENTITY UPPER2LOWER " '&UPPERCASE;' , '&LOWERCASE;' ">
<!ENTITY LOWER2UPPER " '&LOWERCASE;' , '&UPPERCASE;' ">
<!ENTITY ALPHALOWER "ABCDEFxX0123456789">
<!ENTITY HEXUPPER "ABCDEFxX0123456789">
<!ENTITY HEXLOWER "abcdefxX0123456789">
<!ENTITY HEXU2L " '&HEXLOWER;' , '&HEXUPPER;' ">
]>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:exsl="http://exslt.org/common"
xmlns:dyn="http://exslt.org/dynamic"
xmlns:math="http://exslt.org/math"
xmlns:xlink="http://www.w3.org/1999/xlink"
extension-element-prefixes="exsl dyn math xlink">
<!--
================================================================================
Generate XTeller for BIFS
================================================================================
-->
<xsl:template name="WRITE_VIEW_BIF_TREE">
<xsl:for-each select="$G_SYS_MODS/MODULE">
<xsl:variable name="modRef_" select="self::node()"/>
<xsl:variable name="m_inst_" select="$modRef_/@INSTANCE"/>
<xsl:element name="SET">
<xsl:attribute name="ID"><xsl:value-of select="@INSTANCE"/></xsl:attribute>
<xsl:attribute name="CLASS">MODULE</xsl:attribute>
<xsl:choose>
<xsl:when test="$modRef_/@POTENTIAL_INDEX">
<xsl:attribute name="POTENTIAL_INDEX"><xsl:value-of select="$modRef_/@POTENTIAL_INDEX"/></xsl:attribute>
</xsl:when>
<xsl:when test="$modRef_/@CONNECTED_INDEX">
<xsl:attribute name="CONNECTED_INDEX"><xsl:value-of select="$modRef_/@CONNECTED_INDEX"/></xsl:attribute>
</xsl:when>
</xsl:choose>
<!--
CR452579
Can only modify INSTANCE name in Hierarchal view.
-->
<VARIABLE VIEWTYPE="TEXTBOX" VIEWDISP="Name" NAME="INSTANCE" VALUE="{@INSTANCE}"/>
<VARIABLE VIEWTYPE="STATIC" VIEWDISP="IP Type" NAME="MODTYPE" VALUE="{@MODTYPE}" VIEWICON="{LICENSEINFO/@ICON_NAME}"/>
<VARIABLE VIEWTYPE="STATIC" VIEWDISP="IP Version" NAME="HWVERSION" VALUE="{@HWVERSION}"/>
<xsl:variable name="ipClassification_">
<xsl:call-template name="F_ModClass_To_IpClassification">
<xsl:with-param name="iModClass" select="@MODCLASS"/>
<xsl:with-param name="iBusStd" select="@BUSSTD"/>
</xsl:call-template>
</xsl:variable>
<VARIABLE VIEWTYPE="STATIC" VIEWDISP="IP Classification" NAME="IPCLASS" VALUE="{$ipClassification_}"/>
<!-- Write Bus Interfaces here -->
<xsl:for-each select="$G_SYS_MODS"> <!-- To put things in the right scope for the keys below -->
<xsl:variable name="m_bifs_all_" select="key('G_MAP_ALL_BIFS', $m_inst_)"/>
<xsl:for-each select="$m_bifs_all_">
<xsl:sort data-type="number" select="@MPD_INDEX" order="ascending"/>
<xsl:call-template name="WRITE_VIEW_BIF_TREE_SET">
<xsl:with-param name="iModRef" select="$modRef_"/>
<xsl:with-param name="iBifRef" select="self::node()"/>
</xsl:call-template>
</xsl:for-each> <!-- End of bus interface loop -->
</xsl:for-each>
</xsl:element>
</xsl:for-each> <!-- End module loop -->
</xsl:template>
<xsl:template name="WRITE_VIEW_BIF_TREE_SET">
<xsl:param name="iModRef" select="'__NONE__'"/>
<xsl:param name="iBifRef" select="'__NONE__'"/>
<xsl:param name="iBifCol" select="'__NONE__'"/>
<xsl:element name="SET">
<xsl:if test="not($iBifCol = '__NONE__')">
<xsl:attribute name="RGB_FG"><xsl:value-of select="$iBifCol"/></xsl:attribute>
</xsl:if>
<xsl:attribute name="ID"><xsl:value-of select="$iBifRef/@NAME"/></xsl:attribute>
<xsl:attribute name="CLASS">BUSINTERFACE</xsl:attribute>
<xsl:if test="($iBifRef/@TYPE = 'MONITOR')">
<xsl:choose>
<xsl:when test="($iBifRef/@IS_P2P)">
<xsl:attribute name="IS_P2P_MONITOR">TRUE</xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="IS_SHARED_MONITOR">TRUE</xsl:attribute>
</xsl:otherwise>
</xsl:choose>
</xsl:if>
<VARIABLE VIEWTYPE="STATIC" VIEWDISP="NAME" NAME="NAME" VALUE="{$iBifRef/@NAME}"/>
<VARIABLE VIEWTYPE="STATIC" VIEWDISP="Type" NAME="TYPE" VALUE="{$iBifRef/@TYPE}"/>
<xsl:element name="VARIABLE">
<xsl:attribute name="VIEWTYPE">STATIC</xsl:attribute>
<xsl:attribute name="VIEWDISP">Bus Standard</xsl:attribute>
<xsl:attribute name="NAME">BUSSTD</xsl:attribute>
<xsl:choose>
<xsl:when test="($iBifRef/@BUSSTD_PSF)">
<xsl:attribute name="VALUE"><xsl:value-of select="$iBifRef/@BUSSTD_PSF"/></xsl:attribute>
</xsl:when>
<xsl:when test="($iBifRef/@BUSSTD)">
<xsl:attribute name="VALUE"><xsl:value-of select="$iBifRef/@BUSSTD"/></xsl:attribute>
</xsl:when>
<xsl:when test="($iBifRef/@BUS_STD)">
<xsl:attribute name="VALUE"><xsl:value-of select="$iBifRef/@BUS_STD"/></xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="VALUE">USER</xsl:attribute>
</xsl:otherwise>
</xsl:choose>
</xsl:element>
<xsl:choose>
<xsl:when test="($iBifRef/@TYPE = 'INITIATOR')">
<xsl:element name="VARIABLE">
<xsl:attribute name="VIEWTYPE">TEXTBOX</xsl:attribute>
<xsl:attribute name="VIEWDISP">Bus Name</xsl:attribute>
<xsl:attribute name="NAME">BUSNAME</xsl:attribute>
<xsl:choose>
<xsl:when test="(($iBifRef/@BUSNAME = '__NOC__') or ($iBifRef/@BUSNAME = '') or not($iBifRef/@BUSNAME))">
<xsl:variable name="def_noc_name_"><xsl:value-of select="$iModRef/@INSTANCE"/>_<xsl:value-of select="$iBifRef/@NAME"/></xsl:variable>
<xsl:attribute name="VALUE"><xsl:value-of select="$def_noc_name_"/></xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="VALUE"><xsl:value-of select="$iBifRef/@BUSNAME"/></xsl:attribute>
</xsl:otherwise>
</xsl:choose>
<xsl:if test="$G_ADD_CHOICES = 'TRUE'">
<xsl:call-template name="WRITE_VIEW_BIF_BUSNAME_CHOICES">
<xsl:with-param name="iModRef" select="$iModRef"/>
<xsl:with-param name="iBifRef" select="$iBifRef"/>
</xsl:call-template>
</xsl:if>
</xsl:element>
</xsl:when>
<xsl:otherwise>
<xsl:choose>
<xsl:when test="(($iBifRef/@BUSNAME = '__NOC__') or ($iBifRef/@BUSNAME = '') or not($iBifRef/@BUSNAME))">
<xsl:element name="VARIABLE">
<xsl:choose>
<xsl:when test="(($iBifRef/@BUSSTD = 'AXI') and ($iBifRef/@TYPE = 'SLAVE') and ($G_HAVE_XB_BUSSES = 'TRUE'))">
<xsl:attribute name="VIEWTYPE">BUTTON</xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="VIEWTYPE">DROPDOWN</xsl:attribute>
</xsl:otherwise>
</xsl:choose>
<xsl:attribute name="VIEWDISP">Bus Name</xsl:attribute>
<xsl:attribute name="NAME">BUSNAME</xsl:attribute>
<xsl:attribute name="VALUE">No Connection</xsl:attribute>
<xsl:if test="$G_ADD_CHOICES = 'TRUE'">
<xsl:call-template name="WRITE_VIEW_BIF_BUSNAME_CHOICES">
<xsl:with-param name="iModRef" select="$iModRef"/>
<xsl:with-param name="iBifRef" select="$iBifRef"/>
</xsl:call-template>
</xsl:if>
</xsl:element>
</xsl:when>
<xsl:otherwise>
<xsl:choose>
<xsl:when test="(($iBifRef/@TYPE = 'MONITOR') and ($iBifRef/MONITORS/MONITOR))">
<xsl:variable name="monitorBif_" select="$iBifRef/MONITORS/MONITOR"/>
<xsl:variable name="p2pMonConn_" select="concat($monitorBif_/@INSTANCE,'.',$monitorBif_/@BUSINTERFACE)"/>
<xsl:element name="VARIABLE">
<xsl:attribute name="VIEWTYPE">DROPDOWN</xsl:attribute>
<xsl:attribute name="VIEWDISP">Bus Name</xsl:attribute>
<xsl:attribute name="NAME">BUSNAME</xsl:attribute>
<xsl:attribute name="VALUE"><xsl:value-of select="$p2pMonConn_"/></xsl:attribute>
<xsl:if test="$G_ADD_CHOICES = 'TRUE'">
<xsl:call-template name="WRITE_VIEW_BIF_BUSNAME_CHOICES">
<xsl:with-param name="iModRef" select="$iModRef"/>
<xsl:with-param name="iBifRef" select="$iBifRef"/>
</xsl:call-template>
</xsl:if>
</xsl:element>
</xsl:when>
<xsl:when test="($iBifRef/@TYPE = 'SLAVE')">
<xsl:element name="VARIABLE">
<xsl:choose>
<xsl:when test="(($iBifRef/@BUSSTD = 'AXI') and ($G_HAVE_XB_BUSSES ='TRUE'))">
<xsl:attribute name="VIEWTYPE">BUTTON</xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="VIEWTYPE">DROPDOWN</xsl:attribute>
</xsl:otherwise>
</xsl:choose>
<xsl:attribute name="NAME">BUSNAME</xsl:attribute>
<xsl:attribute name="VIEWDISP">Bus Name</xsl:attribute>
<xsl:choose>
<xsl:when test="$iBifRef/MASTERS/MASTER">
<xsl:variable name="mastersList_"><xsl:for-each select="$iBifRef/MASTERS/MASTER"><xsl:if test="position() &gt; 1"> &amp; </xsl:if><xsl:value-of select="concat(@INSTANCE,'.',@BUSINTERFACE)"/></xsl:for-each></xsl:variable>
<xsl:variable name="mastersConn_" select="concat($iBifRef/@BUSNAME,':',$mastersList_)"/>
<xsl:attribute name="VALUE"><xsl:value-of select="$mastersConn_"/></xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="VALUE"><xsl:value-of select="$iBifRef/@BUSNAME"/></xsl:attribute>
</xsl:otherwise>
</xsl:choose>
<xsl:if test="$G_ADD_CHOICES = 'TRUE'">
<xsl:call-template name="WRITE_VIEW_BIF_BUSNAME_CHOICES">
<xsl:with-param name="iModRef" select="$iModRef"/>
<xsl:with-param name="iBifRef" select="$iBifRef"/>
</xsl:call-template>
</xsl:if>
</xsl:element>
</xsl:when>
<xsl:otherwise>
<xsl:element name="VARIABLE">
<xsl:attribute name="VIEWTYPE">DROPDOWN</xsl:attribute>
<xsl:attribute name="VIEWDISP">Bus Name</xsl:attribute>
<xsl:attribute name="NAME">BUSNAME</xsl:attribute>
<xsl:attribute name="VALUE"><xsl:value-of select="$iBifRef/@BUSNAME"/></xsl:attribute>
<xsl:if test="$G_ADD_CHOICES = 'TRUE'">
<xsl:call-template name="WRITE_VIEW_BIF_BUSNAME_CHOICES">
<xsl:with-param name="iModRef" select="$iModRef"/>
<xsl:with-param name="iBifRef" select="$iBifRef"/>
</xsl:call-template>
</xsl:if>
</xsl:element>
</xsl:otherwise>
</xsl:choose>
</xsl:otherwise>
</xsl:choose>
</xsl:otherwise>
</xsl:choose>
</xsl:element>
</xsl:template>
<xsl:template name="WRITE_VIEW_BIF_FLAT">
<xsl:for-each select="$G_SYS_MODS/MODULE">
<xsl:sort data-type="number" select="@ROW_INDEX" order="ascending"/>
<xsl:variable name="moduleRef_" select="self::node()"/>
<xsl:variable name="busifsRef_">
<xsl:choose>
<xsl:when test="self::node()/BUSINTERFACES"><xsl:text>$moduleRef_/BUSINTERFACES</xsl:text></xsl:when>
<xsl:otherwise><xsl:text>$moduleRef_</xsl:text></xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:for-each select="dyn:evaluate($busifsRef_)/BUSINTERFACE[(not(@IS_VALID) or (@IS_VALID = 'TRUE'))]">
<xsl:sort data-type="number" select="@MPD_INDEX" order="ascending"/>
<xsl:call-template name="WRITE_VIEW_BIF_FLAT_SET">
<xsl:with-param name="iModRef" select="$moduleRef_"/>
<xsl:with-param name="iBifRef" select="self::node()"/>
</xsl:call-template>
</xsl:for-each> <!-- End of Bus Interface Loop -->
</xsl:for-each> <!-- End of Module loop -->
</xsl:template>
<xsl:template name="WRITE_VIEW_BIF_FLAT_SET">
<xsl:param name="iModRef" select="'__NONE__'"/>
<xsl:param name="iBifRef" select="'__NONE__'"/>
<xsl:param name="iBifCol" select="'__NONE__'"/>
<xsl:element name="SET">
<xsl:if test="not($iBifCol = '__NONE__')">
<xsl:attribute name="RGB_FG"><xsl:value-of select="$iBifCol"/></xsl:attribute>
</xsl:if>
<!--
<xsl:attribute name="ID"><xsl:value-of select="$iModRef/@INSTANCE"/>.<xsl:value-of select="$iBifRef/@NAME"/></xsl:attribute>
-->
<xsl:attribute name="ID"><xsl:value-of select="$iBifRef/@NAME"/></xsl:attribute>
<xsl:attribute name="CLASS">BUSINTERFACE</xsl:attribute>
<xsl:if test="($iBifRef/@TYPE = 'MONITOR')">
<xsl:choose>
<xsl:when test="($iBifRef/@IS_P2P)">
<xsl:attribute name="IS_P2P_MONITOR">TRUE</xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="IS_SHARED_MONITOR">TRUE</xsl:attribute>
</xsl:otherwise>
</xsl:choose>
</xsl:if>
<!-- CR452579 Can only modify INSTANCE name in Hierarchal view. -->
<VARIABLE VIEWTYPE="STATIC" VIEWDISP="Instance" NAME="INSTANCE" VALUE="{$iModRef/@INSTANCE}"/>
<VARIABLE VIEWTYPE="STATIC" VIEWDISP="Bus Interface" NAME="NAME" VALUE="{$iBifRef/@NAME}"/>
<VARIABLE VIEWTYPE="STATIC" VIEWDISP="IP Type" NAME="MODTYPE" VALUE="{$iModRef/@MODTYPE}" VIEWICON="{$iModRef/LICENSEINFO/@ICON_NAME}"/>
<VARIABLE VIEWTYPE="STATIC" VIEWDISP="IP Version" NAME="HWVERSION" VALUE="{$iModRef/@HWVERSION}"/>
<xsl:variable name="ipClassification_">
<xsl:call-template name="F_ModClass_To_IpClassification">
<xsl:with-param name="iModClass" select="$iModRef/@MODCLASS"/>
<xsl:with-param name="iBusStd" select="$iBifRef/@BUSSTD"/>
</xsl:call-template>
</xsl:variable>
<VARIABLE VIEWTYPE="STATIC" VIEWDISP="IP Classification" NAME="IPCLASS" VALUE="{$ipClassification_}"/>
<VARIABLE VIEWTYPE="STATIC" VIEWDISP="Type" NAME="TYPE" VALUE="{$iBifRef/@TYPE}"/>
<xsl:element name="VARIABLE">
<xsl:attribute name="VIEWTYPE">STATIC</xsl:attribute>
<xsl:attribute name="VIEWDISP">Bus Standard</xsl:attribute>
<xsl:attribute name="NAME">BUSSTD</xsl:attribute>
<xsl:choose>
<xsl:when test="($iBifRef/@BUS_STD)">
<xsl:attribute name="VALUE"><xsl:value-of select="$iBifRef/@BUS_STD"/></xsl:attribute>
</xsl:when>
<xsl:when test="($iBifRef/@BUSSTD)">
<xsl:attribute name="VALUE"><xsl:value-of select="$iBifRef/@BUSSTD"/></xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="VALUE">USER</xsl:attribute>
</xsl:otherwise>
</xsl:choose>
</xsl:element>
<xsl:choose>
<xsl:when test="$iBifRef/@TYPE = 'INITIATOR'">
<xsl:element name="VARIABLE">
<xsl:attribute name="VIEWTYPE">TEXTBOX</xsl:attribute>
<xsl:attribute name="VIEWDISP">Bus Name</xsl:attribute>
<xsl:attribute name="NAME">BUSNAME</xsl:attribute>
<xsl:choose>
<xsl:when test="(($iBifRef/@BUSNAME = '__NOC__') or ($iBifRef/@BUSNAME = '') or not($iBifRef/@BUSNAME))">
<xsl:variable name="def_noc_name_"><xsl:value-of select="$iModRef/@INSTANCE"/>_<xsl:value-of select="$iBifRef/@NAME"/></xsl:variable>
<xsl:attribute name="VALUE"><xsl:value-of select="$def_noc_name_"/></xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="VALUE"><xsl:value-of select="$iBifRef/@BUSNAME"/></xsl:attribute>
</xsl:otherwise>
</xsl:choose>
<xsl:if test="$G_ADD_CHOICES = 'TRUE'">
<xsl:call-template name="WRITE_VIEW_BIF_BUSNAME_CHOICES">
<xsl:with-param name="iModRef" select="$iModRef"/>
<xsl:with-param name="iBifRef" select="$iBifRef"/>
</xsl:call-template>
</xsl:if>
</xsl:element>
</xsl:when>
<xsl:otherwise>
<xsl:choose>
<xsl:when test="(($iBifRef/@BUSNAME = '__NOC__') or ($iBifRef/@BUSNAME = '') or not($iBifRef/@BUSNAME))">
<xsl:element name="VARIABLE">
<xsl:choose>
<xsl:when test="(($iBifRef/@BUSSTD = 'AXI') and ($iBifRef/@TYPE = 'SLAVE') and ($G_HAVE_XB_BUSSES = 'TRUE'))">
<xsl:attribute name="VIEWTYPE">BUTTON</xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="VIEWTYPE">DROPDOWN</xsl:attribute>
</xsl:otherwise>
</xsl:choose>
<xsl:attribute name="VIEWDISP">Bus Name</xsl:attribute>
<xsl:attribute name="NAME">BUSNAME</xsl:attribute>
<xsl:attribute name="VALUE">No Connection</xsl:attribute>
<xsl:if test="$G_ADD_CHOICES = 'TRUE'">
<xsl:call-template name="WRITE_VIEW_BIF_BUSNAME_CHOICES">
<xsl:with-param name="iModRef" select="$iModRef"/>
<xsl:with-param name="iBifRef" select="$iBifRef"/>
</xsl:call-template>
</xsl:if>
</xsl:element>
</xsl:when>
<xsl:otherwise>
<xsl:choose>
<xsl:when test="(($iBifRef/@TYPE = 'MONITOR') and ($iBifRef/MONITORS/MONITOR))">
<xsl:variable name="monitorBif_" select="$iBifRef/MONITORS/MONITOR"/>
<xsl:variable name="p2pMonConn_" select="concat($monitorBif_/@INSTANCE,'.',$monitorBif_/@BUSINTERFACE)"/>
<!--
<VARIABLE VIEWTYPE="DROPDOWN" VIEWDISP="Bus Name" NAME="BUSNAME" VALUE="{$p2pMonConn_}"/>
-->
<xsl:element name="VARIABLE">
<xsl:attribute name="VIEWTYPE">DROPDOWN</xsl:attribute>
<xsl:attribute name="VIEWDISP">Bus Name</xsl:attribute>
<xsl:attribute name="NAME">BUSNAME</xsl:attribute>
<xsl:attribute name="VALUE"><xsl:value-of select="$p2pMonConn_"/></xsl:attribute>
<xsl:if test="$G_ADD_CHOICES = 'TRUE'">
<xsl:call-template name="WRITE_VIEW_BIF_BUSNAME_CHOICES">
<xsl:with-param name="iModRef" select="$iModRef"/>
<xsl:with-param name="iBifRef" select="$iBifRef"/>
</xsl:call-template>
</xsl:if>
</xsl:element>
</xsl:when>
<xsl:when test="($iBifRef/@TYPE = 'SLAVE')">
<xsl:element name="VARIABLE">
<xsl:choose>
<xsl:when test="$iBifRef/@BUSSTD = 'AXI' and $G_HAVE_XB_BUSSES ='TRUE'">
<xsl:attribute name="VIEWTYPE">BUTTON</xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="VIEWTYPE">DROPDOWN</xsl:attribute>
</xsl:otherwise>
</xsl:choose>
<xsl:attribute name="NAME">BUSNAME</xsl:attribute>
<xsl:attribute name="VIEWDISP">Bus Name</xsl:attribute>
<xsl:choose>
<xsl:when test="$iBifRef/MASTERS/MASTER">
<xsl:variable name="mastersList_"><xsl:for-each select="$iBifRef/MASTERS/MASTER"><xsl:if test="position() &gt; 1"> &amp; </xsl:if><xsl:value-of select="concat(@INSTANCE,'.',@BUSINTERFACE)"/></xsl:for-each></xsl:variable>
<xsl:variable name="mastersConn_" select="concat($iBifRef/@BUSNAME,':',$mastersList_)"/>
<xsl:attribute name="VALUE"><xsl:value-of select="$mastersConn_"/></xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="VALUE"><xsl:value-of select="$iBifRef/@BUSNAME"/></xsl:attribute>
</xsl:otherwise>
</xsl:choose>
<xsl:if test="$G_ADD_CHOICES = 'TRUE'">
<xsl:call-template name="WRITE_VIEW_BIF_BUSNAME_CHOICES">
<xsl:with-param name="iModRef" select="$iModRef"/>
<xsl:with-param name="iBifRef" select="$iBifRef"/>
</xsl:call-template>
</xsl:if>
</xsl:element>
</xsl:when>
<xsl:otherwise>
<!--
<VARIABLE VIEWTYPE="DROPDOWN" VIEWDISP="Bus Name" NAME="BUSNAME" VALUE="{$iBifRef/@BUSNAME}"/>
-->
<xsl:element name="VARIABLE">
<xsl:attribute name="VIEWTYPE">DROPDOWN</xsl:attribute>
<xsl:attribute name="VIEWDISP">Bus Name</xsl:attribute>
<xsl:attribute name="NAME">BUSNAME</xsl:attribute>
<xsl:attribute name="VALUE"><xsl:value-of select="$iBifRef/@BUSNAME"/></xsl:attribute>
<xsl:if test="$G_ADD_CHOICES = 'TRUE'">
<xsl:call-template name="WRITE_VIEW_BIF_BUSNAME_CHOICES">
<xsl:with-param name="iModRef" select="$iModRef"/>
<xsl:with-param name="iBifRef" select="$iBifRef"/>
</xsl:call-template>
</xsl:if>
</xsl:element>
</xsl:otherwise>
</xsl:choose>
</xsl:otherwise>
</xsl:choose>
</xsl:otherwise>
</xsl:choose>
</xsl:element>
</xsl:template>
<xsl:template name="WRITE_VIEW_BIF_BUSNAME_CHOICES">
<xsl:param name="iModRef" select="None"/>
<xsl:param name="iBifRef" select="None"/>
<xsl:variable name="b_bus_" select="$iBifRef/@BUSNAME"/>
<xsl:variable name="b_name_" select="$iBifRef/@NAME"/>
<xsl:variable name="b_type_" select="$iBifRef/@TYPE"/>
<xsl:variable name="b_bstd_" select="$iBifRef/@BUSSTD"/>
<xsl:variable name="b_bstd_psf_" select="$iBifRef/@BUSSTD_PSF"/>
<xsl:variable name="b_protocol_" select="$iBifRef/@PROTOCOL"/>
<xsl:element name="CHOICES">
<xsl:choose>
<xsl:when test="($b_type_ = 'INITIATOR')">
<xsl:variable name="initiator_busName_">
<xsl:choose>
<xsl:when test="($b_bus_ = '__NOC__')"><xsl:value-of select="concat($iModRef/@INSTANCE,'_',$b_name_)"/></xsl:when>
<xsl:otherwise><xsl:value-of select="$b_bus_"/></xsl:otherwise>
</xsl:choose>
</xsl:variable>
<CHOICE NAME="{$initiator_busName_}"/>
</xsl:when>
<xsl:when test="(($b_type_ = 'MASTER') or ($b_type_ = 'SLAVE') or ($b_type_ = 'MASTER_SLAVE'))">
<CHOICE NAME="No Connection"/>
<xsl:for-each select="$G_SYS_MODS"> <!-- To set correct scope for KEY functions below -->
<xsl:if test="not(($b_bstd_ = 'AXI') and ($b_type_ = 'SLAVE'))">
<CHOICE NAME="New Connection"/>
</xsl:if>
<xsl:for-each select="key('G_MAP_BUSSES',$b_bstd_)">
<xsl:variable name="busName_" select="@INSTANCE"/>
<xsl:choose>
<!-- CR#590473 This was setting wrong choices filled up-->
<!--xsl:when test="(($b_type_ = 'SLAVE') and (@IS_CROSSBAR) and $iBifRef/@PROTOCOL)">
<xsl:for-each select="key('G_MAP_MST_BIFS',$busName_)[(@PROTOCOL = $b_protocol_)]">
<xsl:variable name="bifName_" select="@NAME"/>
<xsl:variable name="insName_" select="../../@INSTANCE"/>
<xsl:variable name="xb_slave_busName_" select="concat($busName_,':',$insName_,'.',$bifName_)"/>
<CHOICE NAME="{$xb_slave_busName_}"/>
</xsl:for-each>
</xsl:when-->
<xsl:when test="($b_type_ = 'SLAVE') and (@IS_CROSSBAR)">
<xsl:for-each select="key('G_MAP_MST_BIFS',$busName_)">
<xsl:variable name="bifName_" select="@NAME"/>
<xsl:variable name="insName_" select="../../@INSTANCE"/>
<xsl:variable name="xb_slave_busName_" select="concat($busName_,':',$insName_,'.',$bifName_)"/>
<CHOICE NAME="{$xb_slave_busName_}"/>
</xsl:for-each>
</xsl:when>
<xsl:otherwise>
<CHOICE NAME="{$busName_}"/>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
</xsl:for-each>
</xsl:when>
<xsl:when test="($b_type_ = 'TARGET')">
<CHOICE NAME="No Connection"/>
<xsl:for-each select="$G_SYS_MODS"> <!-- To set correct scope for KEY functions below -->
<xsl:variable name="use_bstd_">
<xsl:choose>
<xsl:when test="(($b_bstd_ = 'AXIS') or ($b_bstd_ = 'XIL'))">
<xsl:value-of select="$b_bstd_psf_"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$b_bstd_"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:choose>
<xsl:when test="$iBifRef/@PROTOCOL">
<xsl:for-each select="key('G_MAP_P2P_BIFS',$use_bstd_)[(@TYPE = 'INITIATOR') and (@PROTOCOL = $b_protocol_)]">
<xsl:variable name="busName_" select="@BUSNAME"/>
<xsl:choose>
<xsl:when test="($busName_ = '__NOC__')">
<xsl:variable name="bifName_" select="@NAME"/>
<xsl:variable name="insName_" select="../../@INSTANCE"/>
<xsl:variable name="initiator_busName_" select="concat($insName_,'_',$bifName_)"/>
<CHOICE NAME="{$initiator_busName_}"/>
</xsl:when>
<xsl:otherwise>
<CHOICE NAME="{$busName_}"/>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
</xsl:when>
<xsl:otherwise>
<xsl:for-each select="key('G_MAP_P2P_BIFS',$use_bstd_)[(@TYPE = 'INITIATOR')]">
<xsl:variable name="busName_" select="@BUSNAME"/>
<xsl:choose>
<xsl:when test="($busName_ = '__NOC__')">
<xsl:variable name="bifName_" select="@NAME"/>
<xsl:variable name="insName_" select="../../@INSTANCE"/>
<xsl:variable name="initiator_busName_" select="concat($insName_,'_',$bifName_)"/>
<CHOICE NAME="{$initiator_busName_}"/>
</xsl:when>
<xsl:otherwise>
<CHOICE NAME="{$busName_}"/>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
</xsl:when>
<xsl:when test="($b_type_ = 'MONITOR')">
<CHOICE NAME="No Connection"/>
<xsl:for-each select="$G_SYS_MODS"> <!-- To set correct scope for KEY functions below -->
<xsl:choose>
<xsl:when test="($iBifRef/@IS_P2P = 'TRUE')">
<xsl:for-each select="$G_SYS_MODS"> <!-- To set correct scope for KEY functions below -->
<xsl:variable name="use_bstd_">
<xsl:choose>
<xsl:when test="(($b_bstd_ = 'AXIS') or ($b_bstd_ = 'XIL'))">
<xsl:value-of select="$b_bstd_psf_"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$b_bstd_"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<!-- <xsl:message>monitor p2p <xsl:value-of select="count(key('G_MAP_P2P_BIFS',$use_bstd_)[(@TYPE = 'INITIATOR')])"/> </xsl:message> -->
<xsl:for-each select="key('G_MAP_P2P_BIFS',$use_bstd_)[(@TYPE = 'INITIATOR')]">
<xsl:variable name="busName_" select="@BUSNAME"/>
<xsl:choose>
<xsl:when test="($busName_ = '__NOC__')">
<xsl:variable name="bifName_" select="@NAME"/>
<xsl:variable name="insName_" select="../../@INSTANCE"/>
<xsl:variable name="initiator_busName_" select="concat($insName_,'_',$bifName_)"/>
<CHOICE NAME="{$initiator_busName_}"/>
</xsl:when>
<xsl:otherwise>
<CHOICE NAME="{$busName_}"/>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
</xsl:for-each>
</xsl:when>
<xsl:otherwise>
<xsl:for-each select="key('G_MAP_BUSSES',$b_bstd_)">
<xsl:variable name="busName_" select="@INSTANCE"/>
<xsl:choose>
<xsl:when test="(@IS_CROSSBAR or ($b_bstd_ = 'AXI'))">
<xsl:for-each select="key('G_MAP_MOS_BIFS',$busName_)">
<xsl:variable name="bifName_" select="@NAME"/>
<xsl:variable name="insName_" select="../../@INSTANCE"/>
<!--
<xsl:variable name="xb_moni_busName_" select="concat($busName_,':',$insName_,'.',$bifName_)"/>
-->
<xsl:variable name="xb_moni_busName_" select="concat($insName_,'.',$bifName_)"/>
<CHOICE NAME="{$xb_moni_busName_}"/>
</xsl:for-each>
</xsl:when>
<xsl:otherwise>
<CHOICE NAME="{$busName_}"/>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
</xsl:when>
</xsl:choose>
</xsl:element>
</xsl:template>
</xsl:stylesheet>

@ -1,771 +0,0 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE stylesheet [
<!ENTITY UPPERCASE "ABCDEFGHIJKLMNOPQRSTUVWXYZ">
<!ENTITY LOWERCASE "abcdefghijklmnopqrstuvwxyz">
<!ENTITY UPPER2LOWER " '&UPPERCASE;' , '&LOWERCASE;' ">
<!ENTITY LOWER2UPPER " '&LOWERCASE;' , '&UPPERCASE;' ">
<!ENTITY ALPHALOWER "ABCDEFxX0123456789">
<!ENTITY HEXUPPER "ABCDEFxX0123456789">
<!ENTITY HEXLOWER "abcdefxX0123456789">
<!ENTITY HEXU2L " '&HEXLOWER;' , '&HEXUPPER;' ">
]>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:exsl="http://exslt.org/common"
xmlns:dyn="http://exslt.org/dynamic"
xmlns:math="http://exslt.org/math"
xmlns:xlink="http://www.w3.org/1999/xlink"
extension-element-prefixes="math dyn exsl xlink">
<!--
================================================================================
Generate XTeller for PORTS
================================================================================
-->
<xsl:param name="SHOW_IOIF" select="'TRUE'"/>
<xsl:param name="SHOW_BUSIF" select="'TRUE'"/>
<xsl:template name="WRITE_VIEW_PORT_TREE">
<xsl:variable name="num_of_ext_ports_" select="count($G_SYS_EXPS/PORT)"/>
<xsl:if test="$G_DEBUG='TRUE'">
<xsl:message>WRITING PORT in MODE :<xsl:value-of select="@MODE"/></xsl:message>
<!--
<xsl:message>EXTERNAL PORT <xsl:value-of select="$num_of_ext_ports_"/></xsl:message>
-->
</xsl:if>
<xsl:if test="$num_of_ext_ports_ &gt; 0">
<xsl:call-template name="WRITE_VIEW_EXTP_TREE_SET"/>
</xsl:if>
<xsl:for-each select="$G_SYS_MODS/MODULE">
<xsl:sort data-type="number" select="@ROW_INDEX" order="ascending"/>
<xsl:variable name= "instName_" select="@INSTANCE"/>
<xsl:variable name="moduleRef_" select="self::node()"/>
<xsl:call-template name="WRITE_VIEW_PORT_TREE_SET">
<xsl:with-param name="iModRef" select="$moduleRef_"/>
</xsl:call-template>
</xsl:for-each> <!-- End of MODULES loop -->
</xsl:template>
<xsl:template name="WRITE_VIEW_EXTP_TREE_SET">
<xsl:element name="SET">
<xsl:attribute name="ID">ExternalPorts</xsl:attribute>
<xsl:attribute name="CLASS">MODULE</xsl:attribute>
<xsl:for-each select="$G_SYS_EXPS">
<xsl:element name="VARIABLE">
<xsl:attribute name="NAME">Name</xsl:attribute>
<xsl:attribute name="VALUE">External Ports</xsl:attribute>
<xsl:attribute name="VIEWDISP">Name</xsl:attribute>
<xsl:attribute name="VIEWTYPE">STATIC</xsl:attribute>
</xsl:element>
<xsl:for-each select="PORT">
<xsl:sort select="@NAME" order="ascending"/>
<!--
<xsl:sort data-type="number" select="@MHS_INDEX" order="ascending"/>
-->
<xsl:element name="SET">
<xsl:attribute name="ID"><xsl:value-of select="@NAME"/></xsl:attribute>
<xsl:attribute name="CLASS">PORT</xsl:attribute>
<xsl:attribute name="ROW_INDEX"><xsl:value-of select="(position() - 1)"/></xsl:attribute>
<VARIABLE VIEWTYPE="DROPDOWN" VIEWDISP="Net" NAME="SIGNAME" VALUE="{@SIGNAME}" IS_EDITABLE="TRUE"/>
<VARIABLE VIEWTYPE="TEXTBOX" VIEWDISP="Name" NAME="NAME" VALUE="{@NAME}"/>
<VARIABLE VIEWTYPE="DROPDOWN" VIEWDISP="Direction" NAME="DIR" VALUE="{@DIR}"/>
<xsl:if test="(@SIGIS)">
<VARIABLE VIEWTYPE="DROPDOWN" VIEWDISP="Class" NAME="SIGIS" VALUE="{@SIGIS}"/>
</xsl:if>
<xsl:if test="not(@SIGIS)">
<VARIABLE VIEWTYPE="DROPDOWN" VIEWDISP="Class" NAME="SIGIS" VALUE="NONE"/>
</xsl:if>
<xsl:choose>
<xsl:when test="@LEFT and @RIGHT">
<xsl:variable name="vecformula_txt_">[<xsl:value-of select="@LEFT"/>:<xsl:value-of select="@RIGHT"/>]</xsl:variable>
<VARIABLE VIEWTYPE="TEXTBOX" VIEWDISP="Range" NAME="VECFORMULA" VALUE="{$vecformula_txt_}"/>
</xsl:when>
<xsl:when test="@MSB and @LSB">
<xsl:variable name="vecformula_txt_">[<xsl:value-of select="@MSB"/>:<xsl:value-of select="@LSB"/>]</xsl:variable>
<VARIABLE VIEWTYPE="TEXTBOX" VIEWDISP="Range" NAME="VECFORMULA" VALUE="{$vecformula_txt_}"/>
</xsl:when>
<xsl:when test="(not(@MSB) and not(@LSB) and not(@SIGIS = 'CLK') and not(@SIGIS = 'CLOCK') and not(@SIGIS = 'DCMCLK') and not(@SIGIS = 'RST') and not(@SIGIS = 'RESET'))">
<VARIABLE VIEWTYPE="TEXTBOX" VIEWDISP="Range" NAME="VECFORMULA" VALUE=""/>
</xsl:when>
</xsl:choose>
<xsl:if test="((@SIGIS = 'CLK') or (@SIGIS = 'CLOCK') or (@SIGIS = 'DCMCLK'))">
<VARIABLE VIEWTYPE="TEXTBOX" VIEWDISP="Frequency(Hz)" NAME="CLKFREQUENCY" VALUE="{@CLKFREQUENCY}"/>
</xsl:if>
<xsl:if test="(@SIGIS = 'RST' or @SIGIS = 'RESET')">
<VARIABLE VIEWTYPE="DROPDOWN" VIEWDISP="Reset Polarity" NAME="RSTPOLARITY" VALUE="{@RSTPOLARITY}"/>
</xsl:if>
<xsl:if test="(@SIGIS = 'INTERRUPT')">
<VARIABLE VIEWTYPE="DROPDOWN" VIEWDISP="Sensitivity" NAME="SENSITIVITY" VALUE="{@SENSITIVITY}"/>
</xsl:if>
</xsl:element>
</xsl:for-each> <!-- End of EXTERNAL PORTS loop -->
</xsl:for-each> <!-- End of EXTERNAL PORTS loop -->
</xsl:element> <!-- End of EXTERNAL PORTS SET -->
</xsl:template>
<xsl:template name="WRITE_VIEW_PORT_TREE_SET">
<xsl:param name="iModRef" select="'__NONE__'"/>
<xsl:variable name="m_inst_" select="$iModRef/@INSTANCE"/>
<xsl:variable name="m_class_" select="$iModRef/@MODCLASS"/>
<xsl:variable name="m_type_" select="$iModRef/@MODTYPE"/>
<xsl:variable name="m_type_lc_" select="translate($m_type_,&UPPER2LOWER;)"/>
<xsl:variable name="m_version_" select="$iModRef/@HWVERSION"/>
<xsl:variable name="m_licinfo_" select="$iModRef/LICENSEINFO"/>
<xsl:variable name="m_ports_" select="$iModRef/PORTS"/>
<xsl:variable name="is_axi_interconnect_">
<xsl:choose>
<xsl:when test="$m_type_ = 'axi_interconnect'">TRUE</xsl:when>
<xsl:when test="$m_type_lc_ = 'axi_interconnect'">TRUE</xsl:when>
<xsl:otherwise>FALSE</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:for-each select="$G_SYS_MODS"> <!-- To put things in the right scope for the keys below -->
<xsl:variable name="m_iofs_all_" select="key('G_MAP_ALL_IOFS', $m_inst_)"/>
<xsl:variable name="m_bifs_all_" select="key('G_MAP_ALL_BIFS', $m_inst_)"/>
<xsl:variable name="m_ports_def_" select="key('G_MAP_DEF_PORTS',$m_inst_)"/>
<xsl:variable name="m_ports_ndf_" select="key('G_MAP_NDF_PORTS',$m_inst_)"/>
<!--
<xsl:if test="$G_DEBUG = 'TRUE'">
<xsl:message><xsl:value-of select="$m_inst_"/> has <xsl:value-of select="count($m_bifs_all_)"/> valid bifs </xsl:message>
<xsl:message><xsl:value-of select="$m_inst_"/> has <xsl:value-of select="count($m_iofs_all_)"/> valid iofs </xsl:message>
<xsl:message><xsl:value-of select="$m_inst_"/> has <xsl:value-of select="count($m_ports_def_)"/> default ports </xsl:message>
<xsl:message><xsl:value-of select="$m_inst_"/> has <xsl:value-of select="count($m_ports_ndf_)"/> non default ports </xsl:message>
<xsl:message></xsl:message>
</xsl:if>
-->
<SET ID="{$m_inst_}" CLASS="MODULE">
<!-- CR452579
Can only modify INSTANCE name in Hierarchal view.
-->
<VARIABLE VIEWTYPE="TEXTBOX" VIEWDISP="Name" NAME="INSTANCE" VALUE="{$m_inst_}"/>
<VARIABLE VIEWTYPE="STATIC" VIEWDISP="IP Type" NAME="MODTYPE" VALUE="{$m_type_}" VIEWICON="{$m_licinfo_/@ICON_NAME}"/>
<VARIABLE VIEWTYPE="STATIC" VIEWDISP="IP Version" NAME="HWVERSION" VALUE="{$m_version_}"/>
<!--
CR582477,
(among others) special case of axi_interconnect_aclk which is a member of
a bus interface, but should be treated as a non interface port, (i.e. appear even
if the bus interfaces its a member of is invalid.
-->
<xsl:if test="($is_axi_interconnect_ = 'TRUE')">
<!-- do it this way so we also catch the lower-upper case mismatches -->
<xsl:for-each select="key('G_MAP_ALL_PORTS',$m_inst_)[contains(@SIGIS,'CLK')]">
<xsl:variable name="uc_portName_" select="translate(@NAME,&LOWER2UPPER;)"/>
<xsl:if test="($uc_portName_= 'INTERCONNECT_ACLK')">
<!--
<xsl:message><xsl:value-of select="$m_inst_"/>.<xsl:value-of select="@NAME"/> = <xsl:value-of select="@SIGIS"/></xsl:message>
-->
<xsl:variable name="portName_" select="@NAME"/>
<xsl:variable name="portDir_" select="@DIR"/>
<xsl:variable name="portSig_" select="@SIGNAME"/>
<xsl:variable name="portSigIs_">
<xsl:choose>
<xsl:when test="not(@SIGIS)">__NONE__</xsl:when>
<xsl:otherwise><xsl:value-of select="@SIGIS"/></xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="portSensi_">
<xsl:choose>
<xsl:when test="(@SENSITIVITY)"><xsl:value-of select="@SENSITIVIITY"/></xsl:when>
<xsl:otherwise>__NONE__</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="portVecFormula_">
<xsl:choose>
<xsl:when test="@VECFORMULA"><xsl:value-of select="@VECFORMULA"/></xsl:when>
<xsl:otherwise>__NONE__</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:call-template name="WRITE_PORT_SET">
<xsl:with-param name="iName" select="$portName_"/>
<xsl:with-param name="iDir" select="$portDir_"/>
<xsl:with-param name="iSigName" select="$portSig_"/>
<xsl:with-param name="iSigIs" select="$portSigIs_"/>
<xsl:with-param name="iSensitivity" select="$portSensi_"/>
<xsl:with-param name="iVecFormula" select="$portVecFormula_"/>
</xsl:call-template>
</xsl:if>
</xsl:for-each>
</xsl:if>
<!-- PORTS not part of an INTERFACE -->
<xsl:for-each select="$m_ports_ndf_">
<xsl:sort data-type="number" select="@MPD_INDEX" order="ascending"/>
<xsl:variable name="uc_portName_" select="translate(@NAME,&LOWER2UPPER;)"/>
<!--
<xsl:if test="((not(@BUS) and not(@IOS)) or (($is_axi_interconnect_ = 'TRUE') and ($uc_portName_= 'INTERCONNECT_ACLK')))">
</xsl:if>
-->
<xsl:variable name="portName_" select="@NAME"/>
<xsl:variable name="portDir_" select="@DIR"/>
<xsl:variable name="portSig_" select="@SIGNAME"/>
<xsl:variable name="portSigIs_">
<xsl:choose>
<xsl:when test="not(@SIGIS)">__NONE__</xsl:when>
<xsl:otherwise><xsl:value-of select="@SIGIS"/></xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="portSensi_">
<xsl:choose>
<xsl:when test="(@SENSITIVITY)"><xsl:value-of select="@SENSITIVIITY"/></xsl:when>
<xsl:otherwise>__NONE__</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="portVecFormula_">
<xsl:choose>
<xsl:when test="@VECFORMULA"><xsl:value-of select="@VECFORMULA"/></xsl:when>
<xsl:otherwise>__NONE__</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:call-template name="WRITE_PORT_SET">
<xsl:with-param name="iName" select="$portName_"/>
<xsl:with-param name="iDir" select="$portDir_"/>
<xsl:with-param name="iSigName" select="$portSig_"/>
<xsl:with-param name="iSigIs" select="$portSigIs_"/>
<xsl:with-param name="iSensitivity" select="$portSensi_"/>
<xsl:with-param name="iVecFormula" select="$portVecFormula_"/>
</xsl:call-template>
</xsl:for-each> <!-- END of PORTS NOT OF INTERFACE -->
<!-- PORTS part of a BUSINTERFACE -->
<xsl:if test="$SHOW_BUSIF = 'TRUE'">
<xsl:for-each select="$m_bifs_all_">
<xsl:sort data-type="number" select="@MPD_INDEX" order="ascending"/>
<xsl:variable name="bifName_" select="@NAME"/>
<xsl:variable name="bifRef_" select="self::node()"/>
<xsl:variable name="portmapsRef_" select="$bifRef_/PORTMAPS"/>
<!--
<xsl:variable name="bpmsCnt_" select="count($bpmsRef_/PORTMAP)"/>
<xsl:message><xsl:value-of select="$instName_"/>.<xsl:value-of select="$bifName_"/>.<xsl:value-of select="$bpmsCnt_"/></xsl:message>
-->
<xsl:variable name="is_external_">
<xsl:call-template name="F_IS_Interface_External">
<xsl:with-param name="iInstRef" select="$iModRef"/>
<xsl:with-param name="iIntfRef" select="$bifRef_"/>
</xsl:call-template>
</xsl:variable>
<xsl:variable name="bif_connection_">
<xsl:choose>
<xsl:when test="not(@BUSNAME = '__NOC__')">Connected to BUS <xsl:value-of select="@BUSNAME"/></xsl:when>
<xsl:when test="($is_external_ = 'TRUE')">Connected to External Ports</xsl:when>
<xsl:otherwise>Not connected to BUS or External Ports</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<!-- <SET ID="{@NAME}" CLASS="BUSINTERFACE.PORTS"/> -->
<xsl:element name="SET">
<xsl:attribute name="ID"><xsl:value-of select="@NAME"/></xsl:attribute>
<xsl:attribute name="CLASS">BUSINTERFACE.PORTS</xsl:attribute>
<xsl:if test="$is_external_ = 'TRUE'">
<xsl:attribute name="IS_EXTERNAL">TRUE</xsl:attribute>
</xsl:if>
<VARIABLE VIEWTYPE="STATIC" VIEWDISP="NAME" NAME="NAME" VALUE="(BUS_IF) {@NAME}"/>
<VARIABLE VIEWTYPE="DROPDOWN" VIEWDISP="Net" NAME="BUSINTERFACE.CONNECTION" VALUE="{$bif_connection_}"/>
<xsl:for-each select="$portmapsRef_/PORTMAP">
<xsl:variable name="portDir_" select="@DIR"/>
<xsl:variable name="portName_" select="@PHYSICAL"/>
<xsl:if test="$m_ports_def_[(@NAME = $portName_)]"><!-- Only in map if port is valid -->
<!--
<xsl:if test="(not($portRef_/@IS_VALID) or ($portRef_/@IS_VALID = 'TRUE'))"/>
<xsl:sort select="@MPD_INDEX" order="ascending"/>
<xsl:sort data-type="number" select="@MPD_INDEX" order="ascending"/>
-->
<xsl:variable name="portRef_" select="$m_ports_def_[(@NAME = $portName_)]"/>
<xsl:variable name="portSig_" select="$portRef_/@SIGNAME"/>
<xsl:variable name="portSigIs_">
<xsl:choose>
<xsl:when test="not($portRef_/@SIGIS)">__NONE__</xsl:when>
<xsl:otherwise><xsl:value-of select="$portRef_/@SIGIS"/></xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="portSensi_">
<xsl:choose>
<xsl:when test="($portRef_/@SENSITIVITY)"><xsl:value-of select="$portRef_/@SENSITIVITY"/></xsl:when>
<xsl:otherwise>__NONE__</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="portVecFormula_">
<xsl:choose>
<xsl:when test="$portRef_/@VECFORMULA"><xsl:value-of select="$portRef_/@VECFORMULA"/></xsl:when>
<xsl:otherwise>__NONE__</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:call-template name="WRITE_PORT_SET">
<xsl:with-param name="iName" select="$portName_"/>
<xsl:with-param name="iDir" select="$portDir_"/>
<xsl:with-param name="iSigName" select="$portSig_"/>
<xsl:with-param name="iSigIs" select="$portSigIs_"/>
<xsl:with-param name="iSensitivity" select="$portSensi_"/>
<xsl:with-param name="iVecFormula" select="$portVecFormula_"/>
</xsl:call-template>
</xsl:if>
</xsl:for-each> <!-- END BIF PORTMAPS LOOP -->
</xsl:element>
</xsl:for-each> <!-- END BIFS LOOP -->
</xsl:if> <!-- END IF SHOW_BUSIFS -->
<!-- PORTS part of a IOINTERFACE -->
<xsl:if test="$SHOW_IOIF = 'TRUE'">
<xsl:for-each select="$m_iofs_all_[PORTMAPS/PORTMAP]">
<xsl:sort data-type="number" select="@MPD_INDEX" order="ascending"/>
<xsl:variable name="iifName_" select="@NAME"/>
<xsl:variable name="iifRef_" select="self::node()"/>
<xsl:variable name="portmapsRef_" select="$iifRef_/PORTMAPS"/>
<xsl:variable name="is_external_">
<xsl:call-template name="F_IS_Interface_External">
<xsl:with-param name="iInstRef" select="$iModRef"/>
<xsl:with-param name="iIntfRef" select="$iifRef_"/>
</xsl:call-template>
</xsl:variable>
<xsl:variable name="iif_connection_">
<xsl:choose>
<xsl:when test="($is_external_ ='TRUE')">Connected to External Ports</xsl:when>
<xsl:otherwise>Not connected to External Ports</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:element name="SET">
<xsl:attribute name="ID"><xsl:value-of select="@NAME"/></xsl:attribute>
<xsl:attribute name="CLASS">IOINTERFACE.PORTS</xsl:attribute>
<xsl:if test="$is_external_ = 'TRUE'">
<xsl:attribute name="IS_EXTERNAL">TRUE</xsl:attribute>
</xsl:if>
<VARIABLE VIEWTYPE="STATIC" VIEWDISP="NAME" NAME="NAME" VALUE="(IO_IF) {@NAME}"/>
<VARIABLE VIEWTYPE="DROPDOWN" VIEWDISP="Net" NAME="IOINTERFACE.CONNECTION" VALUE="{$iif_connection_}"/>
<xsl:for-each select="$portmapsRef_/PORTMAP">
<xsl:variable name="portName_" select="@PHYSICAL"/>
<xsl:variable name="portDir_" select="@DIR"/>
<!--
<xsl:variable name="port_is_valid_">
<xsl:choose>
<xsl:when test="$portRef_/@IS_VALID = 'FALSE'">FALSE</xsl:when>
<xsl:otherwise>TRUE</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:message><xsl:value-of select="$portName_"/> : <xsl:value-of select="$port_is_valid_"/> : <xsl:value-of select="$portRef_/@IS_VALID"/></xsl:message>
-->
<xsl:if test="$m_ports_def_[(@NAME = $portName_)]"> <!-- Only in map if port is valid -->
<!--
<xsl:message><xsl:value-of select="$portName_"/> </xsl:message>
-->
<xsl:variable name="portRef_" select="$m_ports_def_[(@NAME = $portName_)]"/>
<xsl:variable name="portSig_" select="$portRef_/@SIGNAME"/>
<xsl:variable name="portSigIs_">
<xsl:choose>
<xsl:when test="not($portRef_/@SIGIS)">__NONE__</xsl:when>
<xsl:otherwise><xsl:value-of select="$portRef_/@SIGIS"/></xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="portSensi_">
<xsl:choose>
<xsl:when test="($portRef_/@SENSITIVITY)"><xsl:value-of select="$portRef_/@SENSITIVITY"/></xsl:when>
<xsl:otherwise>__NONE__</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="portVecFormula_">
<xsl:choose>
<xsl:when test="$portRef_/@VECFORMULA"><xsl:value-of select="$portRef_/@VECFORMULA"/></xsl:when>
<xsl:otherwise>__NONE__</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:call-template name="WRITE_PORT_SET">
<xsl:with-param name="iName" select="$portName_"/>
<xsl:with-param name="iDir" select="$portDir_"/>
<xsl:with-param name="iSigName" select="$portSig_"/>
<xsl:with-param name="iSigIs" select="$portSigIs_"/>
<xsl:with-param name="iSensitivity" select="$portSensi_"/>
<xsl:with-param name="iVecFormula" select="$portVecFormula_"/>
</xsl:call-template>
</xsl:if> <!-- End of port is valid check -->
</xsl:for-each> <!-- END IO INTERFACE PORTMAPS LOOP -->
</xsl:element>
</xsl:for-each> <!-- END IIFS LOOP -->
</xsl:if> <!-- END IF SHOW_IOIFS -->
</SET>
</xsl:for-each> <!-- End of the scoping for key functions-->
</xsl:template>
<xsl:template name="WRITE_VIEW_PORT_FLAT">
<xsl:if test="$G_DEBUG='TRUE'">
<xsl:message>WRITING PORT MODE <xsl:value-of select="@MODE"/></xsl:message>
</xsl:if>
<xsl:variable name="num_of_ext_ports_" select="count($G_SYS_EXPS/PORT)"/>
<xsl:if test="$num_of_ext_ports_ &gt; 0">
<xsl:call-template name="WRITE_VIEW_EXTP_FLAT_SET"/>
</xsl:if>
<xsl:for-each select="$G_SYS_MODS/MODULE">
<xsl:sort data-type="number" select="@ROW_INDEX" order="ascending"/>
<xsl:variable name="instName_" select="@INSTANCE"/>
<xsl:variable name="moduleRef_" select="self::node()"/>
<xsl:call-template name="WRITE_VIEW_PORT_FLAT_SET">
<xsl:with-param name="iModRef" select="$moduleRef_"/>
</xsl:call-template>
</xsl:for-each> <!-- End of Modules Loop -->
</xsl:template>
<xsl:template name="WRITE_VIEW_EXTP_FLAT_SET">
<xsl:for-each select="$G_SYS_EXPS">
<xsl:for-each select="PORT[(not(@IS_VALID) or (@IS_VALID = 'TRUE'))]">
<xsl:sort data-type="number" select="@MHS_INDEX" order="ascending"/>
<xsl:variable name="ext_is_interrupt_">
<xsl:if test="@SIGIS = 'INTERRUPT'">TRUE</xsl:if>
<xsl:if test="not(@SIGIS = 'INTERRUPT')">FALSE</xsl:if>
</xsl:variable>
<SET ID="{@NAME}" CLASS="PORT">
<VARIABLE VIEWTYPE="STATIC" VIEWDISP="Instance" NAME="INSTANCE" VALUE="External Ports"/>
<VARIABLE VIEWTYPE="TEXTBOX" VIEWDISP="Port Name" NAME="NAME" VALUE="{@NAME}"/>
<xsl:choose>
<xsl:when test="@LEFT and @RIGHT">
<xsl:variable name="vecformula_txt_">[<xsl:value-of select="@LEFT"/>:<xsl:value-of select="@RIGHT"/>]</xsl:variable>
<VARIABLE VIEWTYPE="TEXTBOX" VIEWDISP="Range" NAME="VECFORMULA" VALUE="{$vecformula_txt_}"/>
</xsl:when>
<xsl:when test="@MSB and @LSB">
<xsl:variable name="vecformula_txt_">[<xsl:value-of select="@MSB"/>:<xsl:value-of select="@LSB"/>]</xsl:variable>
<VARIABLE VIEWTYPE="TEXTBOX" VIEWDISP="Range" NAME="VECFORMULA" VALUE="{$vecformula_txt_}"/>
</xsl:when>
<xsl:when test="(not(@MSB) and not(@LSB) and not(@SIGIS = 'CLK') and not(@SIGIS = 'CLOCK') and not(@SIGIS = 'DCMCLK') and not(@SIGIS = 'RST') and not(@SIGIS = 'RESET'))">
<VARIABLE VIEWTYPE="TEXTBOX" VIEWDISP="Range" NAME="VECFORMULA" VALUE=""/>
</xsl:when>
</xsl:choose>
<VARIABLE VIEWTYPE="DROPDOWN" VIEWDISP="Net" NAME="SIGNAME" VALUE="{@SIGNAME}" IS_EDITABLE="TRUE"/>
<VARIABLE VIEWTYPE="DROPDOWN" VIEWDISP="Direction" NAME="DIR" VALUE="{@DIR}"/>
<xsl:if test="(@SIGIS)">
<VARIABLE VIEWTYPE="DROPDOWN" VIEWDISP="Class" NAME="SIGIS" VALUE="{@SIGIS}"/>
</xsl:if>
<xsl:if test="not(@SIGIS)">
<VARIABLE VIEWTYPE="DROPDOWN" VIEWDISP="Class" NAME="SIGIS" VALUE="NONE"/>
</xsl:if>
<xsl:if test="(@SIGIS = 'RST' or @SIGIS = 'RESET')">
<VARIABLE VIEWTYPE="DROPDOWN" VIEWDISP="Reset Polarity" NAME="RSTPOLARITY" VALUE="{@RSTPOLARITY}"/>
</xsl:if>
<xsl:if test="((@SIGIS = 'CLK') or (@SIGIS = 'CLOCK') or (@SIGIS = 'DCMCLK'))">
<VARIABLE VIEWTYPE="TEXTBOX" VIEWDISP="Frequency(Hz)" NAME="CLKFREQUENCY" VALUE="{@CLKFREQUENCY}"/>
</xsl:if>
<!-- SENSITIVITY Settings on Interrupt ports -->
<xsl:choose>
<xsl:when test="((@SIGNAME = '__NOC__') and ($ext_is_interrupt_ = 'TRUE') and not(@SENSITIVITY))">
<VARIABLE VIEWTYPE="DROPDOWN" VIEWDISP="Sensitivity" NAME="SENSITIVITY" VALUE=""/>
</xsl:when>
<xsl:when test="((@SIGNAME = '__NOC__') and ($ext_is_interrupt_ = 'TRUE') and (@SENSITIVITY))">
<VARIABLE VIEWTYPE="DROPDOWN" VIEWDISP="Sensitivity" NAME="SENSITIVITY" VALUE="{@SENSITIVITY}"/>
</xsl:when>
<xsl:when test="((@SIGNAME = '__DEF__') and ($ext_is_interrupt_ = 'TRUE') and not(@SENSITIVITY))">
<VARIABLE VIEWTYPE="DROPDOWN" VIEWDISP="Sensitivity" NAME="SENSITIVITY" VALUE=""/>
</xsl:when>
<xsl:when test="((@SIGNAME = '__DEF__') and ($ext_is_interrupt_ = 'TRUE') and (@SENSITIVITY))">
<VARIABLE VIEWTYPE="DROPDOWN" VIEWDISP="Sensitivity" NAME="SENSITIVITY" VALUE="{@SENSITIVITY}"/>
</xsl:when>
<xsl:when test="(not(@SIGNAME = '__DEF__') and not(@SIGNAME = '__NOC__') and ($ext_is_interrupt_ = 'TRUE') and not(@SENSITIVITY))">
<VARIABLE VIEWTYPE="DROPDOWN" VIEWDISP="Sensitivity" NAME="SENSITIVITY" VALUE=""/>
</xsl:when>
<xsl:when test="(not(@SIGNAME = '__DEF__') and not(@SIGNAME = '__NOC__') and ($ext_is_interrupt_ = 'TRUE') and (@SENSITIVITY))">
<VARIABLE VIEWTYPE="DROPDOWN" VIEWDISP="Sensitivity" NAME="SENSITIVITY" VALUE="{@SENSITIVITY}"/>
</xsl:when>
</xsl:choose>
</SET>
</xsl:for-each>
</xsl:for-each>
</xsl:template>
<xsl:template name="WRITE_VIEW_PORT_FLAT_SET">
<xsl:param name="iModRef" select="'__NONE__'"/>
<xsl:variable name="m_inst_" select="$iModRef/@INSTANCE"/>
<xsl:variable name="m_class_" select="$iModRef/@MODCLASS"/>
<xsl:variable name="m_type_" select="$iModRef/@MODTYPE"/>
<xsl:variable name="m_type_lc_" select="translate($m_type_,&UPPER2LOWER;)"/>
<xsl:variable name="m_version_" select="$iModRef/@HWVERSION"/>
<xsl:variable name="m_licinfo_" select="$iModRef/LICENSEINFO"/>
<xsl:variable name="is_axi_interconnect_">
<xsl:choose>
<xsl:when test="$m_type_ = 'axi_interconnect'">TRUE</xsl:when>
<xsl:when test="$m_type_lc_ = 'axi_interconnect'">TRUE</xsl:when>
<xsl:otherwise>FALSE</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:for-each select="$G_SYS_MODS"> <!-- To put things in the right scope for the keys below -->
<xsl:variable name="m_bifs_all_" select="key('G_MAP_ALL_BIFS', $m_inst_)"/>
<xsl:variable name="m_ports_all_" select="key('G_MAP_ALL_PORTS',$m_inst_)"/>
<xsl:if test="$G_DEBUG = 'TRUE'">
<xsl:message><xsl:value-of select="$m_inst_"/> has <xsl:value-of select="count($m_ports_all_)"/> valid ports </xsl:message>
</xsl:if>
<xsl:for-each select="$m_ports_all_">
<xsl:sort data-type="number" select="@MPD_INDEX" order="ascending"/>
<!-- <xsl:message>PORTNM : <xsl:value-of select="@NAME"/></xsl:message> -->
<xsl:variable name="p_nm_uc_" select="translate(@NAME,&LOWER2UPPER;)"/>
<xsl:variable name="p_bif_" select="@BUS"/>
<xsl:variable name="port_is_valid_">
<xsl:choose>
<xsl:when test="@IS_VALID = 'FALSE'">FALSE</xsl:when>
<xsl:when test="(($is_axi_interconnect_ = 'TRUE') and ($p_nm_uc_= 'INTERCONNECT_ACLK'))">TRUE</xsl:when>
<xsl:when test="not(@BUS) or (@BUS and key('G_MAP_ALL_BIFS', $m_inst_)[(@NAME = $p_bif_)])">TRUE</xsl:when>
<xsl:otherwise>FALSE</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:if test="$port_is_valid_ = 'TRUE'">
<!--
<xsl:message>PORT <xsl:value-of select="@BUS"/>.<xsl:value-of select="@NAME"/></xsl:message>
-->
<SET ID="{@NAME}" CLASS="PORT">
<!--
CR452579
Can only modify INSTANCE name in Hierarchal view.
-->
<VARIABLE VIEWTYPE="STATIC" VIEWDISP="Instance" NAME="INSTANCE" VALUE="{$m_inst_}"/>
<VARIABLE VIEWTYPE="STATIC" VIEWDISP="IP Type" NAME="MODTYPE" VALUE="{$m_type_}" VIEWICON="{$m_licinfo_/@ICON_NAME}"/>
<VARIABLE VIEWTYPE="STATIC" VIEWDISP="IP Version" NAME="HWVERSION" VALUE="{$m_version_}"/>
<VARIABLE VIEWTYPE="STATIC" VIEWDISP="Port Name" NAME="NAME" VALUE="{@NAME}"/>
<VARIABLE VIEWTYPE="STATIC" VIEWDISP="Direction" NAME="DIR" VALUE="{@DIR}"/>
<xsl:if test="@SIGIS">
<VARIABLE VIEWTYPE="STATIC" VIEWDISP="Class" NAME="SIGIS" VALUE="{@SIGIS}"/>
</xsl:if>
<xsl:if test="@VECFORMULA">
<VARIABLE VIEWTYPE="STATIC" VIEWDISP="Range" NAME="VECFORMULA" VALUE="{@VECFORMULA}"/>
</xsl:if>
<xsl:if test="@SENSITIVITY">
<VARIABLE VIEWTYPE="STATIC" VIEWDISP="Sensitivity" NAME="SENSITIVITY" VALUE="{@SENSITIVITY}"/>
</xsl:if>
<xsl:variable name="is_interrupt">
<xsl:if test="@SIGIS = 'INTERRUPT'">TRUE</xsl:if>
<xsl:if test="not(@SIGIS = 'INTERRUPT')">FALSE</xsl:if>
</xsl:variable>
<xsl:variable name="is_input">
<xsl:choose>
<xsl:when test="(@DIR= 'I')">TRUE</xsl:when>
<xsl:when test="(@DIR= 'IN')">TRUE</xsl:when>
<xsl:when test="(@DIR= 'INPUT')">TRUE</xsl:when>
<xsl:otherwise>FALSE</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<!-- VECFORMULA Settings if Interrupt settings -->
<xsl:choose>
<xsl:when test="((@SIGNAME = '__NOC__') and ($is_interrupt = 'TRUE') and ($is_input = 'TRUE') and not(@VECFORMULA))">
<VARIABLE VIEWTYPE="DROPDOWN" VIEWDISP="Net" NAME="SIGNAME" VALUE="No Connection" IS_INTERRUPT="{$is_interrupt}"/>
</xsl:when>
<xsl:when test="((@SIGNAME = '__NOC__') and ($is_interrupt = 'TRUE') and ($is_input = 'TRUE') and (@VECFORMULA))">
<VARIABLE VIEWTYPE="DROPDOWN" VIEWDISP="Net" NAME="SIGNAME" VALUE="No Connection" IS_INTERRUPT="{$is_interrupt}" IS_RANGE="TRUE"/>
</xsl:when>
<xsl:when test="@SIGNAME = '__NOC__'">
<VARIABLE VIEWTYPE="DROPDOWN" VIEWDISP="Net" NAME="SIGNAME" VALUE="No Connection" IS_EDITABLE="TRUE"/>
</xsl:when>
<xsl:when test="((@SIGNAME = '__DEF__') and ($is_interrupt = 'TRUE') and ($is_input = 'TRUE') and not(@VECFORMULA))">
<VARIABLE VIEWTYPE="DROPDOWN" VIEWDISP="Net" NAME="SIGNAME" VALUE="Default Connection" IS_INTERRUPT="{$is_interrupt}"/>
</xsl:when>
<xsl:when test="((@SIGNAME = '__DEF__') and ($is_interrupt = 'TRUE') and ($is_input = 'TRUE') and (@VECFORMULA))">
<VARIABLE VIEWTYPE="DROPDOWN" VIEWDISP="Net" NAME="SIGNAME" VALUE="Default Connection" IS_INTERRUPT="{$is_interrupt}" IS_RANGE="TRUE"/>
</xsl:when>
<xsl:when test="@SIGNAME = '__DEF__'">
<VARIABLE VIEWTYPE="DROPDOWN" VIEWDISP="Net" NAME="SIGNAME" VALUE="Default Connection"/>
</xsl:when>
<xsl:when test="(not(@SIGNAME = '__DEF__') and not(@SIGNAME = '__NOC__') and ($is_input = 'TRUE') and ($is_interrupt = 'TRUE') and (@VECFORMULA))">
<VARIABLE VIEWTYPE="DROPDOWN" VIEWDISP="Net" NAME="SIGNAME" VALUE="{@SIGNAME}" IS_INTERRUPT="{$is_interrupt}" IS_RANGE="TRUE"/>
</xsl:when>
<xsl:when test="(not(@SIGNAME = '__DEF__') and not(@SIGNAME = '__NOC__') and ($is_input = 'TRUE') and ($is_interrupt = 'TRUE'))">
<VARIABLE VIEWTYPE="DROPDOWN" VIEWDISP="Net" NAME="SIGNAME" VALUE="{@SIGNAME}" IS_INTERRUPT="{$is_interrupt}"/>
</xsl:when>
<xsl:otherwise>
<VARIABLE VIEWTYPE="DROPDOWN" VIEWDISP="Net" NAME="SIGNAME" VALUE="{@SIGNAME}" IS_EDITABLE="TRUE"/>
</xsl:otherwise>
</xsl:choose>
</SET>
</xsl:if> <!-- End of port validity check -->
</xsl:for-each> <!-- End of Ports Loop -->
</xsl:for-each>
</xsl:template>
<xsl:template name="WRITE_PORT_SET">
<xsl:param name="iName" select="'__NONE__'"/>
<xsl:param name="iDir" select="'__NONE__'"/>
<xsl:param name="iSigName" select="'__NONE__'"/>
<xsl:param name="iSigIs" select="'__NONE__'"/>
<xsl:param name="iVecFormula" select="'__NONE__'"/>
<xsl:param name="iSensitivity" select="'__NONE__'"/>
<SET ID="{$iName}" CLASS="PORT">
<VARIABLE VIEWTYPE="STATIC" VIEWDISP="NAME" NAME="NAME" VALUE="{$iName}"/>
<xsl:variable name="is_interrupt">
<xsl:if test="$iSigIs = 'INTERRUPT'">TRUE</xsl:if>
<xsl:if test="not($iSigIs = 'INTERRUPT')">FALSE</xsl:if>
</xsl:variable>
<xsl:variable name="is_input">
<xsl:choose>
<xsl:when test="($iDir = 'I')">TRUE</xsl:when>
<xsl:when test="($iDir = 'IN')">TRUE</xsl:when>
<xsl:when test="($iDir = 'INPUT')">TRUE</xsl:when>
<xsl:otherwise>FALSE</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:choose>
<xsl:when test="(($iSigName = '__NOC__') and ($is_input = 'TRUE') and ($is_interrupt = 'TRUE') and ($iVecFormula = '__NONE__'))">
<VARIABLE VIEWTYPE="DROPDOWN" VIEWDISP="Net" NAME="SIGNAME" VALUE="No Connection" IS_INTERRUPT="{$is_interrupt}"/>
</xsl:when>
<xsl:when test="(($iSigName = '__NOC__') and ($is_input ='TRUE') and ($is_interrupt = 'TRUE') and not($iVecFormula = '__NONE__'))">
<VARIABLE VIEWTYPE="DROPDOWN" VIEWDISP="Net" NAME="SIGNAME" VALUE="No Connection" IS_INTERRUPT="{$is_interrupt}" IS_RANGE="TRUE"/>
</xsl:when>
<xsl:when test="$iSigName = '__NOC__'">
<VARIABLE VIEWTYPE="DROPDOWN" VIEWDISP="Net" NAME="SIGNAME" VALUE="No Connection" IS_EDITABLE="TRUE"/>
</xsl:when>
<xsl:when test="(($iSigName = '__DEF__') and ($is_input = 'TRUE') and ($is_interrupt = 'TRUE') and ($iVecFormula = '__NONE__'))">
<VARIABLE VIEWTYPE="DROPDOWN" VIEWDISP="Net" NAME="SIGNAME" VALUE="Default Connection" IS_INTERRUPT="{$is_interrupt}"/>
</xsl:when>
<xsl:when test="(($iSigName = '__DEF__') and ($is_input = 'TRUE') and ($is_interrupt = 'TRUE') and not($iVecFormula = '__NONE__'))">
<VARIABLE VIEWTYPE="DROPDOWN" VIEWDISP="Net" NAME="SIGNAME" VALUE="Default Connection" IS_INTERRUPT="{$is_interrupt}" IS_RANGE="TRUE"/>
</xsl:when>
<xsl:when test="($iSigName = '__DEF__')">
<VARIABLE VIEWTYPE="DROPDOWN" VIEWDISP="Net" NAME="SIGNAME" VALUE="Default Connection"/>
</xsl:when>
<xsl:when test="(not($iSigName = '__DEF__') and not($iSigName = '__NOC__') and ($is_input ='TRUE') and ($is_interrupt = 'TRUE') and not($iVecFormula = '__NONE__'))">
<VARIABLE VIEWTYPE="DROPDOWN" VIEWDISP="Net" NAME="SIGNAME" VALUE="{$iSigName}" IS_INTERRUPT="{$is_interrupt}" IS_RANGE="TRUE"/>
</xsl:when>
<xsl:when test="(not($iSigName = '__DEF__') and not($iSigName = '__NOC__') and ($is_input ='TRUE') and ($is_interrupt = 'TRUE'))">
<VARIABLE VIEWTYPE="DROPDOWN" VIEWDISP="Net" NAME="SIGNAME" VALUE="{$iSigName}" IS_INTERRUPT="{$is_interrupt}"/>
</xsl:when>
<xsl:otherwise>
<VARIABLE VIEWTYPE="DROPDOWN" VIEWDISP="Net" NAME="SIGNAME" VALUE="{$iSigName}" IS_EDITABLE="TRUE"/>
</xsl:otherwise>
</xsl:choose>
<VARIABLE VIEWTYPE="STATIC" VIEWDISP="Direction" NAME="DIR" VALUE="{$iDir}"/>
<xsl:if test="not($iSigIs = '__NONE__')">
<VARIABLE VIEWTYPE="STATIC" VIEWDISP="Class" NAME="SIGIS" VALUE="{$iSigIs}"/>
</xsl:if>
<xsl:if test="not($iVecFormula = '__NONE__')">
<VARIABLE VIEWTYPE="STATIC" VIEWDISP="Range" NAME="VECFORMULA" VALUE="{$iVecFormula}"/>
</xsl:if>
<xsl:if test="not($iSensitivity = '__NONE__')">
<VARIABLE VIEWTYPE="STATIC" VIEWDISP="Sensitivity" NAME="SENSITIVITY" VALUE="{$iSensitivity}"/>
</xsl:if>
</SET>
</xsl:template>
</xsl:stylesheet>

@ -1,141 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- IMPORTANT: This is an internal file that has been generated
by the Xilinx ISE software. Any direct editing or
changes made to this file may result in unpredictable
behavior or data corruption. It is strongly advised that
users do not edit the contents of this file. -->
<messages>
<msg type="info" file="EDK" num="0" delta="new" >IPNAME: <arg fmt="%s" index="1">axi_interconnect</arg>, INSTANCE:<arg fmt="%s" index="2">axi4_0</arg> - <arg fmt="%s" index="3">tcl</arg> is overriding <arg fmt="%s" index="4">PARAMETER</arg> <arg fmt="%s" index="5">C_BASEFAMILY</arg> value to <arg fmt="%s" index="6">spartan6</arg> - <arg fmt="%s" index="7">C:\devtools\Xilinx\13.1\ISE_DS\EDK\hw\XilinxProcessorIPLib\pcores\axi_interconnect_v1_02_a\data\axi_interconnect_v2_1_0.mpd line 69</arg>
</msg>
<msg type="info" file="EDK" num="0" delta="new" >IPNAME: <arg fmt="%s" index="1">axi_interconnect</arg>, INSTANCE:<arg fmt="%s" index="2">axi4lite_0</arg> - <arg fmt="%s" index="3">tcl</arg> is overriding <arg fmt="%s" index="4">PARAMETER</arg> <arg fmt="%s" index="5">C_BASEFAMILY</arg> value to <arg fmt="%s" index="6">spartan6</arg> - <arg fmt="%s" index="7">C:\devtools\Xilinx\13.1\ISE_DS\EDK\hw\XilinxProcessorIPLib\pcores\axi_interconnect_v1_02_a\data\axi_interconnect_v2_1_0.mpd line 69</arg>
</msg>
<msg type="info" file="EDK" num="0" delta="new" >IPNAME: <arg fmt="%s" index="1">microblaze</arg>, INSTANCE:<arg fmt="%s" index="2">microblaze_0</arg> - <arg fmt="%s" index="3">tcl</arg> is overriding <arg fmt="%s" index="4">PARAMETER</arg> <arg fmt="%s" index="5">C_ENDIANNESS</arg> value to <arg fmt="%s" index="6">1</arg> - <arg fmt="%s" index="7">C:\devtools\Xilinx\13.1\ISE_DS\EDK\hw\XilinxProcessorIPLib\pcores\microblaze_v8_10_a\data\microblaze_v2_1_0.mpd line 183</arg>
</msg>
<msg type="info" file="EDK" num="0" delta="new" >IPNAME: <arg fmt="%s" index="1">microblaze</arg>, INSTANCE:<arg fmt="%s" index="2">microblaze_0</arg> - <arg fmt="%s" index="3">tcl</arg> is overriding <arg fmt="%s" index="4">PARAMETER</arg> <arg fmt="%s" index="5">C_ICACHE_USE_FSL</arg> value to <arg fmt="%s" index="6">0</arg> - <arg fmt="%s" index="7">C:\devtools\Xilinx\13.1\ISE_DS\EDK\hw\XilinxProcessorIPLib\pcores\microblaze_v8_10_a\data\microblaze_v2_1_0.mpd line 322</arg>
</msg>
<msg type="info" file="EDK" num="0" delta="new" >IPNAME: <arg fmt="%s" index="1">microblaze</arg>, INSTANCE:<arg fmt="%s" index="2">microblaze_0</arg> - <arg fmt="%s" index="3">tcl</arg> is overriding <arg fmt="%s" index="4">PARAMETER</arg> <arg fmt="%s" index="5">C_DCACHE_USE_FSL</arg> value to <arg fmt="%s" index="6">0</arg> - <arg fmt="%s" index="7">C:\devtools\Xilinx\13.1\ISE_DS\EDK\hw\XilinxProcessorIPLib\pcores\microblaze_v8_10_a\data\microblaze_v2_1_0.mpd line 352</arg>
</msg>
<msg type="info" file="EDK" num="0" delta="new" >IPNAME: <arg fmt="%s" index="1">axi_s6_ddrx</arg>, INSTANCE:<arg fmt="%s" index="2">MCB_DDR3</arg> - <arg fmt="%s" index="3">tcl</arg> is overriding <arg fmt="%s" index="4">PARAMETER</arg> <arg fmt="%s" index="5">C_SYS_RST_PRESENT</arg> value to <arg fmt="%s" index="6">1</arg> - <arg fmt="%s" index="7">C:\devtools\Xilinx\13.1\ISE_DS\EDK\hw\XilinxProcessorIPLib\pcores\axi_s6_ddrx_v1_02_a\data\axi_s6_ddrx_v2_1_0.mpd line 228</arg>
</msg>
<msg type="info" file="EDK" num="740" delta="old" >Cannot determine the input clock associated with port : <arg fmt="%s" index="1">microblaze_0_i_bram_ctrl</arg>:<arg fmt="%s" index="2">BRAM_Clk_A</arg>. Clock DRCs will not be performed on this core and cores connected to it.
</msg>
<msg type="info" file="EDK" num="740" delta="old" >Cannot determine the input clock associated with port : <arg fmt="%s" index="1">microblaze_0_d_bram_ctrl</arg>:<arg fmt="%s" index="2">BRAM_Clk_A</arg>. Clock DRCs will not be performed on this core and cores connected to it.
</msg>
<msg type="info" file="EDK" num="0" delta="new" >IPNAME: <arg fmt="%s" index="1">axi_ethernetlite</arg>, INSTANCE: <arg fmt="%s" index="2">Ethernet_Lite</arg> - <arg fmt="%s" index="3">This design requires design constraints to guarantee performance.
Please refer to the data sheet for details.
The AXI clock frequency must be greater than or equal to 50 MHz for 100 Mbs Ethernet operation and greater than or equal to 5.0 MHz for 10 Mbs Ethernet operation.</arg> - <arg fmt="%s" index="4">C:\E\Dev\FreeRTOS\WorkingCopy\Demo\MicroBlaze_Spartan-6_EthernetLite\PlatformStudioProject\system.mhs line 324</arg>
</msg>
<msg type="info" file="EDK" num="0" delta="new" >IPNAME: <arg fmt="%s" index="1">lmb_v10</arg>, INSTANCE:<arg fmt="%s" index="2">microblaze_0_ilmb</arg> - <arg fmt="%s" index="3">tool</arg> is overriding <arg fmt="%s" index="4">PARAMETER</arg> <arg fmt="%s" index="5">C_LMB_NUM_SLAVES</arg> value to <arg fmt="%s" index="6">1</arg> - <arg fmt="%s" index="7">C:\devtools\Xilinx\13.1\ISE_DS\EDK\hw\XilinxProcessorIPLib\pcores\lmb_v10_v2_00_a\data\lmb_v10_v2_1_0.mpd line 70</arg>
</msg>
<msg type="info" file="EDK" num="0" delta="new" >IPNAME: <arg fmt="%s" index="1">lmb_v10</arg>, INSTANCE:<arg fmt="%s" index="2">microblaze_0_dlmb</arg> - <arg fmt="%s" index="3">tool</arg> is overriding <arg fmt="%s" index="4">PARAMETER</arg> <arg fmt="%s" index="5">C_LMB_NUM_SLAVES</arg> value to <arg fmt="%s" index="6">1</arg> - <arg fmt="%s" index="7">C:\devtools\Xilinx\13.1\ISE_DS\EDK\hw\XilinxProcessorIPLib\pcores\lmb_v10_v2_00_a\data\lmb_v10_v2_1_0.mpd line 70</arg>
</msg>
<msg type="info" file="EDK" num="0" delta="new" >IPNAME: <arg fmt="%s" index="1">bram_block</arg>, INSTANCE:<arg fmt="%s" index="2">microblaze_0_bram_block</arg> - <arg fmt="%s" index="3">tool</arg> is overriding <arg fmt="%s" index="4">PARAMETER</arg> <arg fmt="%s" index="5">C_MEMSIZE</arg> value to <arg fmt="%s" index="6">0x2000</arg> - <arg fmt="%s" index="7">C:\devtools\Xilinx\13.1\ISE_DS\EDK\hw\XilinxProcessorIPLib\pcores\bram_block_v1_00_a\data\bram_block_v2_1_0.mpd line 67</arg>
</msg>
<msg type="warning" file="EDK" num="0" delta="new" >PORT: <arg fmt="%s" index="1">bscan_tdo1</arg>, CONNECTOR: <arg fmt="%s" index="2">bscan_tdo1</arg> - No driver found. Port will be driven to <arg fmt="%s" index="3">GND</arg> - <arg fmt="%s" index="4">C:\devtools\Xilinx\13.1\ISE_DS\EDK\hw\XilinxProcessorIPLib\pcores\mdm_v2_00_b\data\mdm_v2_1_0.mpd line 230</arg>
</msg>
<msg type="warning" file="EDK" num="0" delta="new" >PORT: <arg fmt="%s" index="1">bscan_tdi</arg>, CONNECTOR: <arg fmt="%s" index="2">bscan_tdi</arg> - floating connection - <arg fmt="%s" index="3">C:\devtools\Xilinx\13.1\ISE_DS\EDK\hw\XilinxProcessorIPLib\pcores\mdm_v2_00_b\data\mdm_v2_1_0.mpd line 223</arg>
</msg>
<msg type="warning" file="EDK" num="0" delta="new" >PORT: <arg fmt="%s" index="1">bscan_reset</arg>, CONNECTOR: <arg fmt="%s" index="2">bscan_reset</arg> - floating connection - <arg fmt="%s" index="3">C:\devtools\Xilinx\13.1\ISE_DS\EDK\hw\XilinxProcessorIPLib\pcores\mdm_v2_00_b\data\mdm_v2_1_0.mpd line 224</arg>
</msg>
<msg type="warning" file="EDK" num="0" delta="new" >PORT: <arg fmt="%s" index="1">bscan_shift</arg>, CONNECTOR: <arg fmt="%s" index="2">bscan_shift</arg> - floating connection - <arg fmt="%s" index="3">C:\devtools\Xilinx\13.1\ISE_DS\EDK\hw\XilinxProcessorIPLib\pcores\mdm_v2_00_b\data\mdm_v2_1_0.mpd line 225</arg>
</msg>
<msg type="warning" file="EDK" num="0" delta="new" >PORT: <arg fmt="%s" index="1">bscan_update</arg>, CONNECTOR: <arg fmt="%s" index="2">bscan_update</arg> - floating connection - <arg fmt="%s" index="3">C:\devtools\Xilinx\13.1\ISE_DS\EDK\hw\XilinxProcessorIPLib\pcores\mdm_v2_00_b\data\mdm_v2_1_0.mpd line 226</arg>
</msg>
<msg type="warning" file="EDK" num="0" delta="new" >PORT: <arg fmt="%s" index="1">bscan_capture</arg>, CONNECTOR: <arg fmt="%s" index="2">bscan_capture</arg> - floating connection - <arg fmt="%s" index="3">C:\devtools\Xilinx\13.1\ISE_DS\EDK\hw\XilinxProcessorIPLib\pcores\mdm_v2_00_b\data\mdm_v2_1_0.mpd line 227</arg>
</msg>
<msg type="warning" file="EDK" num="0" delta="new" >PORT: <arg fmt="%s" index="1">bscan_sel1</arg>, CONNECTOR: <arg fmt="%s" index="2">bscan_sel1</arg> - floating connection - <arg fmt="%s" index="3">C:\devtools\Xilinx\13.1\ISE_DS\EDK\hw\XilinxProcessorIPLib\pcores\mdm_v2_00_b\data\mdm_v2_1_0.mpd line 228</arg>
</msg>
<msg type="warning" file="EDK" num="0" delta="new" >PORT: <arg fmt="%s" index="1">bscan_drck1</arg>, CONNECTOR: <arg fmt="%s" index="2">bscan_drck1</arg> - floating connection - <arg fmt="%s" index="3">C:\devtools\Xilinx\13.1\ISE_DS\EDK\hw\XilinxProcessorIPLib\pcores\mdm_v2_00_b\data\mdm_v2_1_0.mpd line 229</arg>
</msg>
<msg type="info" file="EDK" num="0" delta="new" >IPNAME: <arg fmt="%s" index="1">axi_interconnect</arg>, INSTANCE:<arg fmt="%s" index="2">axi4_0</arg> - <arg fmt="%s" index="3">tcl</arg> is overriding <arg fmt="%s" index="4">PARAMETER</arg> <arg fmt="%s" index="5">C_RANGE_CHECK</arg> value to <arg fmt="%s" index="6">0</arg> - <arg fmt="%s" index="7">C:\devtools\Xilinx\13.1\ISE_DS\EDK\hw\XilinxProcessorIPLib\pcores\axi_interconnect_v1_02_a\data\axi_interconnect_v2_1_0.mpd line 137</arg>
</msg>
<msg type="info" file="EDK" num="0" delta="new" >IPNAME: <arg fmt="%s" index="1">axi_interconnect</arg>, INSTANCE:<arg fmt="%s" index="2">axi4lite_0</arg> - <arg fmt="%s" index="3">tcl</arg> is overriding <arg fmt="%s" index="4">PARAMETER</arg> <arg fmt="%s" index="5">C_RANGE_CHECK</arg> value to <arg fmt="%s" index="6">1</arg> - <arg fmt="%s" index="7">C:\devtools\Xilinx\13.1\ISE_DS\EDK\hw\XilinxProcessorIPLib\pcores\axi_interconnect_v1_02_a\data\axi_interconnect_v2_1_0.mpd line 137</arg>
</msg>
<msg type="info" file="EDK" num="0" delta="new" >IPNAME: <arg fmt="%s" index="1">microblaze</arg>, INSTANCE:<arg fmt="%s" index="2">microblaze_0</arg> - <arg fmt="%s" index="3">tcl</arg> is overriding <arg fmt="%s" index="4">PARAMETER</arg> <arg fmt="%s" index="5">C_D_AXI</arg> value to <arg fmt="%s" index="6">1</arg> - <arg fmt="%s" index="7">C:\devtools\Xilinx\13.1\ISE_DS\EDK\hw\XilinxProcessorIPLib\pcores\microblaze_v8_10_a\data\microblaze_v2_1_0.mpd line 216</arg>
</msg>
<msg type="info" file="EDK" num="0" delta="new" >IPNAME: <arg fmt="%s" index="1">microblaze</arg>, INSTANCE:<arg fmt="%s" index="2">microblaze_0</arg> - <arg fmt="%s" index="3">tcl</arg> is overriding <arg fmt="%s" index="4">PARAMETER</arg> <arg fmt="%s" index="5">C_ADDR_TAG_BITS</arg> value to <arg fmt="%s" index="6">13</arg> - <arg fmt="%s" index="7">C:\devtools\Xilinx\13.1\ISE_DS\EDK\hw\XilinxProcessorIPLib\pcores\microblaze_v8_10_a\data\microblaze_v2_1_0.mpd line 320</arg>
</msg>
<msg type="info" file="EDK" num="0" delta="new" >IPNAME: <arg fmt="%s" index="1">microblaze</arg>, INSTANCE:<arg fmt="%s" index="2">microblaze_0</arg> - <arg fmt="%s" index="3">tcl</arg> is overriding <arg fmt="%s" index="4">PARAMETER</arg> <arg fmt="%s" index="5">C_DCACHE_ADDR_TAG</arg> value to <arg fmt="%s" index="6">13</arg> - <arg fmt="%s" index="7">C:\devtools\Xilinx\13.1\ISE_DS\EDK\hw\XilinxProcessorIPLib\pcores\microblaze_v8_10_a\data\microblaze_v2_1_0.mpd line 350</arg>
</msg>
<msg type="info" file="EDK" num="0" delta="new" >IPNAME: <arg fmt="%s" index="1">microblaze</arg>, INSTANCE:<arg fmt="%s" index="2">microblaze_0</arg> - <arg fmt="%s" index="3">tcl</arg> is overriding <arg fmt="%s" index="4">PARAMETER</arg> <arg fmt="%s" index="5">C_USE_INTERRUPT</arg> value to <arg fmt="%s" index="6">1</arg> - <arg fmt="%s" index="7">C:\devtools\Xilinx\13.1\ISE_DS\EDK\hw\XilinxProcessorIPLib\pcores\microblaze_v8_10_a\data\microblaze_v2_1_0.mpd line 384</arg>
</msg>
<msg type="info" file="EDK" num="0" delta="new" >IPNAME: <arg fmt="%s" index="1">microblaze</arg>, INSTANCE:<arg fmt="%s" index="2">microblaze_0</arg> - <arg fmt="%s" index="3">tcl</arg> is overriding <arg fmt="%s" index="4">PARAMETER</arg> <arg fmt="%s" index="5">C_USE_EXT_BRK</arg> value to <arg fmt="%s" index="6">1</arg> - <arg fmt="%s" index="7">C:\devtools\Xilinx\13.1\ISE_DS\EDK\hw\XilinxProcessorIPLib\pcores\microblaze_v8_10_a\data\microblaze_v2_1_0.mpd line 385</arg>
</msg>
<msg type="info" file="EDK" num="0" delta="new" >IPNAME: <arg fmt="%s" index="1">microblaze</arg>, INSTANCE:<arg fmt="%s" index="2">microblaze_0</arg> - <arg fmt="%s" index="3">tcl</arg> is overriding <arg fmt="%s" index="4">PARAMETER</arg> <arg fmt="%s" index="5">C_USE_EXT_NM_BRK</arg> value to <arg fmt="%s" index="6">1</arg> - <arg fmt="%s" index="7">C:\devtools\Xilinx\13.1\ISE_DS\EDK\hw\XilinxProcessorIPLib\pcores\microblaze_v8_10_a\data\microblaze_v2_1_0.mpd line 386</arg>
</msg>
<msg type="info" file="EDK" num="0" delta="new" >IPNAME: <arg fmt="%s" index="1">lmb_bram_if_cntlr</arg>, INSTANCE:<arg fmt="%s" index="2">microblaze_0_i_bram_ctrl</arg> - <arg fmt="%s" index="3">tcl</arg> is overriding <arg fmt="%s" index="4">PARAMETER</arg> <arg fmt="%s" index="5">C_MASK</arg> value to <arg fmt="%s" index="6">0x40000000</arg> - <arg fmt="%s" index="7">C:\devtools\Xilinx\13.1\ISE_DS\EDK\hw\XilinxProcessorIPLib\pcores\lmb_bram_if_cntlr_v3_00_a\data\lmb_bram_if_cntlr_v2_1_0.mpd line 78</arg>
</msg>
<msg type="info" file="EDK" num="0" delta="new" >IPNAME: <arg fmt="%s" index="1">lmb_bram_if_cntlr</arg>, INSTANCE:<arg fmt="%s" index="2">microblaze_0_d_bram_ctrl</arg> - <arg fmt="%s" index="3">tcl</arg> is overriding <arg fmt="%s" index="4">PARAMETER</arg> <arg fmt="%s" index="5">C_MASK</arg> value to <arg fmt="%s" index="6">0x40000000</arg> - <arg fmt="%s" index="7">C:\devtools\Xilinx\13.1\ISE_DS\EDK\hw\XilinxProcessorIPLib\pcores\lmb_bram_if_cntlr_v3_00_a\data\lmb_bram_if_cntlr_v2_1_0.mpd line 78</arg>
</msg>
<msg type="info" file="EDK" num="0" delta="new" >IPNAME: <arg fmt="%s" index="1">axi_s6_ddrx</arg>, INSTANCE:<arg fmt="%s" index="2">MCB_DDR3</arg> - <arg fmt="%s" index="3">tcl</arg> is overriding <arg fmt="%s" index="4">PARAMETER</arg> <arg fmt="%s" index="5">C_MEMCLK_PERIOD</arg> value to <arg fmt="%s" index="6">3333</arg> - <arg fmt="%s" index="7">C:\devtools\Xilinx\13.1\ISE_DS\EDK\hw\XilinxProcessorIPLib\pcores\axi_s6_ddrx_v1_02_a\data\axi_s6_ddrx_v2_1_0.mpd line 110</arg>
</msg>
<msg type="info" file="EDK" num="0" delta="new" >IPNAME: <arg fmt="%s" index="1">axi_s6_ddrx</arg>, INSTANCE:<arg fmt="%s" index="2">MCB_DDR3</arg> - <arg fmt="%s" index="3">tcl</arg> is overriding <arg fmt="%s" index="4">PARAMETER</arg> <arg fmt="%s" index="5">C_S0_AXI_STRICT_COHERENCY</arg> value to <arg fmt="%s" index="6">0</arg> - <arg fmt="%s" index="7">C:\devtools\Xilinx\13.1\ISE_DS\EDK\hw\XilinxProcessorIPLib\pcores\axi_s6_ddrx_v1_02_a\data\axi_s6_ddrx_v2_1_0.mpd line 153</arg>
</msg>
<msg type="info" file="EDK" num="0" delta="new" >IPNAME: <arg fmt="%s" index="1">axi_s6_ddrx</arg>, INSTANCE:<arg fmt="%s" index="2">MCB_DDR3</arg> - <arg fmt="%s" index="3">tcl</arg> is overriding <arg fmt="%s" index="4">PARAMETER</arg> <arg fmt="%s" index="5">C_S1_AXI_REG_EN0</arg> value to <arg fmt="%s" index="6">0x0000F</arg> - <arg fmt="%s" index="7">C:\devtools\Xilinx\13.1\ISE_DS\EDK\hw\XilinxProcessorIPLib\pcores\axi_s6_ddrx_v1_02_a\data\axi_s6_ddrx_v2_1_0.mpd line 165</arg>
</msg>
<msg type="info" file="EDK" num="0" delta="new" >IPNAME: <arg fmt="%s" index="1">axi_s6_ddrx</arg>, INSTANCE:<arg fmt="%s" index="2">MCB_DDR3</arg> - <arg fmt="%s" index="3">tcl</arg> is overriding <arg fmt="%s" index="4">PARAMETER</arg> <arg fmt="%s" index="5">C_S2_AXI_REG_EN0</arg> value to <arg fmt="%s" index="6">0x0000F</arg> - <arg fmt="%s" index="7">C:\devtools\Xilinx\13.1\ISE_DS\EDK\hw\XilinxProcessorIPLib\pcores\axi_s6_ddrx_v1_02_a\data\axi_s6_ddrx_v2_1_0.mpd line 179</arg>
</msg>
<msg type="info" file="EDK" num="0" delta="new" >IPNAME: <arg fmt="%s" index="1">axi_s6_ddrx</arg>, INSTANCE:<arg fmt="%s" index="2">MCB_DDR3</arg> - <arg fmt="%s" index="3">tcl</arg> is overriding <arg fmt="%s" index="4">PARAMETER</arg> <arg fmt="%s" index="5">C_S3_AXI_REG_EN0</arg> value to <arg fmt="%s" index="6">0x0000F</arg> - <arg fmt="%s" index="7">C:\devtools\Xilinx\13.1\ISE_DS\EDK\hw\XilinxProcessorIPLib\pcores\axi_s6_ddrx_v1_02_a\data\axi_s6_ddrx_v2_1_0.mpd line 193</arg>
</msg>
<msg type="info" file="EDK" num="0" delta="new" >IPNAME: <arg fmt="%s" index="1">axi_s6_ddrx</arg>, INSTANCE:<arg fmt="%s" index="2">MCB_DDR3</arg> - <arg fmt="%s" index="3">tcl</arg> is overriding <arg fmt="%s" index="4">PARAMETER</arg> <arg fmt="%s" index="5">C_S4_AXI_REG_EN0</arg> value to <arg fmt="%s" index="6">0x0000F</arg> - <arg fmt="%s" index="7">C:\devtools\Xilinx\13.1\ISE_DS\EDK\hw\XilinxProcessorIPLib\pcores\axi_s6_ddrx_v1_02_a\data\axi_s6_ddrx_v2_1_0.mpd line 207</arg>
</msg>
<msg type="info" file="EDK" num="0" delta="new" >IPNAME: <arg fmt="%s" index="1">axi_s6_ddrx</arg>, INSTANCE:<arg fmt="%s" index="2">MCB_DDR3</arg> - <arg fmt="%s" index="3">tcl</arg> is overriding <arg fmt="%s" index="4">PARAMETER</arg> <arg fmt="%s" index="5">C_S5_AXI_REG_EN0</arg> value to <arg fmt="%s" index="6">0x0000F</arg> - <arg fmt="%s" index="7">C:\devtools\Xilinx\13.1\ISE_DS\EDK\hw\XilinxProcessorIPLib\pcores\axi_s6_ddrx_v1_02_a\data\axi_s6_ddrx_v2_1_0.mpd line 221</arg>
</msg>
<msg type="info" file="EDK" num="0" delta="new" >IPNAME: <arg fmt="%s" index="1">axi_intc</arg>, INSTANCE:<arg fmt="%s" index="2">microblaze_0_intc</arg> - <arg fmt="%s" index="3">tcl</arg> is overriding <arg fmt="%s" index="4">PARAMETER</arg> <arg fmt="%s" index="5">C_NUM_INTR_INPUTS</arg> value to <arg fmt="%s" index="6">4</arg> - <arg fmt="%s" index="7">C:\devtools\Xilinx\13.1\ISE_DS\EDK\hw\XilinxProcessorIPLib\pcores\axi_intc_v1_01_a\data\axi_intc_v2_1_0.mpd line 71</arg>
</msg>
<msg type="info" file="EDK" num="0" delta="new" >IPNAME: <arg fmt="%s" index="1">axi_intc</arg>, INSTANCE:<arg fmt="%s" index="2">microblaze_0_intc</arg> - <arg fmt="%s" index="3">tcl</arg> is overriding <arg fmt="%s" index="4">PARAMETER</arg> <arg fmt="%s" index="5">C_KIND_OF_INTR</arg> value to <arg fmt="%s" index="6">0b11111111111111111111111111110111</arg> - <arg fmt="%s" index="7">C:\devtools\Xilinx\13.1\ISE_DS\EDK\hw\XilinxProcessorIPLib\pcores\axi_intc_v1_01_a\data\axi_intc_v2_1_0.mpd line 72</arg>
</msg>
<msg type="info" file="EDK" num="0" delta="new" >IPNAME: <arg fmt="%s" index="1">axi_intc</arg>, INSTANCE:<arg fmt="%s" index="2">microblaze_0_intc</arg> - <arg fmt="%s" index="3">tcl</arg> is overriding <arg fmt="%s" index="4">PARAMETER</arg> <arg fmt="%s" index="5">C_KIND_OF_EDGE</arg> value to <arg fmt="%s" index="6">0b11111111111111111111111111111111</arg> - <arg fmt="%s" index="7">C:\devtools\Xilinx\13.1\ISE_DS\EDK\hw\XilinxProcessorIPLib\pcores\axi_intc_v1_01_a\data\axi_intc_v2_1_0.mpd line 73</arg>
</msg>
<msg type="info" file="EDK" num="0" delta="new" >IPNAME: <arg fmt="%s" index="1">axi_intc</arg>, INSTANCE:<arg fmt="%s" index="2">microblaze_0_intc</arg> - <arg fmt="%s" index="3">tcl</arg> is overriding <arg fmt="%s" index="4">PARAMETER</arg> <arg fmt="%s" index="5">C_KIND_OF_LVL</arg> value to <arg fmt="%s" index="6">0b11111111111111111111111111111111</arg> - <arg fmt="%s" index="7">C:\devtools\Xilinx\13.1\ISE_DS\EDK\hw\XilinxProcessorIPLib\pcores\axi_intc_v1_01_a\data\axi_intc_v2_1_0.mpd line 74</arg>
</msg>
<msg type="info" file="EDK" num="0" delta="new" >The following instances are synthesized with <arg fmt="%s" index="1">XST</arg>. The MPD option IMP_NETLIST=TRUE indicates that a NGC file is to be produced using <arg fmt="%s" index="2">XST</arg> synthesis. IMP_NETLIST=FALSE (default) instances are not synthesized.
</msg>
<msg type="info" file="EDK" num="3509" delta="old" >NCF files should not be modified as they will be regenerated.
If any constraint needs to be overridden, this should be done by modifying the data/<arg fmt="%s" index="1">system</arg>.ucf file.
</msg>
</messages>

@ -1,218 +0,0 @@
<?xml version='1.0' encoding='UTF-8'?>
<report-views version="2.0" >
<header>
<DateModified>2011-07-27T13:20:02</DateModified>
<ModuleName>system</ModuleName>
<SummaryTimeStamp>2011-07-27T13:20:02</SummaryTimeStamp>
<SavedFilePath>C:/E/Dev/FreeRTOS/WorkingCopy/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/ise/system.xreport</SavedFilePath>
<FilterFile>filter.filter</FilterFile>
<SavedFilterFilePath>C:/E/Dev/FreeRTOS/WorkingCopy/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/ise</SavedFilterFilePath>
<DateInitialized>2011-05-30T21:44:59</DateInitialized>
<EnableMessageFiltering>false</EnableMessageFiltering>
</header>
<body>
<viewgroup label="Design Overview" >
<view inputState="Unknown" program="implementation" ShowPartitionData="false" type="FPGASummary" file="implementation\system_summary.html" label="Summary" >
<toc-item title="Design Overview" target="Design Overview" />
<toc-item title="Design Utilization Summary" target="Design Utilization Summary" />
<toc-item title="Performance Summary" target="Performance Summary" />
<toc-item title="Failing Constraints" target="Failing Constraints" />
<toc-item title="Detailed Reports" target="Detailed Reports" />
</view>
<view inputState="Unknown" program="implementation" contextTags="FPGA_ONLY" hidden="true" type="HTML" file="implementation\system_envsettings.html" label="System Settings" />
<view inputState="Translated" program="map" locator="MAP_IOB_TABLE" contextTags="FPGA_ONLY" type="IOBProperties" file="implementation\system_map.xrpt" label="IOB Properties" />
<view inputState="Translated" program="map" contextTags="FPGA_ONLY" hidden="true" type="Control_Sets" file="implementation\system_map.xrpt" label="Control Set Information" />
<view inputState="Translated" program="map" locator="MAP_MODULE_HIERARCHY" contextTags="FPGA_ONLY" type="Module_Utilization" file="implementation\system_map.xrpt" label="Module Level Utilization" />
<view inputState="Mapped" program="par" locator="CONSTRAINT_TABLE" contextTags="FPGA_ONLY" type="ConstraintsData" file="implementation\system.ptwx" label="Timing Constraints" translator="ptwxToTableXML.xslt" />
<view inputState="Mapped" program="par" locator="PAR_PINOUT_BY_PIN_NUMBER" contextTags="FPGA_ONLY" type="PinoutData" file="implementation\system_par.xrpt" label="Pinout Report" />
<view inputState="Mapped" program="par" locator="PAR_CLOCK_TABLE" contextTags="FPGA_ONLY" type="ClocksData" file="implementation\system_par.xrpt" label="Clock Report" />
<view inputState="Mapped" program="par" contextTags="FPGA_ONLY,EDK_OFF" hidden="true" type="Timing_Analyzer" file="implementation\system.twx" label="Static Timing" />
<view inputState="Translated" program="cpldfit" contextTags="CPLD_ONLY,EDK_OFF" hidden="true" type="EXTERNAL_HTML" file="implementation\system_html/fit/report.htm" label="CPLD Fitter Report" />
<view inputState="Fitted" program="taengine" contextTags="CPLD_ONLY,EDK_OFF" hidden="true" type="EXTERNAL_HTML" file="implementation\system_html/tim/report.htm" label="CPLD Timing Report" />
</viewgroup>
<viewgroup label="XPS Errors and Warnings" >
<view program="platgen" WrapMessages="true" contextTags="EDK_ON" hidden="false" type="MessageList" hideColumns="Filtered" file="__xps/ise/_xmsgs/platgen.xmsgs" label="Platgen Messages" />
<view program="libgen" WrapMessages="true" contextTags="EDK_ON" hidden="false" type="MessageList" hideColumns="Filtered" file="__xps/ise/_xmsgs/libgen.xmsgs" label="Libgen Messages" />
<view program="simgen" WrapMessages="true" contextTags="EDK_ON" hidden="false" type="MessageList" hideColumns="Filtered" file="__xps/ise/_xmsgs/simgen.xmsgs" label="Simgen Messages" />
<view program="bitinit" WrapMessages="true" contextTags="EDK_ON" hidden="false" type="MessageList" hideColumns="Filtered" file="__xps/ise/_xmsgs/bitinit.xmsgs" label="BitInit Messages" />
</viewgroup>
<viewgroup label="XPS Reports" >
<view inputState="PreSynthesized" program="platgen" contextTags="EDK_ON" hidden="false" type="Secondary_Report" file="platgen.log" label="Platgen Log File" />
<view inputState="PreSynthesized" program="libgen" contextTags="EDK_ON" hidden="false" type="Secondary_Report" file="libgen.log" label="Libgen Log File" />
<view inputState="PreSynthesized" program="simgen" contextTags="EDK_ON" hidden="false" type="Secondary_Report" file="simgen.log" label="Simgen Log File" />
<view inputState="PreSynthesized" program="bitinit" contextTags="EDK_ON" hidden="false" type="Secondary_Report" file="bitinit.log" label="BitInit Log File" />
<view inputState="PreSynthesized" program="system" contextTags="EDK_ON" hidden="false" type="Secondary_Report" file="system.log" label="System Log File" />
</viewgroup>
<viewgroup label="Errors and Warnings" >
<view program="pn" WrapMessages="true" contextTags="EDK_OFF" hidden="true" type="MessageList" hideColumns="Filtered, New" file="implementation\_xmsgs/pn_parser.xmsgs" label="Parser Messages" />
<view program="xst" WrapMessages="true" contextTags="XST_ONLY,EDK_OFF" hidden="true" type="MessageList" hideColumns="Filtered" file="synthesis\_xmsgs/xst.xmsgs" label="Synthesis Messages" />
<view inputState="Synthesized" program="ngdbuild" WrapMessages="true" type="MessageList" hideColumns="Filtered" file="implementation\_xmsgs/ngdbuild.xmsgs" label="Translation Messages" />
<view inputState="Translated" program="map" WrapMessages="true" contextTags="FPGA_ONLY" type="MessageList" hideColumns="Filtered" file="implementation\_xmsgs/map.xmsgs" label="Map Messages" />
<view inputState="Mapped" program="par" WrapMessages="true" contextTags="FPGA_ONLY" type="MessageList" hideColumns="Filtered" file="implementation\_xmsgs/par.xmsgs" label="Place and Route Messages" />
<view inputState="Routed" program="trce" WrapMessages="true" contextTags="FPGA_ONLY" type="MessageList" hideColumns="Filtered" file="implementation\_xmsgs/trce.xmsgs" label="Timing Messages" />
<view inputState="Routed" program="xpwr" WrapMessages="true" contextTags="EDK_OFF" hidden="true" type="MessageList" hideColumns="Filtered" file="implementation\_xmsgs/xpwr.xmsgs" label="Power Messages" />
<view inputState="Routed" program="bitgen" WrapMessages="true" contextTags="FPGA_ONLY" type="MessageList" hideColumns="Filtered" file="implementation\_xmsgs/bitgen.xmsgs" label="Bitgen Messages" />
<view inputState="Translated" program="cpldfit" WrapMessages="true" contextTags="CPLD_ONLY,EDK_OFF" hidden="true" type="MessageList" hideColumns="Filtered" file="implementation\_xmsgs/cpldfit.xmsgs" label="Fitter Messages" />
<view inputState="Current" program="implementation" WrapMessages="true" fileList="_xmsgs/xst.xmsgs,_xmsgs/ngdbuild.xmsgs,_xmsgs/map.xmsgs,_xmsgs/par.xmsgs,_xmsgs/trce.xmsgs,_xmsgs/xpwr.xmsgs,_xmsgs/bitgen.xmsgs" contextTags="FPGA_ONLY" type="MessageList" hideColumns="Filtered" file="implementation\_xmsgs/*.xmsgs" label="All Implementation Messages" />
<view inputState="Current" program="fitting" WrapMessages="true" fileList="_xmsgs/xst.xmsgs,_xmsgs/ngdbuild.xmsgs,_xmsgs/cpldfit.xmsgs,_xmsgs/xpwr.xmsgs" contextTags="CPLD_ONLY,EDK_OFF" hidden="true" type="CPLD_MessageList" hideColumns="Filtered" file="implementation\_xmsgs/*.xmsgs" label="All Implementation Messages (CPLD)" />
</viewgroup>
<viewgroup label="Detailed Reports" >
<view program="xst" contextTags="XST_ONLY,EDK_OFF" hidden="true" type="Report" file="implementation\system.syr" label="Synthesis Report" >
<toc-item title="Top of Report" target="Copyright " searchDir="Forward" />
<toc-item title="Synthesis Options Summary" target=" Synthesis Options Summary " />
<toc-item title="HDL Compilation" target=" HDL Compilation " />
<toc-item title="Design Hierarchy Analysis" target=" Design Hierarchy Analysis " />
<toc-item title="HDL Analysis" target=" HDL Analysis " />
<toc-item title="HDL Parsing" target=" HDL Parsing " />
<toc-item title="HDL Elaboration" target=" HDL Elaboration " />
<toc-item title="HDL Synthesis" target=" HDL Synthesis " />
<toc-item title="HDL Synthesis Report" target="HDL Synthesis Report" searchCnt="2" searchDir="Backward" subItemLevel="1" />
<toc-item title="Advanced HDL Synthesis" target=" Advanced HDL Synthesis " searchDir="Backward" />
<toc-item title="Advanced HDL Synthesis Report" target="Advanced HDL Synthesis Report" subItemLevel="1" />
<toc-item title="Low Level Synthesis" target=" Low Level Synthesis " />
<toc-item title="Partition Report" target=" Partition Report " />
<toc-item title="Final Report" target=" Final Report " />
<toc-item title="Design Summary" target=" Design Summary " />
<toc-item title="Primitive and Black Box Usage" target="Primitive and Black Box Usage:" subItemLevel="1" />
<toc-item title="Device Utilization Summary" target="Device utilization summary:" subItemLevel="1" />
<toc-item title="Partition Resource Summary" target="Partition Resource Summary:" subItemLevel="1" />
<toc-item title="Timing Report" target="Timing Report" subItemLevel="1" />
<toc-item title="Clock Information" target="Clock Information" subItemLevel="2" />
<toc-item title="Asynchronous Control Signals Information" target="Asynchronous Control Signals Information" subItemLevel="2" />
<toc-item title="Timing Summary" target="Timing Summary" subItemLevel="2" />
<toc-item title="Timing Details" target="Timing Details" subItemLevel="2" />
<toc-item title="Cross Clock Domains Report" target="Cross Clock Domains Report:" subItemLevel="2" />
</view>
<view program="synplify" contextTags="SYNPLIFY_ONLY,EDK_OFF" hidden="true" type="Report" file="implementation\system.srr" label="Synplify Report" />
<view program="precision" contextTags="PRECISION_ONLY,EDK_OFF" hidden="true" type="Report" file="implementation\system.prec_log" label="Precision Report" />
<view inputState="Synthesized" program="ngdbuild" type="Report" file="implementation\system.bld" label="Translation Report" >
<toc-item title="Top of Report" target="Copyright (c)" searchDir="Forward" />
<toc-item title="Command Line" target="Command Line:" />
<toc-item title="Partition Status" target="Partition Implementation Status" />
<toc-item title="Final Summary" target="NGDBUILD Design Results Summary:" />
</view>
<view inputState="Translated" program="map" contextTags="FPGA_ONLY" type="Report" file="implementation\system_map.mrp" label="Map Report" >
<toc-item title="Top of Report" target="Release" searchDir="Forward" />
<toc-item title="Section 1: Errors" target="Section 1 -" searchDir="Backward" />
<toc-item title="Section 2: Warnings" target="Section 2 -" searchDir="Backward" />
<toc-item title="Section 3: Infos" target="Section 3 -" searchDir="Backward" />
<toc-item title="Section 4: Removed Logic Summary" target="Section 4 -" searchDir="Backward" />
<toc-item title="Section 5: Removed Logic" target="Section 5 -" searchDir="Backward" />
<toc-item title="Section 6: IOB Properties" target="Section 6 -" searchDir="Backward" />
<toc-item title="Section 7: RPMs" target="Section 7 -" searchDir="Backward" />
<toc-item title="Section 8: Guide Report" target="Section 8 -" searchDir="Backward" />
<toc-item title="Section 9: Area Group and Partition Summary" target="Section 9 -" searchDir="Backward" />
<toc-item title="Section 10: Timing Report" target="Section 10 -" searchDir="Backward" />
<toc-item title="Section 11: Configuration String Details" target="Section 11 -" searchDir="Backward" />
<toc-item title="Section 12: Control Set Information" target="Section 12 -" searchDir="Backward" />
<toc-item title="Section 13: Utilization by Hierarchy" target="Section 13 -" searchDir="Backward" />
</view>
<view inputState="Mapped" program="par" contextTags="FPGA_ONLY" type="Report" file="implementation\system.par" label="Place and Route Report" >
<toc-item title="Top of Report" target="Copyright (c)" searchDir="Forward" />
<toc-item title="Device Utilization" target="Device Utilization Summary:" />
<toc-item title="Router Information" target="Starting Router" />
<toc-item title="Partition Status" target="Partition Implementation Status" />
<toc-item title="Clock Report" target="Generating Clock Report" />
<toc-item title="Timing Results" target="Timing Score:" />
<toc-item title="Final Summary" target="Peak Memory Usage:" />
</view>
<view inputState="Routed" program="trce" contextTags="FPGA_ONLY" type="Report" file="implementation\system.twr" label="Post-PAR Static Timing Report" >
<toc-item title="Top of Report" target="Copyright (c)" searchDir="Forward" />
<toc-item title="Timing Report Description" target="Device,package,speed:" />
<toc-item title="Informational Messages" target="INFO:" />
<toc-item title="Warning Messages" target="WARNING:" />
<toc-item title="Timing Constraints" target="Timing constraint:" />
<toc-item title="Derived Constraint Report" target="Derived Constraint Report" />
<toc-item title="Data Sheet Report" target="Data Sheet report:" />
<toc-item title="Timing Summary" target="Timing summary:" />
<toc-item title="Trace Settings" target="Trace Settings:" />
</view>
<view inputState="Translated" program="cpldfit" contextTags="CPLD_ONLY,EDK_OFF" hidden="true" type="Report" file="implementation\system.rpt" label="CPLD Fitter Report (Text)" >
<toc-item title="Top of Report" target="cpldfit:" searchDir="Forward" />
<toc-item title="Resources Summary" target="** Mapped Resource Summary **" />
<toc-item title="Pin Resources" target="** Pin Resources **" />
<toc-item title="Global Resources" target="** Global Control Resources **" />
</view>
<view inputState="Fitted" program="taengine" contextTags="CPLD_ONLY,EDK_OFF" hidden="true" type="Report" file="implementation\system.tim" label="CPLD Timing Report (Text)" >
<toc-item title="Top of Report" target="Performance Summary Report" searchDir="Forward" />
<toc-item title="Performance Summary" target="Performance Summary:" />
</view>
<view inputState="Routed" program="xpwr" contextTags="EDK_OFF" hidden="true" type="Report" file="implementation\system.pwr" label="Power Report" >
<toc-item title="Top of Report" target="Copyright (c)" searchDir="Forward" />
<toc-item title="Power summary" target="Power summary" />
<toc-item title="Thermal summary" target="Thermal summary" />
</view>
<view inputState="Routed" program="bitgen" contextTags="FPGA_ONLY" type="Report" file="implementation\system.bgn" label="Bitgen Report" >
<toc-item title="Top of Report" target="Copyright (c)" searchDir="Forward" />
<toc-item title="Bitgen Options" target="Summary of Bitgen Options:" />
<toc-item title="Final Summary" target="DRC detected" />
</view>
</viewgroup>
<viewgroup label="Secondary Reports" >
<view inputState="PreSynthesized" program="isim" hidden="if_missing" type="Secondary_Report" file="implementation\isim.log" label="ISIM Simulator Log" />
<view inputState="Synthesized" program="netgen" hidden="if_missing" type="Secondary_Report" file="implementation\netgen/synthesis/system_synthesis.nlf" label="Post-Synthesis Simulation Model Report" >
<toc-item title="Top of Report" target="Release" searchDir="Forward" />
</view>
<view inputState="Translated" program="netgen" hidden="if_missing" type="Secondary_Report" file="implementation\netgen/translate/system_translate.nlf" label="Post-Translate Simulation Model Report" >
<toc-item title="Top of Report" target="Release" searchDir="Forward" />
</view>
<view inputState="Translated" program="netgen" hidden="if_missing" type="Secondary_Report" file="implementation\system_tran_fecn.nlf" label="Post-Translate Formality Netlist Report" />
<view inputState="Translated" program="map" contextTags="FPGA_ONLY" hidden="true" type="Secondary_Report" file="implementation\system_map.map" label="Map Log File" >
<toc-item title="Top of Report" target="Release" searchDir="Forward" />
<toc-item title="Design Information" target="Design Information" />
<toc-item title="Design Summary" target="Design Summary" />
</view>
<view inputState="Routed" program="smartxplorer" contextTags="FPGA_ONLY" hidden="if_missing" type="Secondary_Report" file="implementation\smartxplorer_results/smartxplorer.txt" label="SmartXplorer Report" />
<view inputState="Mapped" program="trce" contextTags="FPGA_ONLY" hidden="if_missing" type="Secondary_Report" file="implementation\system_preroute.twr" label="Post-Map Static Timing Report" >
<toc-item title="Top of Report" target="Copyright (c)" searchDir="Forward" />
<toc-item title="Timing Report Description" target="Device,package,speed:" />
<toc-item title="Informational Messages" target="INFO:" />
<toc-item title="Warning Messages" target="WARNING:" />
<toc-item title="Timing Constraints" target="Timing constraint:" />
<toc-item title="Derived Constraint Report" target="Derived Constraint Report" />
<toc-item title="Data Sheet Report" target="Data Sheet report:" />
<toc-item title="Timing Summary" target="Timing summary:" />
<toc-item title="Trace Settings" target="Trace Settings:" />
</view>
<view inputState="Mapped" program="netgen" hidden="if_missing" type="Secondary_Report" file="implementation\netgen/map/system_map.nlf" label="Post-Map Simulation Model Report" />
<view inputState="Mapped" program="map" contextTags="FPGA_ONLY" hidden="if_missing" type="Secondary_Report" file="implementation\system_map.psr" label="Physical Synthesis Report" >
<toc-item title="Top of Report" target="Copyright (c)" searchDir="Forward" />
</view>
<view inputState="Mapped" program="par" contextTags="FPGA_ONLY" hidden="true" type="Pad_Report" file="implementation\system_pad.txt" label="Pad Report" >
<toc-item title="Top of Report" target="Copyright (c)" searchDir="Forward" />
</view>
<view inputState="Mapped" program="par" contextTags="FPGA_ONLY" hidden="true" type="Secondary_Report" file="implementation\system.unroutes" label="Unroutes Report" >
<toc-item title="Top of Report" target="Copyright (c)" searchDir="Forward" />
</view>
<view inputState="Mapped" program="map" contextTags="FPGA_ONLY" hidden="if_missing" type="Secondary_Report" file="implementation\system_preroute.tsi" label="Post-Map Constraints Interaction Report" >
<toc-item title="Top of Report" target="Release" searchDir="Forward" />
</view>
<view inputState="Mapped" program="par" contextTags="FPGA_ONLY" hidden="if_missing" type="Secondary_Report" file="implementation\system.grf" label="Guide Results Report" />
<view inputState="Routed" program="par" contextTags="FPGA_ONLY" hidden="if_missing" type="Secondary_Report" file="implementation\system.dly" label="Asynchronous Delay Report" />
<view inputState="Routed" program="par" contextTags="FPGA_ONLY" hidden="if_missing" type="Secondary_Report" file="implementation\system.clk_rgn" label="Clock Region Report" />
<view inputState="Routed" program="par" contextTags="FPGA_ONLY" hidden="if_missing" type="Secondary_Report" file="implementation\system.tsi" label="Post-Place and Route Constraints Interaction Report" >
<toc-item title="Top of Report" target="Copyright (c)" searchDir="Forward" />
</view>
<view inputState="Routed" program="netgen" hidden="if_missing" type="Secondary_Report" file="implementation\system_par_fecn.nlf" label="Post-Place and Route Formality Netlist Report" />
<view inputState="Routed" program="netgen" contextTags="FPGA_ONLY" hidden="if_missing" type="Secondary_Report" file="implementation\netgen/par/system_timesim.nlf" label="Post-Place and Route Simulation Model Report" />
<view inputState="Routed" program="netgen" hidden="if_missing" type="Secondary_Report" file="implementation\system_sta.nlf" label="Primetime Netlist Report" >
<toc-item title="Top of Report" target="Release" searchDir="Forward" />
</view>
<view inputState="Routed" program="ibiswriter" hidden="if_missing" type="Secondary_Report" file="implementation\system.ibs" label="IBIS Model" >
<toc-item title="Top of Report" target="IBIS Models for" searchDir="Forward" />
<toc-item title="Component" target="Component " />
</view>
<view inputState="Routed" program="pin2ucf" contextTags="FPGA_ONLY" hidden="if_missing" type="Secondary_Report" file="implementation\system.lck" label="Back-annotate Pin Report" >
<toc-item title="Top of Report" target="pin2ucf Report File" searchDir="Forward" />
<toc-item title="Constraint Conflicts Information" target="Constraint Conflicts Information" />
</view>
<view inputState="Routed" program="pin2ucf" contextTags="FPGA_ONLY" hidden="if_missing" type="Secondary_Report" file="implementation\system.lpc" label="Locked Pin Constraints" >
<toc-item title="Top of Report" target="top.lpc" searchDir="Forward" />
<toc-item title="Newly Added Constraints" target="The following constraints were newly added" />
</view>
<view inputState="Translated" program="netgen" contextTags="CPLD_ONLY,EDK_OFF" hidden="true" type="Secondary_Report" file="implementation\netgen/fit/system_timesim.nlf" label="Post-Fit Simulation Model Report" />
<view inputState="Routed" program="bitgen" contextTags="FPGA_ONLY" hidden="if_missing" type="HTML" file="implementation\usage_statistics_webtalk.html" label="WebTalk Report" />
<view inputState="Routed" program="bitgen" contextTags="FPGA_ONLY" hidden="if_missing" type="Secondary_Report" file="implementation\webtalk.log" label="WebTalk Log File" />
</viewgroup>
</body>
</report-views>

@ -1,3 +0,0 @@
MessageCaptureEnabled: TRUE
MessageFilteringEnabled: FALSE
IncrementalMessagingEnabled: TRUE

@ -1,2 +0,0 @@
-p xc6slx45tfgg484-3 -lang vhdl$(PROJECT_SEARCHPATHOPT) $(GLOBAL_SEARCHPATHOPT) -msg __xps/ise/xmsgprops.lst

@ -1 +0,0 @@
-p spartan6 -lang vhdl$(PROJECT_SEARCHPATHOPT) $(GLOBAL_SEARCHPATHOPT) -msg __xps/ise/xmsgprops.lst -s isim

@ -1,41 +0,0 @@
#
# pin constraints
#
NET CLK_N LOC = "K22" | DIFF_TERM = "TRUE" | IOSTANDARD = "LVDS_25";
NET CLK_P LOC = "K21" | DIFF_TERM = "TRUE" | IOSTANDARD = "LVDS_25";
NET Ethernet_Lite_COL LOC = "M16" | IOSTANDARD = "LVCMOS25";
NET Ethernet_Lite_CRS LOC = "N15" | IOSTANDARD = "LVCMOS25";
NET Ethernet_Lite_MDC LOC = "R19" | IOSTANDARD = "LVCMOS25";
NET Ethernet_Lite_MDIO LOC = "V20" | IOSTANDARD = "LVCMOS25";
NET Ethernet_Lite_PHY_RST_N LOC = "J22" | IOSTANDARD = "LVCMOS25" | TIG;
NET Ethernet_Lite_RXD[0] LOC = "P19" | IOSTANDARD = "LVCMOS25";
NET Ethernet_Lite_RXD[1] LOC = "Y22" | IOSTANDARD = "LVCMOS25";
NET Ethernet_Lite_RXD[2] LOC = "Y21" | IOSTANDARD = "LVCMOS25";
NET Ethernet_Lite_RXD[3] LOC = "W22" | IOSTANDARD = "LVCMOS25";
NET Ethernet_Lite_RX_CLK LOC = "P20" | IOSTANDARD = "LVCMOS25";
NET Ethernet_Lite_RX_DV LOC = "T22" | IOSTANDARD = "LVCMOS25";
NET Ethernet_Lite_RX_ER LOC = "U20" | IOSTANDARD = "LVCMOS25";
NET Ethernet_Lite_TXD[0] LOC = "U10" | IOSTANDARD = "LVCMOS25";
NET Ethernet_Lite_TXD[1] LOC = "T10" | IOSTANDARD = "LVCMOS25";
NET Ethernet_Lite_TXD[2] LOC = "AB8" | IOSTANDARD = "LVCMOS25";
NET Ethernet_Lite_TXD[3] LOC = "AA8" | IOSTANDARD = "LVCMOS25";
NET Ethernet_Lite_TX_CLK LOC = "L20" | IOSTANDARD = "LVCMOS25";
NET Ethernet_Lite_TX_EN LOC = "T8" | IOSTANDARD = "LVCMOS25";
NET LEDs_4Bits_TRI_O[0] LOC = "D17" | IOSTANDARD = "LVCMOS25";
NET LEDs_4Bits_TRI_O[1] LOC = "AB4" | IOSTANDARD = "LVCMOS25";
NET LEDs_4Bits_TRI_O[2] LOC = "D21" | IOSTANDARD = "LVCMOS25";
NET LEDs_4Bits_TRI_O[3] LOC = "W15" | IOSTANDARD = "LVCMOS25";
NET Push_Buttons_4Bits_TRI_I[0] LOC = "F3" | IOSTANDARD = "LVCMOS25";
NET Push_Buttons_4Bits_TRI_I[1] LOC = "G6" | IOSTANDARD = "LVCMOS25";
NET Push_Buttons_4Bits_TRI_I[2] LOC = "F5" | IOSTANDARD = "LVCMOS25";
NET Push_Buttons_4Bits_TRI_I[3] LOC = "C1" | IOSTANDARD = "LVCMOS25";
NET RESET LOC = "H8" | IOSTANDARD = "LVCMOS15" | TIG;
NET RS232_Uart_1_sin LOC = "H17" | IOSTANDARD = "LVCMOS25";
NET RS232_Uart_1_sout LOC = "B21" | IOSTANDARD = "LVCMOS25";
#
# additional constraints
#
NET "CLK" TNM_NET = sys_clk_pin;
TIMESPEC TS_sys_clk_pin = PERIOD sys_clk_pin 200000 kHz;

@ -1,3 +0,0 @@
-g TdoPin:PULLNONE
-g StartUpClk:JTAGCLK
#add other options here.

@ -1,6 +0,0 @@
setMode -bscan
setCable -p auto
identify
assignfile -p 2 -file implementation/download.bit
program -p 2
quit

@ -1,84 +0,0 @@
FLOWTYPE = FPGA;
###############################################################
## Filename: fast_runtime.opt
##
## Option File For Xilinx FPGA Implementation Flow for Fast
## Runtime.
##
## Version: 4.1.1
###############################################################
#
# Options for Translator
#
# Type "ngdbuild -h" for a detailed list of ngdbuild command line options
#
Program ngdbuild
-p <partname>; # Partname to use - picked from xflow commandline
-nt timestamp; # NGO File generation. Regenerate only when
# source netlist is newer than existing
# NGO file (default)
-bm <design>.bmm # Block RAM memory map file
<userdesign>; # User design - pick from xflow command line
-uc <design>.ucf; # ucf constraints
<design>.ngd; # Name of NGD file. Filebase same as design filebase
End Program ngdbuild
#
# Options for Mapper
#
# Type "map -h <arch>" for a detailed list of map command line options
#
Program map
-o <design>_map.ncd; # Output Mapped ncd file
-w; # Overwrite output files.
-pr b; # Pack internal FF/latches into IOBs
#-fp <design>.mfp; # Floorplan file
-ol high;
-timing;
-detail;
<inputdir><design>.ngd; # Input NGD file
<inputdir><design>.pcf; # Physical constraints file
END Program map
#
# Options for Post Map Trace
#
# Type "trce -h" for a detailed list of trce command line options
#
Program post_map_trce
-e 3; # Produce error report limited to 3 items per constraint
#-o <design>_map.twr; # Output trace report file
-xml <design>_map.twx; # Output XML version of the timing report
#-tsi <design>_map.tsi; # Produce Timing Specification Interaction report
<inputdir><design>_map.ncd; # Input mapped ncd
<inputdir><design>.pcf; # Physical constraints file
END Program post_map_trce
#
# Options for Place and Route
#
# Type "par -h" for a detailed list of par command line options
#
Program par
-w; # Overwrite existing placed and routed ncd
-ol high; # Overall effort level
<inputdir><design>_map.ncd; # Input mapped NCD file
<design>.ncd; # Output placed and routed NCD
<inputdir><design>.pcf; # Input physical constraints file
END Program par
#
# Options for Post Par Trace
#
# Type "trce -h" for a detailed list of trce command line options
#
Program post_par_trce
-e 3; # Produce error report limited to 3 items per constraint
#-o <design>.twr; # Output trace report file
-xml <design>.twx; # Output XML version of the timing report
#-tsi <design>.tsi; # Produce Timing Specification Interaction report
<inputdir><design>.ncd; # Input placed and routed ncd
<inputdir><design>.pcf; # Physical constraints file
END Program post_par_trce

@ -1,158 +0,0 @@
<FILTERS>
<IDENTIFICATION VERSION="1.2" XTLVERSION="1.2"/>
<SET CLASS="PROJECT" VIEW_ID="BUSINTERFACE">
<HEADERS HSCROLL="0" VSCROLL="0">
<VARIABLE COL_INDEX="0" COL_WIDTH="350" IS_VISIBLE="TRUE" VIEWDISP="Bus Interface Filters" VIEWTYPE="HEADER"/>
</HEADERS>
<SET CLASS="FILTER_GROUP" ID="By Connection" IS_EXPANDED="TRUE">
<VARIABLE NAME="By Connection" VALUE="By Connection" VIEWDISP="Bus Interface Filters" VIEWTYPE="STATIC"/>
<SET CLASS="FILTER" ID="Connected" ROW_INDEX="0">
<VARIABLE IS_LABELED="TRUE" NAME="Connected" VALUE="TRUE" VIEWDISP="Bus Interface Filters" VIEWTYPE="CHECKBOX"/>
</SET>
<SET CLASS="FILTER" ID="Unconnected" ROW_INDEX="1">
<VARIABLE IS_LABELED="TRUE" NAME="Unconnected" VALUE="TRUE" VIEWDISP="Bus Interface Filters" VIEWTYPE="CHECKBOX"/>
</SET>
</SET>
<SET CLASS="FILTER_GROUP" ID="By Bus Standard" IS_EXPANDED="TRUE">
<VARIABLE COL_INDEX="0" NAME="By Bus Standard" VALUE="By Bus Standard" VIEWDISP="Bus Interface Filters" VIEWTYPE="STATIC"/>
<SET CLASS="FILTER" ID="AXI" ROW_INDEX="0">
<VARIABLE IS_LABELED="TRUE" NAME="AXI" VALUE="TRUE" VIEWDISP="Bus Interface Filters" VIEWTYPE="CHECKBOX"/>
</SET>
<SET CLASS="FILTER" ID="AXIS" IS_VISIBLE="FALSE" ROW_INDEX="1">
<VARIABLE IS_LABELED="TRUE" NAME="AXIS" VALUE="TRUE" VIEWDISP="Bus Interface Filters" VIEWTYPE="CHECKBOX"/>
</SET>
<SET CLASS="FILTER" ID="OPB" IS_VISIBLE="FALSE" ROW_INDEX="2">
<VARIABLE IS_LABELED="TRUE" NAME="OPB" VALUE="TRUE" VIEWDISP="Bus Interface Filters" VIEWTYPE="CHECKBOX"/>
</SET>
<SET CLASS="FILTER" ID="LMB" ROW_INDEX="3">
<VARIABLE IS_LABELED="TRUE" NAME="LMB" VALUE="TRUE" VIEWDISP="Bus Interface Filters" VIEWTYPE="CHECKBOX"/>
</SET>
<SET CLASS="FILTER" ID="PLBV34" IS_VISIBLE="FALSE" ROW_INDEX="4">
<VARIABLE IS_LABELED="TRUE" NAME="PLBV34" VALUE="TRUE" VIEWDISP="Bus Interface Filters" VIEWTYPE="CHECKBOX"/>
</SET>
<SET CLASS="FILTER" ID="PLBV46" IS_VISIBLE="FALSE" ROW_INDEX="5">
<VARIABLE IS_LABELED="TRUE" NAME="PLBV46" VALUE="TRUE" VIEWDISP="Bus Interface Filters" VIEWTYPE="CHECKBOX"/>
</SET>
<SET CLASS="FILTER" ID="OCM" IS_VISIBLE="FALSE" ROW_INDEX="6">
<VARIABLE IS_LABELED="TRUE" NAME="OCM" VALUE="TRUE" VIEWDISP="Bus Interface Filters" VIEWTYPE="CHECKBOX"/>
</SET>
<SET CLASS="FILTER" ID="FSL" IS_VISIBLE="FALSE" ROW_INDEX="7">
<VARIABLE IS_LABELED="TRUE" NAME="FSL" VALUE="TRUE" VIEWDISP="Bus Interface Filters" VIEWTYPE="CHECKBOX"/>
</SET>
<SET CLASS="FILTER" ID="DCR" IS_VISIBLE="FALSE" ROW_INDEX="8">
<VARIABLE IS_LABELED="TRUE" NAME="DCR" VALUE="TRUE" VIEWDISP="Bus Interface Filters" VIEWTYPE="CHECKBOX"/>
</SET>
<SET CLASS="FILTER" ID="FCB" IS_VISIBLE="FALSE" ROW_INDEX="9">
<VARIABLE IS_LABELED="TRUE" NAME="FCB" VALUE="TRUE" VIEWDISP="Bus Interface Filters" VIEWTYPE="CHECKBOX"/>
</SET>
<SET CLASS="FILTER" ID="XIL" IS_EXPANDED="TRUE" ROW_INDEX="10">
<VARIABLE IS_LABELED="TRUE" NAME="Xilinx Point To Point" VALUE="TRUE" VIEWDISP="Bus Interface Filters" VIEWTYPE="CHECKBOX"/>
<SET CLASS="SUB_FILTER" ID="XIL_BRAM" ROW_INDEX="0">
<VARIABLE IS_LABELED="TRUE" NAME="XIL_BRAM" VALUE="TRUE" VIEWDISP="Bus Interface Filters" VIEWTYPE="CHECKBOX"/>
</SET>
<SET CLASS="SUB_FILTER" ID="XIL_BSCAN" ROW_INDEX="1">
<VARIABLE IS_LABELED="TRUE" NAME="XIL_BSCAN" VALUE="TRUE" VIEWDISP="Bus Interface Filters" VIEWTYPE="CHECKBOX"/>
</SET>
<SET CLASS="SUB_FILTER" ID="XIL_MBDEBUG3" ROW_INDEX="2">
<VARIABLE IS_LABELED="TRUE" NAME="XIL_MBDEBUG3" VALUE="TRUE" VIEWDISP="Bus Interface Filters" VIEWTYPE="CHECKBOX"/>
</SET>
<SET CLASS="SUB_FILTER" ID="XIL_MBTRACE2" ROW_INDEX="3">
<VARIABLE IS_LABELED="TRUE" NAME="XIL_MBTRACE2" VALUE="TRUE" VIEWDISP="Bus Interface Filters" VIEWTYPE="CHECKBOX"/>
</SET>
</SET>
<SET CLASS="FILTER" ID="USER" IS_VISIBLE="FALSE" ROW_INDEX="11">
<VARIABLE IS_LABELED="TRUE" NAME="User Defined" VALUE="TRUE" VIEWDISP="Bus Interface Filters" VIEWTYPE="CHECKBOX"/>
</SET>
<SET CLASS="FILTER" ID="XCL" IS_VISIBLE="FALSE" ROW_INDEX="12">
<VARIABLE IS_LABELED="TRUE" NAME="XCL" VALUE="TRUE" VIEWDISP="Bus Interface Filters" VIEWTYPE="CHECKBOX"/>
</SET>
</SET>
<SET CLASS="FILTER_GROUP" ID="By Interface Type" IS_EXPANDED="TRUE">
<VARIABLE NAME="By Interface Type" VALUE="By Interface Type" VIEWDISP="Bus Interface Filters" VIEWTYPE="STATIC"/>
<SET CLASS="FILTER" ID="Slaves" ROW_INDEX="0">
<VARIABLE IS_LABELED="TRUE" NAME="Slaves" VALUE="TRUE" VIEWDISP="Bus Interface Filters" VIEWTYPE="CHECKBOX"/>
</SET>
<SET CLASS="FILTER" ID="Masters" ROW_INDEX="1">
<VARIABLE IS_LABELED="TRUE" NAME="Masters" VALUE="TRUE" VIEWDISP="Bus Interface Filters" VIEWTYPE="CHECKBOX"/>
</SET>
<SET CLASS="FILTER" ID="Master Slaves" ROW_INDEX="2">
<VARIABLE IS_LABELED="TRUE" NAME="Master Slaves" VALUE="TRUE" VIEWDISP="Bus Interface Filters" VIEWTYPE="CHECKBOX"/>
</SET>
<SET CLASS="FILTER" ID="Monitors" ROW_INDEX="3">
<VARIABLE IS_LABELED="TRUE" NAME="Monitors" VALUE="TRUE" VIEWDISP="Bus Interface Filters" VIEWTYPE="CHECKBOX"/>
</SET>
<SET CLASS="FILTER" ID="Targets" ROW_INDEX="4">
<VARIABLE IS_LABELED="TRUE" NAME="Targets" VALUE="TRUE" VIEWDISP="Bus Interface Filters" VIEWTYPE="CHECKBOX"/>
</SET>
<SET CLASS="FILTER" ID="Initiators" ROW_INDEX="5">
<VARIABLE IS_LABELED="TRUE" NAME="Initiators" VALUE="TRUE" VIEWDISP="Bus Interface Filters" VIEWTYPE="CHECKBOX"/>
</SET>
</SET>
</SET>
<SET CLASS="PROJECT" VIEW_ID="PORT">
<HEADERS HSCROLL="0" VSCROLL="0">
<VARIABLE COL_INDEX="0" COL_WIDTH="400" IS_VISIBLE="TRUE" VIEWDISP="Port Filters" VIEWTYPE="HEADER"/>
</HEADERS>
<SET CLASS="FILTER_GROUP" ID="By Interface" IS_EXPANDED="TRUE">
<VARIABLE NAME="By Interface" VALUE="By Interface" VIEWDISP="Port Filters" VIEWTYPE="STATIC"/>
<SET CLASS="FILTER" ID="BUS" ROW_INDEX="0">
<VARIABLE IS_LABELED="TRUE" NAME="BUS" VALUE="TRUE" VIEWDISP="Port Filters" VIEWTYPE="CHECKBOX"/>
</SET>
<SET CLASS="FILTER" ID="IO" ROW_INDEX="1">
<VARIABLE IS_LABELED="TRUE" NAME="IO" VALUE="TRUE" VIEWDISP="Port Filters" VIEWTYPE="CHECKBOX"/>
</SET>
</SET>
<SET CLASS="FILTER_GROUP" ID="By Connection" IS_EXPANDED="TRUE">
<VARIABLE NAME="By Connection" VALUE="By Connection" VIEWDISP="Port Filters" VIEWTYPE="STATIC"/>
<SET CLASS="FILTER" ID="Defaults" ROW_INDEX="0">
<VARIABLE IS_LABELED="TRUE" NAME="Defaults" VALUE="FALSE" VIEWDISP="Port Filters" VIEWTYPE="CHECKBOX"/>
</SET>
<SET CLASS="FILTER" ID="Connected" ROW_INDEX="1">
<VARIABLE IS_LABELED="TRUE" NAME="Connected" VALUE="TRUE" VIEWDISP="Port Filters" VIEWTYPE="CHECKBOX"/>
</SET>
<SET CLASS="FILTER" ID="Unconnected" ROW_INDEX="2">
<VARIABLE IS_LABELED="TRUE" NAME="Unconnected" VALUE="TRUE" VIEWDISP="Port Filters" VIEWTYPE="CHECKBOX"/>
</SET>
</SET>
<SET CLASS="FILTER_GROUP" ID="By Class" IS_EXPANDED="TRUE">
<VARIABLE COL_INDEX="0" NAME="By Class" VALUE="By Class" VIEWDISP="Port Filters" VIEWTYPE="STATIC"/>
<SET CLASS="FILTER" ID="Clocks Only" ROW_INDEX="0">
<VARIABLE NAME="Clocks Only" VALUE="Clocks Only" VIEWDISP="Port Filters" VIEWTYPE="BUTTON"/>
</SET>
<SET CLASS="FILTER" ID="Clocks" ROW_INDEX="1">
<VARIABLE IS_LABELED="TRUE" NAME="Clocks" VALUE="TRUE" VIEWDISP="Port Filters" VIEWTYPE="CHECKBOX"/>
</SET>
<SET CLASS="FILTER" ID="Resets Only" ROW_INDEX="2">
<VARIABLE NAME="Resets Only" VALUE="Resets Only" VIEWDISP="Port Filters" VIEWTYPE="BUTTON"/>
</SET>
<SET CLASS="FILTER" ID="Resets" ROW_INDEX="3">
<VARIABLE IS_LABELED="TRUE" NAME="Resets" VALUE="TRUE" VIEWDISP="Port Filters" VIEWTYPE="CHECKBOX"/>
</SET>
<SET CLASS="FILTER" ID="Interrupts Only" ROW_INDEX="4">
<VARIABLE NAME="Interrupts Only" VALUE="Interrupts Only" VIEWDISP="Port Filters" VIEWTYPE="BUTTON"/>
</SET>
<SET CLASS="FILTER" ID="Interrupts" ROW_INDEX="5">
<VARIABLE IS_LABELED="TRUE" NAME="Interrupts" VALUE="TRUE" VIEWDISP="Port Filters" VIEWTYPE="CHECKBOX"/>
</SET>
<SET CLASS="FILTER" ID="Others" ROW_INDEX="6">
<VARIABLE IS_LABELED="TRUE" NAME="Others" VALUE="TRUE" VIEWDISP="Port Filters" VIEWTYPE="CHECKBOX"/>
</SET>
</SET>
<SET CLASS="FILTER_GROUP" ID="By Direction" IS_EXPANDED="TRUE">
<VARIABLE NAME="By Direction" VALUE="By Direction" VIEWDISP="Port Filters" VIEWTYPE="STATIC"/>
<SET CLASS="FILTER" ID="Inputs" ROW_INDEX="0">
<VARIABLE IS_LABELED="TRUE" NAME="Inputs" VALUE="TRUE" VIEWDISP="Port Filters" VIEWTYPE="CHECKBOX"/>
</SET>
<SET CLASS="FILTER" ID="Outputs" ROW_INDEX="1">
<VARIABLE IS_LABELED="TRUE" NAME="Outputs" VALUE="TRUE" VIEWDISP="Port Filters" VIEWTYPE="CHECKBOX"/>
</SET>
<SET CLASS="FILTER" ID="InOuts" ROW_INDEX="2">
<VARIABLE IS_LABELED="TRUE" NAME="InOuts" VALUE="TRUE" VIEWDISP="Port Filters" VIEWTYPE="CHECKBOX"/>
</SET>
</SET>
</SET>
</FILTERS>

@ -1,237 +0,0 @@
<SETTINGS>
<IDENTIFICATION VERSION="1.2" XTLVERSION="1.2"/>
<SET CLASS="PROJECT" DISPLAYMODE="TREE" VIEW_ID="BUSINTERFACE">
<HEADERS HSCROLL="0" VSCROLL="0">
<VARIABLE COL_INDEX="0" COL_WIDTH="237" IS_VISIBLE="TRUE" VIEWDISP="Name" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="1" COL_WIDTH="100" IS_VISIBLE="TRUE" VIEWDISP="Bus Name" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="2" IS_VISIBLE="FALSE" VIEWDISP="Bus Standard" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="3" COL_WIDTH="100" IS_VISIBLE="TRUE" VIEWDISP="IP Type" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="4" COL_WIDTH="421" IS_VISIBLE="TRUE" VIEWDISP="IP Version" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="5" IS_VISIBLE="FALSE" VIEWDISP="IP Classification" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="6" IS_VISIBLE="FALSE" VIEWDISP="Type" VIEWTYPE="HEADER"/>
</HEADERS>
<SPLITTERS COLLAPSIBLE="1" HANDLEWIDTH="4" MARKER="255" ORIENTATION="1" RESIZE="1" SIZES="180,450,180" VERSION="0"/>
<SET ID="RS232_Uart_1" IS_EXPANDED="TRUE"/>
<SET ID="Ethernet_Lite" IS_EXPANDED="TRUE"/>
<STATUS>
<SELECTIONS>
<VARIABLE ID="Ethernet_Lite"/>
</SELECTIONS>
</STATUS>
<SEQUENCES IS_DEF_SEQUENCES="TRUE">
<VARIABLE ID="axi4_0" ROW_INDEX="0"/>
<VARIABLE ID="axi4lite_0" ROW_INDEX="1"/>
<VARIABLE ID="microblaze_0" ROW_INDEX="4"/>
<VARIABLE ID="microblaze_0_ilmb" ROW_INDEX="3"/>
<VARIABLE ID="microblaze_0_dlmb" ROW_INDEX="2"/>
<VARIABLE ID="microblaze_0_i_bram_ctrl" ROW_INDEX="7"/>
<VARIABLE ID="microblaze_0_d_bram_ctrl" ROW_INDEX="6"/>
<VARIABLE ID="microblaze_0_bram_block" ROW_INDEX="5"/>
<VARIABLE ID="proc_sys_reset_0" ROW_INDEX="17"/>
<VARIABLE ID="clock_generator_0" ROW_INDEX="16"/>
<VARIABLE ID="debug_module" ROW_INDEX="9"/>
<VARIABLE ID="RS232_Uart_1" IS_EXPANDED="TRUE" ROW_INDEX="15"/>
<VARIABLE ID="LEDs_4Bits" ROW_INDEX="12"/>
<VARIABLE ID="Push_Buttons_4Bits" ROW_INDEX="13"/>
<VARIABLE ID="MCB_DDR3" ROW_INDEX="8"/>
<VARIABLE ID="Ethernet_Lite" IS_EXPANDED="TRUE" ROW_INDEX="11"/>
<VARIABLE ID="axi_timer_0" ROW_INDEX="14"/>
<VARIABLE ID="microblaze_0_intc" ROW_INDEX="10"/>
</SEQUENCES>
</SET>
<SET CLASS="PROJECT" DISPLAYMODE="FOCUS_TREE" VIEW_ID="BUSINTERFACE">
<HEADERS>
<VARIABLE COL_INDEX="0" IS_VISIBLE="TRUE" VIEWDISP="Name" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="1" IS_VISIBLE="TRUE" VIEWDISP="Bus Name" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="2" IS_VISIBLE="FALSE" VIEWDISP="Bus Standard" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="3" IS_VISIBLE="TRUE" VIEWDISP="IP Type" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="4" IS_VISIBLE="TRUE" VIEWDISP="IP Version" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="5" IS_VISIBLE="FALSE" VIEWDISP="IP Classification" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="6" IS_VISIBLE="FALSE" VIEWDISP="Type" VIEWTYPE="HEADER"/>
</HEADERS>
<SPLITTERS COLLAPSIBLE="1" HANDLEWIDTH="4" MARKER="255" ORIENTATION="1" RESIZE="1" SIZES="180,450,180" VERSION="0"/>
</SET>
<SET CLASS="PROJECT" DISPLAYMODE="FLAT" VIEW_ID="BUSINTERFACE">
<HEADERS>
<VARIABLE COL_INDEX="0" IS_VISIBLE="TRUE" VIEWDISP="Instance" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="1" IS_VISIBLE="TRUE" VIEWDISP="Bus Interface" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="2" IS_VISIBLE="TRUE" VIEWDISP="Bus Name" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="3" IS_VISIBLE="FALSE" VIEWDISP="Bus Standard" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="4" IS_VISIBLE="TRUE" VIEWDISP="IP Type" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="5" IS_VISIBLE="TRUE" VIEWDISP="IP Version" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="6" IS_VISIBLE="FALSE" VIEWDISP="IP Classification" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="7" IS_VISIBLE="FALSE" VIEWDISP="Type" VIEWTYPE="HEADER"/>
</HEADERS>
<SPLITTERS COLLAPSIBLE="1" HANDLEWIDTH="4" MARKER="255" ORIENTATION="1" RESIZE="1" SIZES="180,450,180" VERSION="0"/>
</SET>
<SET CLASS="PROJECT" DISPLAYMODE="FOCUS_FLAT" VIEW_ID="BUSINTERFACE">
<HEADERS>
<VARIABLE COL_INDEX="0" IS_VISIBLE="TRUE" VIEWDISP="Instance" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="1" IS_VISIBLE="TRUE" VIEWDISP="Bus Interface" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="2" IS_VISIBLE="TRUE" VIEWDISP="Bus Name" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="3" IS_VISIBLE="FALSE" VIEWDISP="Bus Standard" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="4" IS_VISIBLE="TRUE" VIEWDISP="IP Type" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="5" IS_VISIBLE="TRUE" VIEWDISP="IP Version" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="6" IS_VISIBLE="FALSE" VIEWDISP="IP Classification" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="7" IS_VISIBLE="FALSE" VIEWDISP="Type" VIEWTYPE="HEADER"/>
</HEADERS>
<SPLITTERS COLLAPSIBLE="1" HANDLEWIDTH="4" MARKER="255" ORIENTATION="1" RESIZE="1" SIZES="180,450,180" VERSION="0"/>
</SET>
<SET CLASS="PROJECT" DISPLAYMODE="TREE" VIEW_ID="PORT">
<HEADERS HSCROLL="0" VSCROLL="144">
<VARIABLE COL_INDEX="0" COL_WIDTH="217" IS_VISIBLE="TRUE" VIEWDISP="Name" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="1" COL_WIDTH="652" IS_VISIBLE="TRUE" VIEWDISP="Net" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="2" COL_WIDTH="100" IS_VISIBLE="TRUE" VIEWDISP="Direction" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="3" COL_WIDTH="100" IS_VISIBLE="TRUE" VIEWDISP="Range" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="4" COL_WIDTH="100" IS_VISIBLE="TRUE" VIEWDISP="Class" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="5" COL_WIDTH="100" IS_VISIBLE="TRUE" VIEWDISP="Frequency(Hz)" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="6" COL_WIDTH="100" IS_VISIBLE="TRUE" VIEWDISP="Reset Polarity" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="7" COL_WIDTH="100" IS_VISIBLE="TRUE" VIEWDISP="Sensitivity" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="8" COL_WIDTH="100" IS_VISIBLE="TRUE" VIEWDISP="IP Type" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="9" IS_VISIBLE="FALSE" VIEWDISP="IP Version" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="10" IS_VISIBLE="TRUE" VIEWDISP="IP Classification" VIEWTYPE="HEADER"/>
</HEADERS>
<SPLITTERS COLLAPSIBLE="1" HANDLEWIDTH="4" MARKER="255" ORIENTATION="1" RESIZE="1" SIZES="0,630,180" VERSION="0"/>
<SET ID="microblaze_0" IS_EXPANDED="TRUE"/>
<SET ID="RS232_Uart_1" IS_EXPANDED="TRUE"/>
<SET ID="Push_Buttons_4Bits" IS_EXPANDED="TRUE"/>
<SET ID="Ethernet_Lite" IS_EXPANDED="TRUE">
<SET ID="ethernet_0" IS_EXPANDED="TRUE"/>
</SET>
<SET ID="microblaze_0_intc" IS_EXPANDED="TRUE">
<SET ID="S_AXI" IS_EXPANDED="TRUE"/>
</SET>
<STATUS>
<SELECTIONS/>
</STATUS>
<SEQUENCES IS_DEF_SEQUENCES="TRUE">
<VARIABLE ID="ExternalPorts" ROW_INDEX="0"/>
<VARIABLE ID="axi4_0" ROW_INDEX="1"/>
<VARIABLE ID="axi4lite_0" ROW_INDEX="2"/>
<VARIABLE ID="microblaze_0" IS_EXPANDED="TRUE" ROW_INDEX="5"/>
<VARIABLE ID="microblaze_0_ilmb" ROW_INDEX="4"/>
<VARIABLE ID="microblaze_0_dlmb" ROW_INDEX="3"/>
<VARIABLE ID="microblaze_0_i_bram_ctrl" ROW_INDEX="8"/>
<VARIABLE ID="microblaze_0_d_bram_ctrl" ROW_INDEX="7"/>
<VARIABLE ID="microblaze_0_bram_block" ROW_INDEX="6"/>
<VARIABLE ID="proc_sys_reset_0" ROW_INDEX="18"/>
<VARIABLE ID="clock_generator_0" ROW_INDEX="17"/>
<VARIABLE ID="debug_module" ROW_INDEX="10"/>
<VARIABLE ID="RS232_Uart_1" IS_EXPANDED="TRUE" ROW_INDEX="16"/>
<VARIABLE ID="LEDs_4Bits" ROW_INDEX="13"/>
<VARIABLE ID="Push_Buttons_4Bits" IS_EXPANDED="TRUE" ROW_INDEX="14"/>
<VARIABLE ID="MCB_DDR3" ROW_INDEX="9"/>
<VARIABLE ID="Ethernet_Lite" IS_EXPANDED="TRUE" ROW_INDEX="12"/>
<VARIABLE ID="axi_timer_0" ROW_INDEX="15"/>
<VARIABLE ID="microblaze_0_intc" IS_EXPANDED="TRUE" ROW_INDEX="11"/>
</SEQUENCES>
</SET>
<SET CLASS="PROJECT" DISPLAYMODE="FOCUS_TREE" VIEW_ID="PORT">
<HEADERS HSCROLL="0" VSCROLL="0">
<VARIABLE COL_INDEX="0" COL_WIDTH="100" IS_VISIBLE="TRUE" VIEWDISP="Name" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="1" COL_WIDTH="100" IS_VISIBLE="TRUE" VIEWDISP="Net" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="2" COL_WIDTH="100" IS_VISIBLE="TRUE" VIEWDISP="Direction" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="3" COL_WIDTH="100" IS_VISIBLE="TRUE" VIEWDISP="Range" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="4" COL_WIDTH="100" IS_VISIBLE="TRUE" VIEWDISP="Class" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="5" COL_WIDTH="100" IS_VISIBLE="TRUE" VIEWDISP="Frequency(Hz)" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="6" COL_WIDTH="100" IS_VISIBLE="TRUE" VIEWDISP="Reset Polarity" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="7" COL_WIDTH="192" IS_VISIBLE="TRUE" VIEWDISP="Sensitivity" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="8" COL_WIDTH="200" IS_VISIBLE="TRUE" VIEWDISP="IP Type" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="9" IS_VISIBLE="FALSE" VIEWDISP="IP Version" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="10" IS_VISIBLE="TRUE" VIEWDISP="IP Classification" VIEWTYPE="HEADER"/>
</HEADERS>
<SPLITTERS COLLAPSIBLE="1" HANDLEWIDTH="4" MARKER="255" ORIENTATION="1" RESIZE="1" SIZES="0,630,180" VERSION="0"/>
<SET ID="microblaze_0_intc" IS_EXPANDED="TRUE"/>
<STATUS>
<SELECTIONS>
<VARIABLE ID="microblaze_0_intc"/>
</SELECTIONS>
</STATUS>
</SET>
<SET CLASS="PROJECT" DISPLAYMODE="FLAT" VIEW_ID="PORT">
<HEADERS>
<VARIABLE COL_INDEX="0" IS_VISIBLE="TRUE" VIEWDISP="Instance" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="1" IS_VISIBLE="TRUE" VIEWDISP="Port Name" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="2" IS_VISIBLE="TRUE" VIEWDISP="Net" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="3" IS_VISIBLE="TRUE" VIEWDISP="Direction" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="4" IS_VISIBLE="TRUE" VIEWDISP="Range" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="5" IS_VISIBLE="TRUE" VIEWDISP="Class" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="6" IS_VISIBLE="TRUE" VIEWDISP="Frequency(Hz)" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="7" IS_VISIBLE="TRUE" VIEWDISP="Reset Polarity" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="8" IS_VISIBLE="TRUE" VIEWDISP="Sensitivity" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="9" IS_VISIBLE="TRUE" VIEWDISP="IP Type" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="10" IS_VISIBLE="FALSE" VIEWDISP="IP Version" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="11" IS_VISIBLE="TRUE" VIEWDISP="IP Classification" VIEWTYPE="HEADER"/>
</HEADERS>
<SPLITTERS COLLAPSIBLE="1" HANDLEWIDTH="4" MARKER="255" ORIENTATION="1" RESIZE="1" SIZES="0,630,180" VERSION="0"/>
</SET>
<SET CLASS="PROJECT" DISPLAYMODE="FOCUS_FLAT" VIEW_ID="PORT">
<HEADERS>
<VARIABLE COL_INDEX="0" IS_VISIBLE="TRUE" VIEWDISP="Instance" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="1" IS_VISIBLE="TRUE" VIEWDISP="Port Name" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="2" IS_VISIBLE="TRUE" VIEWDISP="Net" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="3" IS_VISIBLE="TRUE" VIEWDISP="Direction" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="4" IS_VISIBLE="TRUE" VIEWDISP="Range" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="5" IS_VISIBLE="TRUE" VIEWDISP="Class" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="6" IS_VISIBLE="TRUE" VIEWDISP="Frequency(Hz)" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="7" IS_VISIBLE="TRUE" VIEWDISP="Reset Polarity" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="8" IS_VISIBLE="TRUE" VIEWDISP="Sensitivity" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="9" IS_VISIBLE="TRUE" VIEWDISP="IP Type" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="10" IS_VISIBLE="FALSE" VIEWDISP="IP Version" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="11" IS_VISIBLE="TRUE" VIEWDISP="IP Classification" VIEWTYPE="HEADER"/>
</HEADERS>
<SPLITTERS COLLAPSIBLE="1" HANDLEWIDTH="4" MARKER="255" ORIENTATION="1" RESIZE="1" SIZES="0,630,180" VERSION="0"/>
</SET>
<SET CLASS="PROJECT" DISPLAYMODE="TREE" VIEW_ID="ADDRESS">
<HEADERS HSCROLL="0" VSCROLL="0">
<VARIABLE COL_INDEX="0" COL_WIDTH="200" IS_VISIBLE="TRUE" VIEWDISP="Instance" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="1" COL_WIDTH="100" IS_VISIBLE="TRUE" VIEWDISP="Base Name" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="2" COL_WIDTH="100" IS_VISIBLE="TRUE" VIEWDISP="Base Address" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="3" COL_WIDTH="100" IS_VISIBLE="TRUE" VIEWDISP="High Address" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="4" COL_WIDTH="100" IS_VISIBLE="TRUE" VIEWDISP="Size" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="5" COL_WIDTH="105" IS_VISIBLE="TRUE" VIEWDISP="Bus Interface(s)" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="6" COL_WIDTH="100" IS_VISIBLE="TRUE" VIEWDISP="Bus Name" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="7" IS_VISIBLE="FALSE" VIEWDISP="ICache" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="8" IS_VISIBLE="FALSE" VIEWDISP="DCache" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="8" IS_VISIBLE="FALSE" VIEWDISP="IP Type" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="10" IS_VISIBLE="FALSE" VIEWDISP="IP Version" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="7" IS_VISIBLE="FALSE" VIEWDISP="Address Type" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="9" COL_WIDTH="605" IS_VISIBLE="TRUE" VIEWDISP="Lock" VIEWTYPE="HEADER"/>
</HEADERS>
<SPLITTERS COLLAPSIBLE="1" HANDLEWIDTH="4" MARKER="255" ORIENTATION="1" RESIZE="1" SIZES="0,630,180" VERSION="0"/>
<SET ID="microblaze_0" IS_EXPANDED="TRUE"/>
<STATUS>
<SELECTIONS/>
</STATUS>
</SET>
<SET CLASS="PROJECT" DISPLAYMODE="FLAT" VIEW_ID="ADDRESS">
<HEADERS>
<VARIABLE COL_INDEX="0" IS_VISIBLE="TRUE" VIEWDISP="Instance" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="1" IS_VISIBLE="TRUE" VIEWDISP="Base Name" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="2" IS_VISIBLE="TRUE" VIEWDISP="Base Address" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="3" IS_VISIBLE="TRUE" VIEWDISP="High Address" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="4" IS_VISIBLE="TRUE" VIEWDISP="Size" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="5" IS_VISIBLE="TRUE" VIEWDISP="Bus Interface(s)" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="6" IS_VISIBLE="TRUE" VIEWDISP="Bus Name" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="7" IS_VISIBLE="FALSE" VIEWDISP="ICache" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="8" IS_VISIBLE="FALSE" VIEWDISP="DCache" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="9" IS_VISIBLE="FALSE" VIEWDISP="IP Type" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="10" IS_VISIBLE="FALSE" VIEWDISP="IP Version" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="11" IS_VISIBLE="FALSE" VIEWDISP="Address Type" VIEWTYPE="HEADER"/>
<VARIABLE COL_INDEX="12" IS_VISIBLE="TRUE" VIEWDISP="Lock" VIEWTYPE="HEADER"/>
</HEADERS>
</SET>
</SETTINGS>

@ -1 +0,0 @@
<1D>トョメ<EFBDAE>tヲハ隰ハ蓙メ゙ワ@Dbb\b\`bDv*<2A>トョメ<EFBDAE>tヲハ閼゙ツ菠@D<>リメワ<EFBE92>ニ゙レD@D赳l`jD@D<>v.<2E>トョメ<EFBDAE>tェ猜ツ靆<EFBE82>ツ菠@Dう<44>暢恰ィェ、灰@D赳ツ蒻ツワlDv.<2E>トョメ<EFBDAE>tェ猜ツ靆<EFBE82>ツ菠@D<>ャ中汗ヲ超灰@D<>l齎<6C>j錺v'<27>トョメ<EFBDAE>tェ猜ツ靆<EFBE82>ツ菠@D<>魔至D@DフホホhphDv'<27>トョメ<EFBDAE>tェ猜ツ靆<EFBE82>ツ菠@D、ヲィセ<EFBDA8>椈う暢イD@DbDv&<26>トョメ<EFBDAE>tェ猜ツ靆<EFBE82>ツ菠@Dヲ<44><EFBFBD>灰@DZfDv%<25>トョメ<EFBDAE>tヲハ隕<EFBE8A>靆レ@Dレトセツ<EFBDBE>セb<EFBDBE>D@Db\`Dv;<3B>トョメ<EFBDAE>tェ猜ツ靆ヲ<E99D86>靆レ@D<>ヨセ御ハ礇@Dd````````D@Dレメニ葯トリツ<EFBE98>セ`Dv@<40>トョメ<EFBDAE>tなネ<E381AA>葯ニハ跏゙隋Dレメニ葯トリツ<EFBE98>セ`D@Dレメニ葯トリツ<EFBE98>D@Dレメニ葯トリツ<EFBE98>セ`DvH<76>トョメ<EFBDAE>tェ猜ツ靆<EFBE82>レ玻ワハワ錙Dレメニ葯トリツ<EFBE98>セ`D@Dネツ霙セニツニミハセレハレセリメ跖D@D嚀╂<E59A80>、fDvA<76>トョメ<EFBDAE>tェ猜ツ靆<EFBE82>レ玻ワハワ錙Dレメニ葯トリツ<EFBE98>セ`D@Dネツ霙セニツニミハセ贅<EFBDBE>D@DblfphDvI<76>トョメ<EFBDAE>tェ猜ツ靆<EFBE82>レ玻ワハワ錙Dレメニ葯トリツ<EFBE98>セ`D@Dメワ跖萓ニツニミハセレハレセリメ跖D@D嚀╂<E59A80>、fDvB<76>トョメ<EFBDAE>tェ猜ツ靆<EFBE82>レ玻ワハワ錙Dレメニ葯トリツ<EFBE98>セ`D@Dメワ跖萓ニツニミハセ贅<EFBDBE>D@DblfphDvH<76>トョメ<EFBDAE>tェ猜ツ靆<EFBE82>レ玻ワハワ錙Dレメニ葯トリツ<EFBE98>セ`D@Dレトセニリ゙ニヨセフ萍粲ハワニ<EFBE9C>@Db````````Dv><3E>トョメ<EFBDAE>tェ猜ツ靆<EFBE82>レ玻ワハワ錙Dレメニ葯トリツ<EFBE98>セ`D@Dレトセフ瑕セハワツトリハD@Dィ、ェ灰vE<76>トョメ<EFBDAE>tェ猜ツ靆<EFBE82>レ玻ワハワ錙Dレメニ葯トリツ<EFBE98>セ`D@Dレトセリ゙ニツリセレハレ゙蔗セ贅<EFBDBE>D@DpbrdDvH<76>トョメ<EFBDAE>tなネ<E381AA>ハ萪獎ハ萃リ@D願ミハ葆ハ霎來靆D@Dツ<44>セハ靤ハ葆ハ靼メ靆D@Dレメニ葯トリツ<EFBE98>セ`DvB<76>トョメ<EFBDAE>tェ猜ツ靆<EFBE82>レ玻ワハワ錙D願ミハ葆ハ霎來靆D@D<>ハセメワ靆蒿<E99D86>霎メネD@Dィ、ェ灰v=<3D>トョメ<EFBDAE>tなネ<E381AA>ハ萪獎ハ萃リ@D<>域セh<EFBDBE>韆D@Dツ<44>セホ默゙D@Dレメニ葯トリツ<EFBE98>セ`Dv@<40>トョメ<EFBDAE>tェ猜ツ靆<EFBE82>レ玻ワハワ錙D<E98C99>域セh<EFBDBE>韆D@D<>ハセメワ靆蒿<E99D86>霎メネD@D撃丿灰v><3E>トョメ<EFBDAE>tなネ<E381AA>ハ萪獎ハ萃リ@D嚀╂<E59A80>、fD@Dツ<44>セ詬セネネ蓿D@Dレメニ葯トリツ<EFBE98>セ`DvE<76>トョメ<EFBDAE>tなネ<E381AA>ハ萪獎ハ萃リ@D<><44>ミセ<EFBE90>韋゙ワ貔h<E8B294>韆D@Dツ<44>セホ默゙D@Dレメニ葯トリツ<EFBE98>セ`DvG<76>トョメ<EFBDAE>tェ猜ツ靆<EFBE82>レ玻ワハワ錙D<E98C99><44>ミセ<EFBE90>韋゙ワ貔h<E8B294>韆D@D<>ハセメワ靆蒿<E99D86>霎メネD@Dィ、ェ灰vC<76>トョメ<EFBDAE>tなネ<E381AA>ハ萪獎ハ萃リ@D、ヲdfdセェツ蒻セbD@Dツ<44><EFBFBD>蒻リメ靆D@Dレメニ葯トリツ<EFBE98>セ`DvC<76>トョメ<EFBDAE>tェ猜ツ靆<EFBE82>レ玻ワハワ錙D、ヲdfdセェツ蒻セbD@D<>蒻セ`セトツ<EFBE84>セ萃靆D@Dbbjd``Dv><3E>トョメ<EFBDAE>tェ猜ツ靆<EFBE82>レ玻ワハワ錙D、ヲdfdセェツ蒻セbD@D<>蒻セ`セネツ霙霻ネ靤D@DpDv><3E>トョメ<EFBDAE>tェ猜ツ靆<EFBE82>レ玻ワハワ錙D、ヲdfdセェツ蒻セbD@D<>蒻セ`セ狡萪頸D@DヷワハDvA<76>トョメ<EFBDAE>tェ猜ツ靆<EFBE82>レ玻ワハワ錙D、ヲdfdセェツ蒻セbD@D<>ハセメワ靆蒿<E99D86>霎メネD@Dィ、ェ灰v?<3F>トョメ<EFBDAE>tなネ<E381AA>ハ萪獎ハ萃リ@Dツ<44>セ靨レハ萓`D@Dツ<44>セ靨レハ腑@Dレメニ葯トリツ<EFBE98>セ`Dv@<40>トョメ<EFBDAE>tェ猜ツ靆<EFBE82>レ玻ワハワ錙Dツ<44>セ靨レハ萓`D@D<>ハセメワ靆蒿<E99D86>霎メネD@Dィ、ェ灰v

@ -1,216 +0,0 @@
#################################################################
# Makefile generated by Xilinx Platform Studio
# Project:C:\E\Dev\FreeRTOS\WorkingCopy\Demo\MicroBlaze_Spartan-6_EthernetLite\PlatformStudioProject\system.xmp
#
# WARNING : This file will be re-generated every time a command
# to run a make target is invoked. So, any changes made to this
# file manually, will be lost when make is invoked next.
#################################################################
# Name of the Microprocessor system
# The hardware specification of the system is in file :
# C:\E\Dev\FreeRTOS\WorkingCopy\Demo\MicroBlaze_Spartan-6_EthernetLite\PlatformStudioProject\system.mhs
include system_incl.make
#################################################################
# PHONY TARGETS
#################################################################
.PHONY: dummy
.PHONY: netlistclean
.PHONY: bitsclean
.PHONY: simclean
.PHONY: exporttosdk
#################################################################
# EXTERNAL TARGETS
#################################################################
all:
@echo "Makefile to build a Microprocessor system :"
@echo "Run make with any of the following targets"
@echo " "
@echo " netlist : Generates the netlist for the given MHS "
@echo " bits : Runs Implementation tools to generate the bitstream"
@echo " exporttosdk: Export files to SDK"
@echo " "
@echo " init_bram: Initializes bitstream with BRAM data"
@echo " ace : Generate ace file from bitstream and elf"
@echo " download : Downloads the bitstream onto the board"
@echo " "
@echo " sim : Generates HDL simulation models and runs simulator for chosen simulation mode"
@echo " simmodel : Generates HDL simulation models for chosen simulation mode"
@echo " "
@echo " netlistclean: Deletes netlist"
@echo " bitsclean: Deletes bit, ncd, bmm files"
@echo " hwclean : Deletes implementation dir"
@echo " simclean : Deletes simulation dir"
@echo " clean : Deletes all generated files/directories"
@echo " "
bits: $(SYSTEM_BIT)
ace: $(SYSTEM_ACE)
exporttosdk: $(SYSTEM_HW_HANDOFF_DEP)
netlist: $(POSTSYN_NETLIST)
download: $(DOWNLOAD_BIT) dummy
@echo "*********************************************"
@echo "Downloading Bitstream onto the target board"
@echo "*********************************************"
impact -batch etc/download.cmd
init_bram: $(DOWNLOAD_BIT)
sim: $(DEFAULT_SIM_SCRIPT)
cd simulation/behavioral & \
system_fuse.cmd
cd simulation/behavioral & \
start /B $(SIM_CMD) -gui -tclbatch system_setup.tcl
simmodel: $(DEFAULT_SIM_SCRIPT)
behavioral_model: $(BEHAVIORAL_SIM_SCRIPT)
structural_model: $(STRUCTURAL_SIM_SCRIPT)
clean: hwclean simclean
rm -f _impact.cmd
hwclean: netlistclean bitsclean
rm -rf implementation synthesis xst hdl
rm -rf xst.srp $(SYSTEM).srp
rm -f __xps/ise/_xmsgs/bitinit.xmsgs
netlistclean:
rm -f $(POSTSYN_NETLIST)
rm -f platgen.log
rm -f __xps/ise/_xmsgs/platgen.xmsgs
rm -f $(BMM_FILE)
bitsclean:
rm -f $(SYSTEM_BIT)
rm -f implementation/$(SYSTEM).ncd
rm -f implementation/$(SYSTEM)_bd.bmm
rm -f implementation/$(SYSTEM)_map.ncd
rm -f implementation/download.bit
rm -f __xps/$(SYSTEM)_routed
simclean:
rm -rf simulation/behavioral
rm -f simgen.log
rm -f __xps/ise/_xmsgs/simgen.xmsgs
#################################################################
# BOOTLOOP ELF FILES
#################################################################
$(MICROBLAZE_0_BOOTLOOP): $(MICROBLAZE_BOOTLOOP_LE)
IF NOT EXIST "$(BOOTLOOP_DIR)" @mkdir "$(BOOTLOOP_DIR)"
cp -f $(MICROBLAZE_BOOTLOOP_LE) $(MICROBLAZE_0_BOOTLOOP)
#################################################################
# HARDWARE IMPLEMENTATION FLOW
#################################################################
$(BMM_FILE) \
$(WRAPPER_NGC_FILES): $(MHSFILE) __xps/platgen.opt \
$(CORE_STATE_DEVELOPMENT_FILES)
@echo "****************************************************"
@echo "Creating system netlist for hardware specification.."
@echo "****************************************************"
platgen $(PLATGEN_OPTIONS) $(MHSFILE)
$(POSTSYN_NETLIST): $(WRAPPER_NGC_FILES)
@echo "Running synthesis..."
cd synthesis & synthesis.cmd
__xps/$(SYSTEM)_routed: $(FPGA_IMP_DEPENDENCY)
@echo "*********************************************"
@echo "Running Xilinx Implementation tools.."
@echo "*********************************************"
@cp -f $(UCF_FILE) implementation/$(SYSTEM).ucf
@cp -f etc/fast_runtime.opt implementation/xflow.opt
xflow -wd implementation -p $(DEVICE) -implement xflow.opt $(SYSTEM).ngc
touch __xps/$(SYSTEM)_routed
$(SYSTEM_BIT): __xps/$(SYSTEM)_routed $(BITGEN_UT_FILE)
xilperl $(XILINX_EDK_DIR)/data/fpga_impl/observe_par.pl $(OBSERVE_PAR_OPTIONS) implementation/$(SYSTEM).par
@echo "*********************************************"
@echo "Running Bitgen.."
@echo "*********************************************"
@cp -f $(BITGEN_UT_FILE) implementation/bitgen.ut
cd implementation & bitgen -w -f bitgen.ut $(SYSTEM) & cd ..
$(DOWNLOAD_BIT): $(SYSTEM_BIT) $(BRAMINIT_ELF_IMP_FILES) __xps/bitinit.opt
@cp -f implementation/$(SYSTEM)_bd.bmm .
@echo "*********************************************"
@echo "Initializing BRAM contents of the bitstream"
@echo "*********************************************"
bitinit -p $(DEVICE) $(MHSFILE) $(SEARCHPATHOPT) $(BRAMINIT_ELF_IMP_FILE_ARGS) \
-bt $(SYSTEM_BIT) -o $(DOWNLOAD_BIT)
@rm -f $(SYSTEM)_bd.bmm
$(SYSTEM_ACE):
@echo "In order to generate ace file, you must have:-"
@echo "- exactly one processor."
@echo "- opb_mdm, if using microblaze."
#################################################################
# EXPORT_TO_SDK FLOW
#################################################################
$(SYSTEM_HW_HANDOFF): $(MHSFILE) __xps/platgen.opt
IF NOT EXIST "$(SDK_EXPORT_DIR)" @mkdir "$(SDK_EXPORT_DIR)"
psf2Edward -inp $(SYSTEM).xmp -exit_on_error -edwver 1.2 -xml $(SDK_EXPORT_DIR)/$(SYSTEM).xml $(GLOBAL_SEARCHPATHOPT)
xdsgen -inp $(SYSTEM).xmp -report $(SDK_EXPORT_DIR)/$(SYSTEM).html $(GLOBAL_SEARCHPATHOPT) -make_docs_local
$(SYSTEM_HW_HANDOFF_BIT): $(SYSTEM_BIT)
@rm -rf $(SYSTEM_HW_HANDOFF_BIT)
@cp -f $(SYSTEM_BIT) $(SDK_EXPORT_DIR)
$(SYSTEM_HW_HANDOFF_BMM): implementation/$(SYSTEM)_bd.bmm
@rm -rf $(SYSTEM_HW_HANDOFF_BMM)
@cp -f implementation/$(SYSTEM)_bd.bmm $(SDK_EXPORT_DIR)
#################################################################
# SIMULATION FLOW
#################################################################
################## BEHAVIORAL SIMULATION ##################
$(BEHAVIORAL_SIM_SCRIPT): $(MHSFILE) __xps/simgen.opt \
$(BRAMINIT_ELF_SIM_FILES)
@echo "*********************************************"
@echo "Creating behavioral simulation models..."
@echo "*********************************************"
simgen $(SIMGEN_OPTIONS) -m behavioral $(MHSFILE)
################## STRUCTURAL SIMULATION ##################
$(STRUCTURAL_SIM_SCRIPT): $(WRAPPER_NGC_FILES) __xps/simgen.opt \
$(BRAMINIT_ELF_SIM_FILES)
@echo "*********************************************"
@echo "Creating structural simulation models..."
@echo "*********************************************"
simgen $(SIMGEN_OPTIONS) -sd implementation -m structural $(MHSFILE)
################## TIMING SIMULATION ##################
implementation/$(SYSTEM).ncd: __xps/$(SYSTEM)_routed
$(TIMING_SIM_SCRIPT): implementation/$(SYSTEM).ncd __xps/simgen.opt \
$(BRAMINIT_ELF_SIM_FILES)
@echo "*********************************************"
@echo "Creating timing simulation models..."
@echo "*********************************************"
simgen $(SIMGEN_OPTIONS) -sd implementation -m timing $(MHSFILE)
dummy:
@echo ""

@ -1,387 +0,0 @@
# ##############################################################################
# Created by Base System Builder Wizard for Xilinx EDK 13.1 Build EDK_O.40d
# Mon May 30 21:43:34 2011
# Target Board: xilinx.com sp605 Rev C
# Family: spartan6
# Device: xc6slx45t
# Package: fgg484
# Speed Grade: -3
# ##############################################################################
PARAMETER VERSION = 2.1.0
PORT RESET = RESET, DIR = I, SIGIS = RST, RST_POLARITY = 1
PORT CLK_P = CLK, DIR = I, DIFFERENTIAL_POLARITY = P, SIGIS = CLK, CLK_FREQ = 200000000
PORT CLK_N = CLK, DIR = I, DIFFERENTIAL_POLARITY = N, SIGIS = CLK, CLK_FREQ = 200000000
PORT RS232_Uart_1_sout = RS232_Uart_1_sout, DIR = O
PORT RS232_Uart_1_sin = RS232_Uart_1_sin, DIR = I
PORT LEDs_4Bits_TRI_O = LEDs_4Bits_TRI_O, DIR = O, VEC = [0:3]
PORT Push_Buttons_4Bits_TRI_I = Push_Buttons_4Bits_TRI_I, DIR = I, VEC = [3:0]
PORT mcbx_dram_clk = mcbx_dram_clk, DIR = O
PORT mcbx_dram_clk_n = mcbx_dram_clk_n, DIR = O
PORT mcbx_dram_cke = mcbx_dram_cke, DIR = O
PORT mcbx_dram_odt = mcbx_dram_odt, DIR = O
PORT mcbx_dram_ras_n = mcbx_dram_ras_n, DIR = O
PORT mcbx_dram_cas_n = mcbx_dram_cas_n, DIR = O
PORT mcbx_dram_we_n = mcbx_dram_we_n, DIR = O
PORT mcbx_dram_udm = mcbx_dram_udm, DIR = O
PORT mcbx_dram_ldm = mcbx_dram_ldm, DIR = O
PORT mcbx_dram_ba = mcbx_dram_ba, DIR = O, VEC = [2:0]
PORT mcbx_dram_addr = mcbx_dram_addr, DIR = O, VEC = [12:0]
PORT mcbx_dram_ddr3_rst = mcbx_dram_ddr3_rst, DIR = O
PORT mcbx_dram_dq = mcbx_dram_dq, DIR = IO, VEC = [15:0]
PORT mcbx_dram_dqs = mcbx_dram_dqs, DIR = IO
PORT mcbx_dram_dqs_n = mcbx_dram_dqs_n, DIR = IO
PORT mcbx_dram_udqs = mcbx_dram_udqs, DIR = IO
PORT mcbx_dram_udqs_n = mcbx_dram_udqs_n, DIR = IO
PORT rzq = rzq, DIR = IO
PORT zio = zio, DIR = IO
PORT Ethernet_Lite_MDIO = Ethernet_Lite_MDIO, DIR = IO
PORT Ethernet_Lite_MDC = Ethernet_Lite_MDC, DIR = O
PORT Ethernet_Lite_TXD = Ethernet_Lite_TXD, DIR = O, VEC = [3:0]
PORT Ethernet_Lite_TX_EN = Ethernet_Lite_TX_EN, DIR = O
PORT Ethernet_Lite_TX_CLK = Ethernet_Lite_TX_CLK, DIR = I
PORT Ethernet_Lite_COL = Ethernet_Lite_COL, DIR = I
PORT Ethernet_Lite_RXD = Ethernet_Lite_RXD, DIR = I, VEC = [3:0]
PORT Ethernet_Lite_RX_ER = Ethernet_Lite_RX_ER, DIR = I
PORT Ethernet_Lite_RX_CLK = Ethernet_Lite_RX_CLK, DIR = I
PORT Ethernet_Lite_CRS = Ethernet_Lite_CRS, DIR = I
PORT Ethernet_Lite_RX_DV = Ethernet_Lite_RX_DV, DIR = I
PORT Ethernet_Lite_PHY_RST_N = Ethernet_Lite_PHY_RST_N, DIR = O
BEGIN axi_interconnect
PARAMETER INSTANCE = axi4_0
PARAMETER HW_VER = 1.02.a
PORT interconnect_aclk = clk_100_0000MHzPLL0
PORT INTERCONNECT_ARESETN = proc_sys_reset_0_Interconnect_aresetn
END
BEGIN axi_interconnect
PARAMETER INSTANCE = axi4lite_0
PARAMETER HW_VER = 1.02.a
PARAMETER C_INTERCONNECT_CONNECTIVITY_MODE = 0
PORT INTERCONNECT_ARESETN = proc_sys_reset_0_Interconnect_aresetn
PORT INTERCONNECT_ACLK = clk_50_0000MHzPLL0
END
BEGIN microblaze
PARAMETER INSTANCE = microblaze_0
PARAMETER HW_VER = 8.10.a
PARAMETER C_INTERCONNECT = 2
PARAMETER C_USE_BARREL = 1
PARAMETER C_USE_FPU = 1
PARAMETER C_DEBUG_ENABLED = 1
PARAMETER C_ICACHE_BASEADDR = 0xc0000000
PARAMETER C_ICACHE_HIGHADDR = 0xc7ffffff
PARAMETER C_USE_ICACHE = 1
PARAMETER C_ICACHE_ALWAYS_USED = 1
PARAMETER C_DCACHE_BASEADDR = 0xc0000000
PARAMETER C_DCACHE_HIGHADDR = 0xc7ffffff
PARAMETER C_USE_DCACHE = 1
PARAMETER C_DCACHE_ALWAYS_USED = 1
PARAMETER C_INTERCONNECT_M_AXI_DC_AW_REGISTER = 1
PARAMETER C_INTERCONNECT_M_AXI_DC_W_REGISTER = 1
PARAMETER C_INTERCONNECT_M_AXI_DP_AW_REGISTER = 1
PARAMETER C_INTERCONNECT_M_AXI_DP_AR_REGISTER = 1
PARAMETER C_INTERCONNECT_M_AXI_DP_W_REGISTER = 1
PARAMETER C_INTERCONNECT_M_AXI_DP_R_REGISTER = 1
PARAMETER C_INTERCONNECT_M_AXI_DP_B_REGISTER = 1
PARAMETER C_INTERCONNECT_M_AXI_DC_AR_REGISTER = 1
PARAMETER C_INTERCONNECT_M_AXI_DC_R_REGISTER = 1
PARAMETER C_INTERCONNECT_M_AXI_DC_B_REGISTER = 1
PARAMETER C_INTERCONNECT_M_AXI_IC_AW_REGISTER = 1
PARAMETER C_INTERCONNECT_M_AXI_IC_AR_REGISTER = 1
PARAMETER C_INTERCONNECT_M_AXI_IC_W_REGISTER = 1
PARAMETER C_INTERCONNECT_M_AXI_IC_R_REGISTER = 1
PARAMETER C_INTERCONNECT_M_AXI_IC_B_REGISTER = 1
PARAMETER C_NUMBER_OF_PC_BRK = 7
PARAMETER C_NUMBER_OF_WR_ADDR_BRK = 2
PARAMETER C_NUMBER_OF_RD_ADDR_BRK = 2
PARAMETER C_CACHE_BYTE_SIZE = 16384
PARAMETER C_DCACHE_BYTE_SIZE = 16384
PARAMETER C_FPU_EXCEPTION = 1
PARAMETER C_DIV_ZERO_EXCEPTION = 1
PARAMETER C_M_AXI_I_BUS_EXCEPTION = 1
PARAMETER C_M_AXI_D_BUS_EXCEPTION = 1
PARAMETER C_ILL_OPCODE_EXCEPTION = 1
PARAMETER C_OPCODE_0x0_ILLEGAL = 1
PARAMETER C_UNALIGNED_EXCEPTIONS = 1
PARAMETER C_USE_DIV = 1
BUS_INTERFACE M_AXI_DP = axi4lite_0
BUS_INTERFACE M_AXI_DC = axi4_0
BUS_INTERFACE M_AXI_IC = axi4_0
BUS_INTERFACE DEBUG = microblaze_0_debug
BUS_INTERFACE DLMB = microblaze_0_dlmb
BUS_INTERFACE ILMB = microblaze_0_ilmb
PORT MB_RESET = proc_sys_reset_0_MB_Reset
PORT CLK = clk_100_0000MHzPLL0
PORT INTERRUPT = microblaze_0_interrupt
END
BEGIN lmb_v10
PARAMETER INSTANCE = microblaze_0_ilmb
PARAMETER HW_VER = 2.00.a
PORT SYS_RST = proc_sys_reset_0_BUS_STRUCT_RESET
PORT LMB_CLK = clk_100_0000MHzPLL0
END
BEGIN lmb_v10
PARAMETER INSTANCE = microblaze_0_dlmb
PARAMETER HW_VER = 2.00.a
PORT SYS_RST = proc_sys_reset_0_BUS_STRUCT_RESET
PORT LMB_CLK = clk_100_0000MHzPLL0
END
BEGIN lmb_bram_if_cntlr
PARAMETER INSTANCE = microblaze_0_i_bram_ctrl
PARAMETER HW_VER = 3.00.a
PARAMETER C_BASEADDR = 0x00000000
PARAMETER C_HIGHADDR = 0x00001fff
BUS_INTERFACE SLMB = microblaze_0_ilmb
BUS_INTERFACE BRAM_PORT = microblaze_0_i_bram_ctrl_2_microblaze_0_bram_block
END
BEGIN lmb_bram_if_cntlr
PARAMETER INSTANCE = microblaze_0_d_bram_ctrl
PARAMETER HW_VER = 3.00.a
PARAMETER C_BASEADDR = 0x00000000
PARAMETER C_HIGHADDR = 0x00001fff
BUS_INTERFACE SLMB = microblaze_0_dlmb
BUS_INTERFACE BRAM_PORT = microblaze_0_d_bram_ctrl_2_microblaze_0_bram_block
END
BEGIN bram_block
PARAMETER INSTANCE = microblaze_0_bram_block
PARAMETER HW_VER = 1.00.a
BUS_INTERFACE PORTA = microblaze_0_i_bram_ctrl_2_microblaze_0_bram_block
BUS_INTERFACE PORTB = microblaze_0_d_bram_ctrl_2_microblaze_0_bram_block
END
BEGIN proc_sys_reset
PARAMETER INSTANCE = proc_sys_reset_0
PARAMETER HW_VER = 3.00.a
PARAMETER C_EXT_RESET_HIGH = 1
PORT Ext_Reset_In = RESET
PORT MB_Reset = proc_sys_reset_0_MB_Reset
PORT Slowest_sync_clk = clk_50_0000MHzPLL0
PORT Interconnect_aresetn = proc_sys_reset_0_Interconnect_aresetn
PORT Dcm_locked = proc_sys_reset_0_Dcm_locked
PORT MB_Debug_Sys_Rst = proc_sys_reset_0_MB_Debug_Sys_Rst
PORT BUS_STRUCT_RESET = proc_sys_reset_0_BUS_STRUCT_RESET
END
BEGIN clock_generator
PARAMETER INSTANCE = clock_generator_0
PARAMETER HW_VER = 4.01.a
PARAMETER C_CLKIN_FREQ = 200000000
PARAMETER C_CLKOUT0_FREQ = 600000000
PARAMETER C_CLKOUT0_GROUP = PLL0
PARAMETER C_CLKOUT0_BUF = FALSE
PARAMETER C_CLKOUT1_FREQ = 600000000
PARAMETER C_CLKOUT1_PHASE = 180
PARAMETER C_CLKOUT1_GROUP = PLL0
PARAMETER C_CLKOUT1_BUF = FALSE
PARAMETER C_CLKOUT2_FREQ = 100000000
PARAMETER C_CLKOUT2_GROUP = PLL0
PARAMETER C_CLKOUT3_FREQ = 50000000
PARAMETER C_CLKOUT3_GROUP = PLL0
PORT RST = RESET
PORT CLKIN = CLK
PORT CLKOUT2 = clk_100_0000MHzPLL0
PORT CLKOUT3 = clk_50_0000MHzPLL0
PORT CLKOUT0 = clk_600_0000MHzPLL0_nobuf
PORT CLKOUT1 = clk_600_0000MHz180PLL0_nobuf
PORT LOCKED = proc_sys_reset_0_Dcm_locked
END
BEGIN mdm
PARAMETER INSTANCE = debug_module
PARAMETER HW_VER = 2.00.b
PARAMETER C_INTERCONNECT = 2
PARAMETER C_USE_UART = 1
PARAMETER C_INTERCONNECT_S_AXI_AW_REGISTER = 1
PARAMETER C_INTERCONNECT_S_AXI_AR_REGISTER = 1
PARAMETER C_INTERCONNECT_S_AXI_W_REGISTER = 1
PARAMETER C_INTERCONNECT_S_AXI_R_REGISTER = 1
PARAMETER C_INTERCONNECT_S_AXI_B_REGISTER = 1
PARAMETER C_BASEADDR = 0x74800000
PARAMETER C_HIGHADDR = 0x7480ffff
BUS_INTERFACE S_AXI = axi4lite_0
BUS_INTERFACE MBDEBUG_0 = microblaze_0_debug
PORT S_AXI_ACLK = clk_50_0000MHzPLL0
PORT Debug_SYS_Rst = proc_sys_reset_0_MB_Debug_Sys_Rst
END
BEGIN axi_uartlite
PARAMETER INSTANCE = RS232_Uart_1
PARAMETER HW_VER = 1.01.a
PARAMETER C_BAUDRATE = 115200
PARAMETER C_DATA_BITS = 8
PARAMETER C_USE_PARITY = 0
PARAMETER C_ODD_PARITY = 1
PARAMETER C_INTERCONNECT_S_AXI_AW_REGISTER = 1
PARAMETER C_INTERCONNECT_S_AXI_AR_REGISTER = 1
PARAMETER C_INTERCONNECT_S_AXI_W_REGISTER = 1
PARAMETER C_INTERCONNECT_S_AXI_R_REGISTER = 1
PARAMETER C_INTERCONNECT_S_AXI_B_REGISTER = 1
PARAMETER C_BASEADDR = 0x40600000
PARAMETER C_HIGHADDR = 0x4060ffff
BUS_INTERFACE S_AXI = axi4lite_0
PORT TX = RS232_Uart_1_sout
PORT RX = RS232_Uart_1_sin
PORT S_AXI_ACLK = clk_50_0000MHzPLL0
PORT Interrupt = RS232_Uart_1_Interrupt
END
BEGIN axi_gpio
PARAMETER INSTANCE = LEDs_4Bits
PARAMETER HW_VER = 1.01.a
PARAMETER C_GPIO_WIDTH = 4
PARAMETER C_ALL_INPUTS = 0
PARAMETER C_INTERRUPT_PRESENT = 0
PARAMETER C_IS_DUAL = 0
PARAMETER C_INTERCONNECT_S_AXI_AW_REGISTER = 1
PARAMETER C_INTERCONNECT_S_AXI_AR_REGISTER = 1
PARAMETER C_INTERCONNECT_S_AXI_W_REGISTER = 1
PARAMETER C_INTERCONNECT_S_AXI_R_REGISTER = 1
PARAMETER C_INTERCONNECT_S_AXI_B_REGISTER = 1
PARAMETER C_BASEADDR = 0x40020000
PARAMETER C_HIGHADDR = 0x4002ffff
BUS_INTERFACE S_AXI = axi4lite_0
PORT GPIO_IO_O = LEDs_4Bits_TRI_O
PORT S_AXI_ACLK = clk_50_0000MHzPLL0
END
BEGIN axi_gpio
PARAMETER INSTANCE = Push_Buttons_4Bits
PARAMETER HW_VER = 1.01.a
PARAMETER C_GPIO_WIDTH = 4
PARAMETER C_ALL_INPUTS = 1
PARAMETER C_INTERRUPT_PRESENT = 1
PARAMETER C_IS_DUAL = 0
PARAMETER C_INTERCONNECT_S_AXI_AW_REGISTER = 1
PARAMETER C_INTERCONNECT_S_AXI_AR_REGISTER = 1
PARAMETER C_INTERCONNECT_S_AXI_W_REGISTER = 1
PARAMETER C_INTERCONNECT_S_AXI_R_REGISTER = 1
PARAMETER C_INTERCONNECT_S_AXI_B_REGISTER = 1
PARAMETER C_BASEADDR = 0x40000000
PARAMETER C_HIGHADDR = 0x4000ffff
BUS_INTERFACE S_AXI = axi4lite_0
PORT GPIO_IO_I = Push_Buttons_4Bits_TRI_I
PORT S_AXI_ACLK = clk_50_0000MHzPLL0
PORT IP2INTC_Irpt = Push_Buttons_4Bits_IP2INTC_Irpt
END
BEGIN axi_s6_ddrx
PARAMETER INSTANCE = MCB_DDR3
PARAMETER HW_VER = 1.02.a
PARAMETER C_MCB_RZQ_LOC = K7
PARAMETER C_MCB_ZIO_LOC = R7
PARAMETER C_MEM_TYPE = DDR3
PARAMETER C_MEM_PARTNO = MT41J64M16XX-187E
PARAMETER C_MEM_BANKADDR_WIDTH = 3
PARAMETER C_MEM_NUM_COL_BITS = 10
PARAMETER C_SKIP_IN_TERM_CAL = 0
PARAMETER C_S0_AXI_ENABLE = 1
PARAMETER C_INTERCONNECT_S0_AXI_MASTERS = microblaze_0.M_AXI_DC & microblaze_0.M_AXI_IC
PARAMETER C_INTERCONNECT_S0_AXI_AW_REGISTER = 1
PARAMETER C_INTERCONNECT_S0_AXI_AR_REGISTER = 1
PARAMETER C_INTERCONNECT_S0_AXI_W_REGISTER = 1
PARAMETER C_INTERCONNECT_S0_AXI_R_REGISTER = 1
PARAMETER C_INTERCONNECT_S0_AXI_B_REGISTER = 1
PARAMETER C_S0_AXI_BASEADDR = 0xc0000000
PARAMETER C_S0_AXI_HIGHADDR = 0xc7ffffff
BUS_INTERFACE S0_AXI = axi4_0
PORT mcbx_dram_clk = mcbx_dram_clk
PORT mcbx_dram_clk_n = mcbx_dram_clk_n
PORT mcbx_dram_cke = mcbx_dram_cke
PORT mcbx_dram_odt = mcbx_dram_odt
PORT mcbx_dram_ras_n = mcbx_dram_ras_n
PORT mcbx_dram_cas_n = mcbx_dram_cas_n
PORT mcbx_dram_we_n = mcbx_dram_we_n
PORT mcbx_dram_udm = mcbx_dram_udm
PORT mcbx_dram_ldm = mcbx_dram_ldm
PORT mcbx_dram_ba = mcbx_dram_ba
PORT mcbx_dram_addr = mcbx_dram_addr
PORT mcbx_dram_ddr3_rst = mcbx_dram_ddr3_rst
PORT mcbx_dram_dq = mcbx_dram_dq
PORT mcbx_dram_dqs = mcbx_dram_dqs
PORT mcbx_dram_dqs_n = mcbx_dram_dqs_n
PORT mcbx_dram_udqs = mcbx_dram_udqs
PORT mcbx_dram_udqs_n = mcbx_dram_udqs_n
PORT rzq = rzq
PORT zio = zio
PORT s0_axi_aclk = clk_100_0000MHzPLL0
PORT ui_clk = clk_100_0000MHzPLL0
PORT sysclk_2x = clk_600_0000MHzPLL0_nobuf
PORT sysclk_2x_180 = clk_600_0000MHz180PLL0_nobuf
PORT SYS_RST = proc_sys_reset_0_BUS_STRUCT_RESET
PORT PLL_LOCK = proc_sys_reset_0_Dcm_locked
END
BEGIN axi_ethernetlite
PARAMETER INSTANCE = Ethernet_Lite
PARAMETER HW_VER = 1.00.a
PARAMETER C_INTERCONNECT_S_AXI_AW_REGISTER = 1
PARAMETER C_INTERCONNECT_S_AXI_AR_REGISTER = 1
PARAMETER C_INTERCONNECT_S_AXI_W_REGISTER = 1
PARAMETER C_INTERCONNECT_S_AXI_R_REGISTER = 1
PARAMETER C_INTERCONNECT_S_AXI_B_REGISTER = 1
PARAMETER C_BASEADDR = 0x40e00000
PARAMETER C_HIGHADDR = 0x40e0ffff
PARAMETER C_S_AXI_PROTOCOL = AXI4LITE
PARAMETER C_RX_PING_PONG = 1
PARAMETER C_TX_PING_PONG = 1
PARAMETER C_S_AXI_ID_WIDTH = 1
BUS_INTERFACE S_AXI = axi4lite_0
PORT PHY_MDIO = Ethernet_Lite_MDIO
PORT PHY_MDC = Ethernet_Lite_MDC
PORT PHY_tx_data = Ethernet_Lite_TXD
PORT PHY_tx_en = Ethernet_Lite_TX_EN
PORT PHY_tx_clk = Ethernet_Lite_TX_CLK
PORT PHY_col = Ethernet_Lite_COL
PORT PHY_rx_data = Ethernet_Lite_RXD
PORT PHY_rx_er = Ethernet_Lite_RX_ER
PORT PHY_rx_clk = Ethernet_Lite_RX_CLK
PORT PHY_crs = Ethernet_Lite_CRS
PORT PHY_dv = Ethernet_Lite_RX_DV
PORT PHY_rst_n = Ethernet_Lite_PHY_RST_N
PORT S_AXI_ACLK = clk_50_0000MHzPLL0
PORT IP2INTC_Irpt = Ethernet_Lite_IP2INTC_Irpt
END
BEGIN axi_timer
PARAMETER INSTANCE = axi_timer_0
PARAMETER HW_VER = 1.01.a
PARAMETER C_COUNT_WIDTH = 32
PARAMETER C_ONE_TIMER_ONLY = 0
PARAMETER C_INTERCONNECT_S_AXI_AW_REGISTER = 1
PARAMETER C_INTERCONNECT_S_AXI_AR_REGISTER = 1
PARAMETER C_INTERCONNECT_S_AXI_W_REGISTER = 1
PARAMETER C_INTERCONNECT_S_AXI_R_REGISTER = 1
PARAMETER C_INTERCONNECT_S_AXI_B_REGISTER = 1
PARAMETER C_BASEADDR = 0x41c00000
PARAMETER C_HIGHADDR = 0x41c0ffff
BUS_INTERFACE S_AXI = axi4lite_0
PORT S_AXI_ACLK = clk_50_0000MHzPLL0
PORT Interrupt = axi_timer_0_Interrupt
END
BEGIN axi_intc
PARAMETER INSTANCE = microblaze_0_intc
PARAMETER HW_VER = 1.01.a
PARAMETER C_INTERCONNECT_S_AXI_AW_REGISTER = 1
PARAMETER C_INTERCONNECT_S_AXI_AR_REGISTER = 1
PARAMETER C_INTERCONNECT_S_AXI_W_REGISTER = 1
PARAMETER C_INTERCONNECT_S_AXI_R_REGISTER = 1
PARAMETER C_INTERCONNECT_S_AXI_B_REGISTER = 1
PARAMETER C_BASEADDR = 0x41200000
PARAMETER C_HIGHADDR = 0x4120ffff
BUS_INTERFACE S_AXI = axi4lite_0
PORT IRQ = microblaze_0_interrupt
PORT S_AXI_ACLK = clk_50_0000MHzPLL0
PORT INTR = Push_Buttons_4Bits_IP2INTC_Irpt & Ethernet_Lite_IP2INTC_Irpt & axi_timer_0_Interrupt & RS232_Uart_1_Interrupt
END

@ -1,38 +0,0 @@
#Please do not modify this file by hand
XmpVersion: 13.1
VerMgmt: 13.1
IntStyle: default
MHS File: system.mhs
Architecture: spartan6
Device: xc6slx45t
Package: fgg484
SpeedGrade: -3
UserCmd1:
UserCmd1Type: 0
UserCmd2:
UserCmd2Type: 0
GenSimTB: 0
SdkExportBmmBit: 1
SdkExportDir: SDK/SDK_Export
InsertNoPads: 0
WarnForEAArch: 1
HdlLang: VHDL
SimModel: BEHAVIORAL
UcfFile: data/system.ucf
EnableParTimingError: 1
ShowLicenseDialog: 1
ICacheAddr: MCB_DDR3,C_S0_AXI_BASEADDR
ICacheAddr: MCB_DDR3,C_S1_AXI_BASEADDR
ICacheAddr: MCB_DDR3,C_S2_AXI_BASEADDR
ICacheAddr: MCB_DDR3,C_S3_AXI_BASEADDR
ICacheAddr: MCB_DDR3,C_S4_AXI_BASEADDR
ICacheAddr: MCB_DDR3,C_S5_AXI_BASEADDR
DCacheAddr: MCB_DDR3,C_S0_AXI_BASEADDR
DCacheAddr: MCB_DDR3,C_S1_AXI_BASEADDR
DCacheAddr: MCB_DDR3,C_S2_AXI_BASEADDR
DCacheAddr: MCB_DDR3,C_S3_AXI_BASEADDR
DCacheAddr: MCB_DDR3,C_S4_AXI_BASEADDR
DCacheAddr: MCB_DDR3,C_S5_AXI_BASEADDR
Processor: microblaze_0
ElfImp:
ElfSim:

@ -1,110 +0,0 @@
#################################################################
# Makefile generated by Xilinx Platform Studio
# Project:C:\E\Dev\FreeRTOS\WorkingCopy\Demo\MicroBlaze_Spartan-6_EthernetLite\PlatformStudioProject\system.xmp
#
# WARNING : This file will be re-generated every time a command
# to run a make target is invoked. So, any changes made to this
# file manually, will be lost when make is invoked next.
#################################################################
SHELL = CMD
XILINX_EDK_DIR = C:/devtools/Xilinx/13.1/ISE_DS/EDK
SYSTEM = system
MHSFILE = system.mhs
FPGA_ARCH = spartan6
DEVICE = xc6slx45tfgg484-3
LANGUAGE = vhdl
GLOBAL_SEARCHPATHOPT =
PROJECT_SEARCHPATHOPT =
SEARCHPATHOPT = $(PROJECT_SEARCHPATHOPT) $(GLOBAL_SEARCHPATHOPT)
SUBMODULE_OPT =
PLATGEN_OPTIONS = -p $(DEVICE) -lang $(LANGUAGE) $(SEARCHPATHOPT) $(SUBMODULE_OPT) -msg __xps/ise/xmsgprops.lst
OBSERVE_PAR_OPTIONS = -error yes
MICROBLAZE_BOOTLOOP = $(XILINX_EDK_DIR)/sw/lib/microblaze/mb_bootloop.elf
MICROBLAZE_BOOTLOOP_LE = $(XILINX_EDK_DIR)/sw/lib/microblaze/mb_bootloop_le.elf
PPC405_BOOTLOOP = $(XILINX_EDK_DIR)/sw/lib/ppc405/ppc_bootloop.elf
PPC440_BOOTLOOP = $(XILINX_EDK_DIR)/sw/lib/ppc440/ppc440_bootloop.elf
BOOTLOOP_DIR = bootloops
MICROBLAZE_0_BOOTLOOP = $(BOOTLOOP_DIR)/microblaze_0.elf
BRAMINIT_ELF_IMP_FILES = $(MICROBLAZE_0_BOOTLOOP)
BRAMINIT_ELF_IMP_FILE_ARGS = -pe microblaze_0 $(MICROBLAZE_0_BOOTLOOP)
BRAMINIT_ELF_SIM_FILES = $(MICROBLAZE_0_BOOTLOOP)
BRAMINIT_ELF_SIM_FILE_ARGS = -pe microblaze_0 $(MICROBLAZE_0_BOOTLOOP)
SIM_CMD = isim_system
BEHAVIORAL_SIM_SCRIPT = simulation/behavioral/$(SYSTEM)_setup.tcl
STRUCTURAL_SIM_SCRIPT = simulation/structural/$(SYSTEM)_setup.tcl
TIMING_SIM_SCRIPT = simulation/timing/$(SYSTEM)_setup.tcl
DEFAULT_SIM_SCRIPT = $(BEHAVIORAL_SIM_SCRIPT)
MIX_LANG_SIM_OPT = -mixed yes
SIMGEN_OPTIONS = -p $(DEVICE) -lang $(LANGUAGE) $(SEARCHPATHOPT) $(BRAMINIT_ELF_SIM_FILE_ARGS) $(MIX_LANG_SIM_OPT) -msg __xps/ise/xmsgprops.lst -s isim
CORE_STATE_DEVELOPMENT_FILES =
WRAPPER_NGC_FILES = implementation/axi4_0_wrapper.ngc \
implementation/axi4lite_0_wrapper.ngc \
implementation/microblaze_0_wrapper.ngc \
implementation/microblaze_0_ilmb_wrapper.ngc \
implementation/microblaze_0_dlmb_wrapper.ngc \
implementation/microblaze_0_i_bram_ctrl_wrapper.ngc \
implementation/microblaze_0_d_bram_ctrl_wrapper.ngc \
implementation/microblaze_0_bram_block_wrapper.ngc \
implementation/proc_sys_reset_0_wrapper.ngc \
implementation/clock_generator_0_wrapper.ngc \
implementation/debug_module_wrapper.ngc \
implementation/rs232_uart_1_wrapper.ngc \
implementation/leds_4bits_wrapper.ngc \
implementation/push_buttons_4bits_wrapper.ngc \
implementation/mcb_ddr3_wrapper.ngc \
implementation/ethernet_lite_wrapper.ngc \
implementation/axi_timer_0_wrapper.ngc \
implementation/microblaze_0_intc_wrapper.ngc
POSTSYN_NETLIST = implementation/$(SYSTEM).ngc
SYSTEM_BIT = implementation/$(SYSTEM).bit
DOWNLOAD_BIT = implementation/download.bit
SYSTEM_ACE = implementation/$(SYSTEM).ace
UCF_FILE = data/system.ucf
BMM_FILE = implementation/$(SYSTEM).bmm
BITGEN_UT_FILE = etc/bitgen.ut
XFLOW_OPT_FILE = etc/fast_runtime.opt
XFLOW_DEPENDENCY = __xps/xpsxflow.opt $(XFLOW_OPT_FILE)
XPLORER_DEPENDENCY = __xps/xplorer.opt
XPLORER_OPTIONS = -p $(DEVICE) -uc $(SYSTEM).ucf -bm $(SYSTEM).bmm -max_runs 7
FPGA_IMP_DEPENDENCY = $(BMM_FILE) $(POSTSYN_NETLIST) $(UCF_FILE) $(XFLOW_DEPENDENCY)
SDK_EXPORT_DIR = SDK\SDK_Export\hw
SYSTEM_HW_HANDOFF = $(SDK_EXPORT_DIR)/$(SYSTEM).xml
SYSTEM_HW_HANDOFF_BIT = $(SDK_EXPORT_DIR)/$(SYSTEM).bit
SYSTEM_HW_HANDOFF_BMM = $(SDK_EXPORT_DIR)/$(SYSTEM)_bd.bmm
SYSTEM_HW_HANDOFF_DEP = $(SYSTEM_HW_HANDOFF) $(SYSTEM_HW_HANDOFF_BIT) $(SYSTEM_HW_HANDOFF_BMM)

@ -0,0 +1,6 @@
The project from this directory has been superseded by the project documented
on the following page: http://www.freertos.org/RTOS-Xilinx-Microblaze-KC705.html
If you need the demo that used to be in this directory then download FreeRTOS V8.2.1
from http://sourceforge.net/projects/freertos/files/FreeRTOS/

@ -1,12 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>HardwareWithEthernetLite</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
</buildSpec>
<natures>
<nature>com.xilinx.sdk.hw.HwProject</nature>
</natures>
</projectDescription>

@ -1,32 +0,0 @@
// BMM LOC annotation file.
//
// Release 13.1 - Data2MEM O.40d, build 1.9 Aug 19, 2010
// Copyright (c) 1995-2011 Xilinx, Inc. All rights reserved.
///////////////////////////////////////////////////////////////////////////////
//
// Processor 'microblaze_0', ID 100, memory map.
//
///////////////////////////////////////////////////////////////////////////////
ADDRESS_MAP microblaze_0 MICROBLAZE-LE 100
///////////////////////////////////////////////////////////////////////////////
//
// Processor 'microblaze_0' address space 'microblaze_0_bram_block_combined' 0x00000000:0x00001FFF (8 KBytes).
//
///////////////////////////////////////////////////////////////////////////////
ADDRESS_SPACE microblaze_0_bram_block_combined RAMB16 [0x00000000:0x00001FFF]
BUS_BLOCK
microblaze_0_bram_block/microblaze_0_bram_block/ramb16bwer_0 [31:24] INPUT = microblaze_0_bram_block_combined_0.mem PLACED = X1Y30;
microblaze_0_bram_block/microblaze_0_bram_block/ramb16bwer_1 [23:16] INPUT = microblaze_0_bram_block_combined_1.mem PLACED = X1Y32;
microblaze_0_bram_block/microblaze_0_bram_block/ramb16bwer_2 [15:8] INPUT = microblaze_0_bram_block_combined_2.mem PLACED = X0Y30;
microblaze_0_bram_block/microblaze_0_bram_block/ramb16bwer_3 [7:0] INPUT = microblaze_0_bram_block_combined_3.mem PLACED = X0Y32;
END_BUS_BLOCK;
END_ADDRESS_SPACE;
END_ADDRESS_MAP;

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save