MSP430:
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
Before Width: | Height: | Size: 65 KiB |
Before Width: | Height: | Size: 32 KiB |
Before Width: | Height: | Size: 32 KiB |
Before Width: | Height: | Size: 28 KiB |
Before Width: | Height: | Size: 32 KiB |
Before Width: | Height: | Size: 78 KiB |
Before Width: | Height: | Size: 29 KiB |
@ -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
|
@ -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 +0,0 @@
|
||||
-p xc4vfx12ff668-10
|
@ -1 +0,0 @@
|
||||
-device xc4vfx12ff668-10
|
@ -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,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)
|
Before Width: | Height: | Size: 28 KiB |
@ -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,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 > ($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 > ($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_ > 30)">
|
||||
<xsl:call-template name="Draw_IOPorts_4Sides"/>
|
||||
</xsl:if>
|
||||
|
||||
<xsl:if test="($ports_count_ <= 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_ >= ($ports_per_side_ * 0) and ($pcount_ < ($ports_per_side_ * 1)))">W</xsl:when>
|
||||
<xsl:when test="($pcount_ >= ($ports_per_side_ * 1) and ($pcount_ < ($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_ >= ($ports_per_side_ * 0) and ($pcount_ < ($ports_per_side_ * 1)))">W</xsl:when>
|
||||
<xsl:when test="($pcount_ >= ($ports_per_side_ * 1) and ($pcount_ < ($ports_per_side_ * 2)))">S</xsl:when>
|
||||
<xsl:when test="($pcount_ >= ($ports_per_side_ * 2) and ($pcount_ < ($ports_per_side_ * 3)))">E</xsl:when>
|
||||
<xsl:when test="($pcount_ >= ($ports_per_side_ * 3) and ($pcount_ < ($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 < $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) <= 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_ > 0) or ($num_of_psfStd_ > 0))">
|
||||
<xsl:if test="($num_of_busStd_ > 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_ > 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_ > 0)">
|
||||
<xsl:if test="($num_of_busStd_ > 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_ > 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 +0,0 @@
|
||||
-p xc6slx45tfgg484-3
|
@ -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_)]) > 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'))]) > 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) > 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_ > 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_ > 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 > 1) and ($VIEW='ADDRESS'))">TREE</xsl:when>
|
||||
<xsl:when test="(($G_NUM_OF_PROCS <= 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() > 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() > 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() > 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_) < 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_ > 0) and (string-length($valid_busNames_) > 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) > 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() > 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() > 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_) < 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() > 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() > 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_) < 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) > 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() > 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() > 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_) < 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() > 1"> & </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() > 1"> & </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_ > 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_ > 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,2 +0,0 @@
|
||||
|
||||
<SAV MODE="TREE" VIEW="ADDRESS"/>
|
@ -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 +0,0 @@
|
||||
-device xc6slx45tfgg484-3 data/system.ucf 7 0
|
@ -1 +0,0 @@
|
||||
-device xc6slx45tfgg484-3 data/system.ucf 0
|
@ -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,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;
|
||||
|