mirror of
https://github.com/FreeRTOS/FreeRTOS-Kernel.git
synced 2025-04-21 22:11:57 -04:00
Add Virtex5 demo that uses the double precision floating point.
This commit is contained in:
parent
e36ece8d42
commit
9815654538
115
Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/FreeRTOSConfig.h
Normal file
115
Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/FreeRTOSConfig.h
Normal file
|
@ -0,0 +1,115 @@
|
||||||
|
/*
|
||||||
|
FreeRTOS.org V5.3.1 - Copyright (C) 2003-2009 Richard Barry.
|
||||||
|
|
||||||
|
This file is part of the FreeRTOS.org distribution.
|
||||||
|
|
||||||
|
FreeRTOS.org 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 exception to the GPL is included to allow you to distribute a
|
||||||
|
combined work that includes FreeRTOS.org without being obliged to provide
|
||||||
|
the source code for any proprietary components. Alternative commercial
|
||||||
|
license and support terms are also available upon request. See the
|
||||||
|
licensing section of http://www.FreeRTOS.org for full details.
|
||||||
|
|
||||||
|
FreeRTOS.org is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
|
more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License along
|
||||||
|
with FreeRTOS.org; if not, write to the Free Software Foundation, Inc., 59
|
||||||
|
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
|
||||||
|
|
||||||
|
***************************************************************************
|
||||||
|
* *
|
||||||
|
* Get the FreeRTOS eBook! See http://www.FreeRTOS.org/Documentation *
|
||||||
|
* *
|
||||||
|
* This is a concise, step by step, 'hands on' guide that describes both *
|
||||||
|
* general multitasking concepts and FreeRTOS specifics. It presents and *
|
||||||
|
* explains numerous examples that are written using the FreeRTOS API. *
|
||||||
|
* Full source code for all the examples is provided in an accompanying *
|
||||||
|
* .zip file. *
|
||||||
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
|
1 tab == 4 spaces!
|
||||||
|
|
||||||
|
Please ensure to read the configuration and relevant port sections of the
|
||||||
|
online documentation.
|
||||||
|
|
||||||
|
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
|
contact details.
|
||||||
|
|
||||||
|
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
|
critical systems.
|
||||||
|
|
||||||
|
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
|
licensing and training services.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef FREERTOS_CONFIG_H
|
||||||
|
#define FREERTOS_CONFIG_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 configMINIMAL_STACK_SIZE ( ( unsigned portSHORT ) 250 )
|
||||||
|
#define configCPU_CLOCK_HZ ( ( unsigned portLONG ) 200000000 ) /* Clock setup from start.asm in the demo application. */
|
||||||
|
#define configTICK_RATE_HZ ( (portTickType) 1000 )
|
||||||
|
#define configMAX_PRIORITIES ( ( unsigned portBASE_TYPE ) 6 )
|
||||||
|
#define configTOTAL_HEAP_SIZE ( (size_t) (80 * 1024) )
|
||||||
|
#define configMAX_TASK_NAME_LEN ( 20 )
|
||||||
|
#define configUSE_16_BIT_TICKS 1
|
||||||
|
#define configIDLE_SHOULD_YIELD 1
|
||||||
|
#define configUSE_MUTEXES 1
|
||||||
|
#define configUSE_TRACE_FACILITY 0
|
||||||
|
#define configCHECK_FOR_STACK_OVERFLOW 2
|
||||||
|
#define configUSE_COUNTING_SEMAPHORES 1
|
||||||
|
#define configUSE_APPLICATION_TASK_TAG 1
|
||||||
|
#define configUSE_FPU 1
|
||||||
|
|
||||||
|
|
||||||
|
/* Co-routine definitions. */
|
||||||
|
#define configUSE_CO_ROUTINES 0
|
||||||
|
#define configMAX_CO_ROUTINE_PRIORITIES ( 4 )
|
||||||
|
|
||||||
|
/* 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 1
|
||||||
|
#define INCLUDE_vTaskCleanUpResources 1
|
||||||
|
#define INCLUDE_vTaskSuspend 1
|
||||||
|
#define INCLUDE_vResumeFromISR 1
|
||||||
|
#define INCLUDE_vTaskDelayUntil 1
|
||||||
|
#define INCLUDE_vTaskDelay 1
|
||||||
|
#define INCLUDE_xTaskGetSchedulerState 1
|
||||||
|
#define INCLUDE_xTaskGetCurrentTaskHandle 1
|
||||||
|
#define INCLUDE_uxTaskGetStackHighWaterMark 1
|
||||||
|
#define configUSE_RECURSIVE_MUTEXES 1
|
||||||
|
|
||||||
|
|
||||||
|
#if configUSE_FPU == 1
|
||||||
|
/* Include the header that define the traceTASK_SWITCHED_IN() and
|
||||||
|
traceTASK_SWITCHED_OUT() macros to save and restore the floating
|
||||||
|
point registers for tasks that have requested this behaviour. */
|
||||||
|
#include "FPU_Macros.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* FREERTOS_CONFIG_H */
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,226 @@
|
||||||
|
/*******************************************************************/
|
||||||
|
/* */
|
||||||
|
/* This file is automatically generated by linker script generator.*/
|
||||||
|
/* */
|
||||||
|
/* Version: Xilinx EDK 11.1 EDK_L.29.1 */
|
||||||
|
/* */
|
||||||
|
/* Copyright (c) 2004 Xilinx, Inc. All rights reserved. */
|
||||||
|
/* */
|
||||||
|
/* Description : PowerPC440 Linker Script */
|
||||||
|
/* */
|
||||||
|
/*******************************************************************/
|
||||||
|
|
||||||
|
_STACK_SIZE = DEFINED(_STACK_SIZE) ? _STACK_SIZE : 0x400;
|
||||||
|
_HEAP_SIZE = DEFINED(_HEAP_SIZE) ? _HEAP_SIZE : 0x400;
|
||||||
|
|
||||||
|
/* Define Memories in the system */
|
||||||
|
|
||||||
|
MEMORY
|
||||||
|
{
|
||||||
|
DDR2_SDRAM_C_MEM_BASEADDR : ORIGIN = 0x00000000, LENGTH = 0x10000000
|
||||||
|
SRAM_C_MEM0_BASEADDR : ORIGIN = 0xF8000000, LENGTH = 0x00100000
|
||||||
|
xps_bram_if_cntlr_1 : ORIGIN = 0xFFFFE000, LENGTH = 0x00001F00
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Specify the default entry point to the program */
|
||||||
|
|
||||||
|
ENTRY(_boot)
|
||||||
|
STARTUP(boot.o)
|
||||||
|
|
||||||
|
/* Define the sections, and where they are mapped in memory */
|
||||||
|
|
||||||
|
SECTIONS
|
||||||
|
{
|
||||||
|
.vectors : {
|
||||||
|
__vectors_start = .;
|
||||||
|
*(.vectors)
|
||||||
|
__vectors_end = .;
|
||||||
|
} > SRAM_C_MEM0_BASEADDR
|
||||||
|
|
||||||
|
.text : {
|
||||||
|
*(.text)
|
||||||
|
*(.text.*)
|
||||||
|
*(.gnu.linkonce.t.*)
|
||||||
|
} > SRAM_C_MEM0_BASEADDR
|
||||||
|
|
||||||
|
.init : {
|
||||||
|
KEEP (*(.init))
|
||||||
|
} > SRAM_C_MEM0_BASEADDR
|
||||||
|
|
||||||
|
.fini : {
|
||||||
|
KEEP (*(.fini))
|
||||||
|
} > SRAM_C_MEM0_BASEADDR
|
||||||
|
|
||||||
|
.rodata : {
|
||||||
|
__rodata_start = .;
|
||||||
|
*(.rodata)
|
||||||
|
*(.rodata.*)
|
||||||
|
*(.gnu.linkonce.r.*)
|
||||||
|
__rodata_end = .;
|
||||||
|
} > SRAM_C_MEM0_BASEADDR
|
||||||
|
|
||||||
|
.rodata1 : {
|
||||||
|
__rodata1_start = .;
|
||||||
|
*(.rodata1)
|
||||||
|
*(.rodata1.*)
|
||||||
|
__rodata1_end = .;
|
||||||
|
} > SRAM_C_MEM0_BASEADDR
|
||||||
|
|
||||||
|
.sdata2 : {
|
||||||
|
__sdata2_start = .;
|
||||||
|
*(.sdata2)
|
||||||
|
*(.sdata2.*)
|
||||||
|
*(.gnu.linkonce.s2.*)
|
||||||
|
__sdata2_end = .;
|
||||||
|
} > SRAM_C_MEM0_BASEADDR
|
||||||
|
|
||||||
|
.sbss2 : {
|
||||||
|
__sbss2_start = .;
|
||||||
|
*(.sbss2)
|
||||||
|
*(.sbss2.*)
|
||||||
|
*(.gnu.linkonce.sb2.*)
|
||||||
|
__sbss2_end = .;
|
||||||
|
} > SRAM_C_MEM0_BASEADDR
|
||||||
|
|
||||||
|
.data : {
|
||||||
|
__data_start = .;
|
||||||
|
*(.data)
|
||||||
|
*(.data.*)
|
||||||
|
*(.gnu.linkonce.d.*)
|
||||||
|
__data_end = .;
|
||||||
|
} > SRAM_C_MEM0_BASEADDR
|
||||||
|
|
||||||
|
.data1 : {
|
||||||
|
__data1_start = .;
|
||||||
|
*(.data1)
|
||||||
|
*(.data1.*)
|
||||||
|
__data1_end = .;
|
||||||
|
} > SRAM_C_MEM0_BASEADDR
|
||||||
|
|
||||||
|
.got : {
|
||||||
|
*(.got)
|
||||||
|
} > SRAM_C_MEM0_BASEADDR
|
||||||
|
|
||||||
|
.got1 : {
|
||||||
|
*(.got1)
|
||||||
|
} > SRAM_C_MEM0_BASEADDR
|
||||||
|
|
||||||
|
.got2 : {
|
||||||
|
*(.got2)
|
||||||
|
} > SRAM_C_MEM0_BASEADDR
|
||||||
|
|
||||||
|
.ctors : {
|
||||||
|
__CTOR_LIST__ = .;
|
||||||
|
___CTORS_LIST___ = .;
|
||||||
|
KEEP (*crtbegin.o(.ctors))
|
||||||
|
KEEP (*(EXCLUDE_FILE(*crtend.o) .ctors))
|
||||||
|
KEEP (*(SORT(.ctors.*)))
|
||||||
|
KEEP (*(.ctors))
|
||||||
|
__CTOR_END__ = .;
|
||||||
|
___CTORS_END___ = .;
|
||||||
|
} > SRAM_C_MEM0_BASEADDR
|
||||||
|
|
||||||
|
.dtors : {
|
||||||
|
__DTOR_LIST__ = .;
|
||||||
|
___DTORS_LIST___ = .;
|
||||||
|
KEEP (*crtbegin.o(.dtors))
|
||||||
|
KEEP (*(EXCLUDE_FILE(*crtend.o) .dtors))
|
||||||
|
KEEP (*(SORT(.dtors.*)))
|
||||||
|
KEEP (*(.dtors))
|
||||||
|
__DTOR_END__ = .;
|
||||||
|
___DTORS_END___ = .;
|
||||||
|
} > SRAM_C_MEM0_BASEADDR
|
||||||
|
|
||||||
|
.fixup : {
|
||||||
|
__fixup_start = .;
|
||||||
|
*(.fixup)
|
||||||
|
__fixup_end = .;
|
||||||
|
} > SRAM_C_MEM0_BASEADDR
|
||||||
|
|
||||||
|
.eh_frame : {
|
||||||
|
*(.eh_frame)
|
||||||
|
} > SRAM_C_MEM0_BASEADDR
|
||||||
|
|
||||||
|
.jcr : {
|
||||||
|
*(.jcr)
|
||||||
|
} > SRAM_C_MEM0_BASEADDR
|
||||||
|
|
||||||
|
.gcc_except_table : {
|
||||||
|
*(.gcc_except_table)
|
||||||
|
} > SRAM_C_MEM0_BASEADDR
|
||||||
|
|
||||||
|
.sdata : {
|
||||||
|
__sdata_start = .;
|
||||||
|
*(.sdata)
|
||||||
|
*(.sdata.*)
|
||||||
|
*(.gnu.linkonce.s.*)
|
||||||
|
__sdata_end = .;
|
||||||
|
} > SRAM_C_MEM0_BASEADDR
|
||||||
|
|
||||||
|
.sbss : {
|
||||||
|
__sbss_start = .;
|
||||||
|
*(.sbss)
|
||||||
|
*(.sbss.*)
|
||||||
|
*(.gnu.linkonce.sb.*)
|
||||||
|
*(.scommon)
|
||||||
|
__sbss_end = .;
|
||||||
|
} > SRAM_C_MEM0_BASEADDR
|
||||||
|
|
||||||
|
.tdata : {
|
||||||
|
__tdata_start = .;
|
||||||
|
*(.tdata)
|
||||||
|
*(.tdata.*)
|
||||||
|
*(.gnu.linkonce.td.*)
|
||||||
|
__tdata_end = .;
|
||||||
|
} > SRAM_C_MEM0_BASEADDR
|
||||||
|
|
||||||
|
.tbss : {
|
||||||
|
__tbss_start = .;
|
||||||
|
*(.tbss)
|
||||||
|
*(.tbss.*)
|
||||||
|
*(.gnu.linkonce.tb.*)
|
||||||
|
__tbss_end = .;
|
||||||
|
} > SRAM_C_MEM0_BASEADDR
|
||||||
|
|
||||||
|
.bss : {
|
||||||
|
__bss_start = .;
|
||||||
|
*(.bss)
|
||||||
|
*(.bss.*)
|
||||||
|
*(.gnu.linkonce.b.*)
|
||||||
|
*(COMMON)
|
||||||
|
. = ALIGN(4);
|
||||||
|
__bss_end = .;
|
||||||
|
} > SRAM_C_MEM0_BASEADDR
|
||||||
|
|
||||||
|
.boot0 0xFFFFFF00 : {
|
||||||
|
__boot0_start = .;
|
||||||
|
*(.boot0)
|
||||||
|
__boot0_end = .;
|
||||||
|
}
|
||||||
|
|
||||||
|
.boot 0xFFFFFFFC : {
|
||||||
|
__boot_start = .;
|
||||||
|
*(.boot)
|
||||||
|
__boot_end = .;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Generate Stack and Heap Sections */
|
||||||
|
|
||||||
|
.stack : {
|
||||||
|
_stack_end = .;
|
||||||
|
. += _STACK_SIZE;
|
||||||
|
. = ALIGN(16);
|
||||||
|
__stack = .;
|
||||||
|
} > SRAM_C_MEM0_BASEADDR
|
||||||
|
|
||||||
|
.heap : {
|
||||||
|
. = ALIGN(16);
|
||||||
|
_heap_start = .;
|
||||||
|
. += _HEAP_SIZE;
|
||||||
|
. = ALIGN(16);
|
||||||
|
_heap_end = .;
|
||||||
|
_end = .;
|
||||||
|
} > SRAM_C_MEM0_BASEADDR
|
||||||
|
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,248 @@
|
||||||
|
/*
|
||||||
|
FreeRTOS.org V5.3.1 - Copyright (C) 2003-2009 Richard Barry.
|
||||||
|
|
||||||
|
This file is part of the FreeRTOS.org distribution.
|
||||||
|
|
||||||
|
FreeRTOS.org 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 exception to the GPL is included to allow you to distribute a
|
||||||
|
combined work that includes FreeRTOS.org without being obliged to provide
|
||||||
|
the source code for any proprietary components. Alternative commercial
|
||||||
|
license and support terms are also available upon request. See the
|
||||||
|
licensing section of http://www.FreeRTOS.org for full details.
|
||||||
|
|
||||||
|
FreeRTOS.org is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
|
more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License along
|
||||||
|
with FreeRTOS.org; if not, write to the Free Software Foundation, Inc., 59
|
||||||
|
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
|
||||||
|
|
||||||
|
***************************************************************************
|
||||||
|
* *
|
||||||
|
* Get the FreeRTOS eBook! See http://www.FreeRTOS.org/Documentation *
|
||||||
|
* *
|
||||||
|
* This is a concise, step by step, 'hands on' guide that describes both *
|
||||||
|
* general multitasking concepts and FreeRTOS specifics. It presents and *
|
||||||
|
* explains numerous examples that are written using the FreeRTOS API. *
|
||||||
|
* Full source code for all the examples is provided in an accompanying *
|
||||||
|
* .zip file. *
|
||||||
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
|
1 tab == 4 spaces!
|
||||||
|
|
||||||
|
Please ensure to read the configuration and relevant port sections of the
|
||||||
|
online documentation.
|
||||||
|
|
||||||
|
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
|
contact details.
|
||||||
|
|
||||||
|
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
|
critical systems.
|
||||||
|
|
||||||
|
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
|
licensing and training services.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Tests the floating point context save and restore mechanism.
|
||||||
|
*
|
||||||
|
* Two tasks are created - each of which is allocated a buffer of
|
||||||
|
* portNO_FLOP_REGISTERS_TO_SAVE 32bit variables into which the flop context
|
||||||
|
* of the task is saved when the task is switched out, and from which the
|
||||||
|
* flop context of the task is restored when the task is switch in. Prior to
|
||||||
|
* the tasks being created each position in the two buffers is filled with a
|
||||||
|
* unique value - this way the flop context of each task is different.
|
||||||
|
*
|
||||||
|
* The two test tasks never block so are always in either the Running or
|
||||||
|
* Ready state. They execute at the lowest priority so will get pre-empted
|
||||||
|
* regularly, although the yield frequently so will not get much execution
|
||||||
|
* time. The lack of execution time is not a problem as its only the
|
||||||
|
* switching in and out that is being tested.
|
||||||
|
*
|
||||||
|
* Whenever a task is moved from the Ready to the Running state its flop
|
||||||
|
* context will be loaded from the buffer, but while the task is in the
|
||||||
|
* Running state the buffer is not used and can contain any value - in this
|
||||||
|
* case and for test purposes the task itself clears the buffer to zero.
|
||||||
|
* The next time the task is moved out of the Running state into the
|
||||||
|
* Ready state the flop context will once more get saved to the buffer -
|
||||||
|
* overwriting the zeros.
|
||||||
|
*
|
||||||
|
* Therefore whenever the task is not in the Running state its buffer contains
|
||||||
|
* the most recent values of its floating point registers - the zeroing out
|
||||||
|
* of the buffer while the task was executing being used to ensure the values
|
||||||
|
* the buffer contains are not stale.
|
||||||
|
*
|
||||||
|
* When neither test task is in the Running state the buffers should contain
|
||||||
|
* the unique values allocated before the tasks were created. If so then
|
||||||
|
* the floating point context has been maintained. This check is performed
|
||||||
|
* by the 'check' task (defined in main.c) by calling
|
||||||
|
* xAreFlopRegisterTestsStillRunning().
|
||||||
|
*
|
||||||
|
* The test tasks also increment a value each time they execute.
|
||||||
|
* xAreFlopRegisterTestsStillRunning() also checks that this value has changed
|
||||||
|
* since it last ran to ensure the test tasks are still getting processing time.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Standard includes files. */
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
/* Scheduler include files. */
|
||||||
|
#include "FreeRTOS.h"
|
||||||
|
#include "task.h"
|
||||||
|
|
||||||
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
|
#define flopNUMBER_OF_TASKS 2
|
||||||
|
#define flopSTART_VALUE ( 0x0000000100000001LL )
|
||||||
|
|
||||||
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
|
/* The two test tasks as described at the top of this file. */
|
||||||
|
static void vFlopTest1( void *pvParameters );
|
||||||
|
static void vFlopTest2( void *pvParameters );
|
||||||
|
|
||||||
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
|
/* Buffers into which the flop registers will be saved. There is a buffer for
|
||||||
|
both tasks. */
|
||||||
|
static volatile portDOUBLE dFlopRegisters[ flopNUMBER_OF_TASKS ][ portNO_FLOP_REGISTERS_TO_SAVE ];
|
||||||
|
|
||||||
|
/* Variables that are incremented by the tasks to indicate that they are still
|
||||||
|
running. */
|
||||||
|
static volatile unsigned portLONG ulFlop1CycleCount = 0, ulFlop2CycleCount = 0;
|
||||||
|
|
||||||
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
|
void vStartFlopRegTests( void )
|
||||||
|
{
|
||||||
|
xTaskHandle xTaskJustCreated;
|
||||||
|
unsigned portBASE_TYPE x, y;
|
||||||
|
portDOUBLE z = flopSTART_VALUE;
|
||||||
|
|
||||||
|
/* Fill the arrays into which the flop registers are to be saved with
|
||||||
|
known values. These are the values that will be written to the flop
|
||||||
|
registers when the tasks start, and as the tasks do not perform any
|
||||||
|
flop operations the values should never change. Each position in the
|
||||||
|
buffer contains a different value so the flop context of each task
|
||||||
|
will be different. */
|
||||||
|
for( x = 0; x < flopNUMBER_OF_TASKS; x++ )
|
||||||
|
{
|
||||||
|
for( y = 0; y < ( portNO_FLOP_REGISTERS_TO_SAVE - 1); y++ )
|
||||||
|
{
|
||||||
|
dFlopRegisters[ x ][ y ] = z;
|
||||||
|
z+=flopSTART_VALUE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* Create the first task. */
|
||||||
|
xTaskCreate( vFlopTest1, ( signed portCHAR * ) "flop1", configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, &xTaskJustCreated );
|
||||||
|
|
||||||
|
/* The task tag value is a value that can be associated with a task, but
|
||||||
|
is not used by the scheduler itself. Its use is down to the application so
|
||||||
|
it makes a convenient place in this case to store the pointer to the buffer
|
||||||
|
into which the flop context of the task will be stored. The first created
|
||||||
|
task uses dFlopRegisters[ 0 ], the second dFlopRegisters[ 1 ]. */
|
||||||
|
vTaskSetApplicationTaskTag( xTaskJustCreated, ( void * ) &( dFlopRegisters[ 0 ][ 0 ] ) );
|
||||||
|
|
||||||
|
/* Do the same for the second task. */
|
||||||
|
xTaskCreate( vFlopTest2, ( signed portCHAR * ) "flop2", configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, &xTaskJustCreated );
|
||||||
|
vTaskSetApplicationTaskTag( xTaskJustCreated, ( void * ) &( dFlopRegisters[ 1 ][ 0 ] ) );
|
||||||
|
}
|
||||||
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
|
static void vFlopTest1( void *pvParameters )
|
||||||
|
{
|
||||||
|
/* Just to remove compiler warning. */
|
||||||
|
( void ) pvParameters;
|
||||||
|
|
||||||
|
for( ;; )
|
||||||
|
{
|
||||||
|
/* The values from the buffer should have now been written to the flop
|
||||||
|
registers. Clear the buffer to ensure the same values then get written
|
||||||
|
back the next time the task runs. Being preempted during this memset
|
||||||
|
could cause the test to fail, hence the critical section. */
|
||||||
|
portENTER_CRITICAL();
|
||||||
|
memset( ( void * ) dFlopRegisters[ 0 ], 0x00, ( portNO_FLOP_REGISTERS_TO_SAVE * sizeof( portDOUBLE ) ) );
|
||||||
|
portEXIT_CRITICAL();
|
||||||
|
|
||||||
|
/* We don't have to do anything other than indicate that we are
|
||||||
|
still running. */
|
||||||
|
ulFlop1CycleCount++;
|
||||||
|
taskYIELD();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
|
static void vFlopTest2( void *pvParameters )
|
||||||
|
{
|
||||||
|
/* Just to remove compiler warning. */
|
||||||
|
( void ) pvParameters;
|
||||||
|
|
||||||
|
for( ;; )
|
||||||
|
{
|
||||||
|
/* The values from the buffer should have now been written to the flop
|
||||||
|
registers. Clear the buffer to ensure the same values then get written
|
||||||
|
back the next time the task runs. */
|
||||||
|
portENTER_CRITICAL();
|
||||||
|
memset( ( void * ) dFlopRegisters[ 1 ], 0x00, ( portNO_FLOP_REGISTERS_TO_SAVE * sizeof( portDOUBLE ) ) );
|
||||||
|
portEXIT_CRITICAL();
|
||||||
|
|
||||||
|
/* We don't have to do anything other than indicate that we are
|
||||||
|
still running. */
|
||||||
|
ulFlop2CycleCount++;
|
||||||
|
taskYIELD();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
|
portBASE_TYPE xAreFlopRegisterTestsStillRunning( void )
|
||||||
|
{
|
||||||
|
portBASE_TYPE xReturn = pdPASS;
|
||||||
|
unsigned portBASE_TYPE x, y;
|
||||||
|
portDOUBLE z = flopSTART_VALUE;
|
||||||
|
static unsigned portLONG ulLastFlop1CycleCount = 0, ulLastFlop2CycleCount = 0;
|
||||||
|
|
||||||
|
/* Called from the 'check' task.
|
||||||
|
|
||||||
|
The flop tasks cannot be currently running, check their saved registers
|
||||||
|
are as expected. The tests tasks do not perform any flop operations so
|
||||||
|
their registers should be as per their initial setting. */
|
||||||
|
for( x = 0; x < flopNUMBER_OF_TASKS; x++ )
|
||||||
|
{
|
||||||
|
for( y = 0; y < ( portNO_FLOP_REGISTERS_TO_SAVE - 1 ); y++ )
|
||||||
|
{
|
||||||
|
if( dFlopRegisters[ x ][ y ] != z )
|
||||||
|
{
|
||||||
|
xReturn = pdFAIL;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
z+=flopSTART_VALUE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Check both tasks have actually been swapped in and out since this function
|
||||||
|
last executed. */
|
||||||
|
if( ulFlop1CycleCount == ulLastFlop1CycleCount )
|
||||||
|
{
|
||||||
|
xReturn = pdFAIL;
|
||||||
|
}
|
||||||
|
|
||||||
|
if( ulFlop2CycleCount == ulLastFlop2CycleCount )
|
||||||
|
{
|
||||||
|
xReturn = pdFAIL;
|
||||||
|
}
|
||||||
|
|
||||||
|
ulLastFlop1CycleCount = ulFlop1CycleCount;
|
||||||
|
ulLastFlop2CycleCount = ulFlop2CycleCount;
|
||||||
|
|
||||||
|
return xReturn;
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,58 @@
|
||||||
|
/*
|
||||||
|
FreeRTOS.org V5.3.1 - Copyright (C) 2003-2009 Richard Barry.
|
||||||
|
|
||||||
|
This file is part of the FreeRTOS.org distribution.
|
||||||
|
|
||||||
|
FreeRTOS.org 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 exception to the GPL is included to allow you to distribute a
|
||||||
|
combined work that includes FreeRTOS.org without being obliged to provide
|
||||||
|
the source code for any proprietary components. Alternative commercial
|
||||||
|
license and support terms are also available upon request. See the
|
||||||
|
licensing section of http://www.FreeRTOS.org for full details.
|
||||||
|
|
||||||
|
FreeRTOS.org is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
|
more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License along
|
||||||
|
with FreeRTOS.org; if not, write to the Free Software Foundation, Inc., 59
|
||||||
|
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
|
||||||
|
|
||||||
|
***************************************************************************
|
||||||
|
* *
|
||||||
|
* Get the FreeRTOS eBook! See http://www.FreeRTOS.org/Documentation *
|
||||||
|
* *
|
||||||
|
* This is a concise, step by step, 'hands on' guide that describes both *
|
||||||
|
* general multitasking concepts and FreeRTOS specifics. It presents and *
|
||||||
|
* explains numerous examples that are written using the FreeRTOS API. *
|
||||||
|
* Full source code for all the examples is provided in an accompanying *
|
||||||
|
* .zip file. *
|
||||||
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
|
1 tab == 4 spaces!
|
||||||
|
|
||||||
|
Please ensure to read the configuration and relevant port sections of the
|
||||||
|
online documentation.
|
||||||
|
|
||||||
|
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
|
contact details.
|
||||||
|
|
||||||
|
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
|
critical systems.
|
||||||
|
|
||||||
|
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
|
licensing and training services.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef FLOP_REG_TEST_H
|
||||||
|
#define FLOP_REG_TEST_H
|
||||||
|
|
||||||
|
void vStartFlopRegTests( void );
|
||||||
|
portBASE_TYPE xAreFlopRegisterTestsStillRunning( void );
|
||||||
|
|
||||||
|
#endif
|
402
Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop.c
Normal file
402
Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop.c
Normal file
|
@ -0,0 +1,402 @@
|
||||||
|
/*
|
||||||
|
FreeRTOS.org V5.3.1 - Copyright (C) 2003-2009 Richard Barry.
|
||||||
|
|
||||||
|
This file is part of the FreeRTOS.org distribution.
|
||||||
|
|
||||||
|
FreeRTOS.org 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 exception to the GPL is included to allow you to distribute a
|
||||||
|
combined work that includes FreeRTOS.org without being obliged to provide
|
||||||
|
the source code for any proprietary components. Alternative commercial
|
||||||
|
license and support terms are also available upon request. See the
|
||||||
|
licensing section of http://www.FreeRTOS.org for full details.
|
||||||
|
|
||||||
|
FreeRTOS.org is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
|
more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License along
|
||||||
|
with FreeRTOS.org; if not, write to the Free Software Foundation, Inc., 59
|
||||||
|
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
|
||||||
|
|
||||||
|
***************************************************************************
|
||||||
|
* *
|
||||||
|
* Get the FreeRTOS eBook! See http://www.FreeRTOS.org/Documentation *
|
||||||
|
* *
|
||||||
|
* This is a concise, step by step, 'hands on' guide that describes both *
|
||||||
|
* general multitasking concepts and FreeRTOS specifics. It presents and *
|
||||||
|
* explains numerous examples that are written using the FreeRTOS API. *
|
||||||
|
* Full source code for all the examples is provided in an accompanying *
|
||||||
|
* .zip file. *
|
||||||
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
|
1 tab == 4 spaces!
|
||||||
|
|
||||||
|
Please ensure to read the configuration and relevant port sections of the
|
||||||
|
online documentation.
|
||||||
|
|
||||||
|
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
|
contact details.
|
||||||
|
|
||||||
|
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
|
critical systems.
|
||||||
|
|
||||||
|
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
|
licensing and training services.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Creates eight tasks, each of which loops continuously performing a
|
||||||
|
* floating point calculation.
|
||||||
|
*
|
||||||
|
* All the tasks run at the idle priority and never block or yield. This causes
|
||||||
|
* all eight tasks to time slice with the idle task. Running at the idle priority
|
||||||
|
* means that these tasks will get pre-empted any time another task is ready to run
|
||||||
|
* or a time slice occurs. More often than not the pre-emption will occur mid
|
||||||
|
* calculation, creating a good test of the schedulers context switch mechanism - a
|
||||||
|
* calculation producing an unexpected result could be a symptom of a corruption in
|
||||||
|
* the context of a task.
|
||||||
|
*
|
||||||
|
* This file demonstrates the use of the task tag and traceTASK_SWITCHED_IN and
|
||||||
|
* traceTASK_SWITCHED_OUT macros to save and restore the floating point context.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <math.h>
|
||||||
|
|
||||||
|
/* Scheduler include files. */
|
||||||
|
#include "FreeRTOS.h"
|
||||||
|
#include "task.h"
|
||||||
|
|
||||||
|
/* Demo program include files. */
|
||||||
|
#include "flop.h"
|
||||||
|
|
||||||
|
/* Misc. definitions. */
|
||||||
|
#define mathSTACK_SIZE configMINIMAL_STACK_SIZE
|
||||||
|
#define mathNUMBER_OF_TASKS ( 8 )
|
||||||
|
|
||||||
|
/* Four tasks, each of which performs a different floating point calculation.
|
||||||
|
Each of the four is created twice. */
|
||||||
|
static portTASK_FUNCTION_PROTO( vCompetingMathTask1, pvParameters );
|
||||||
|
static portTASK_FUNCTION_PROTO( vCompetingMathTask2, pvParameters );
|
||||||
|
static portTASK_FUNCTION_PROTO( vCompetingMathTask3, pvParameters );
|
||||||
|
static portTASK_FUNCTION_PROTO( vCompetingMathTask4, pvParameters );
|
||||||
|
|
||||||
|
/* These variables are used to check that all the tasks are still running. If a
|
||||||
|
task gets a calculation wrong it will stop incrementing its check variable. */
|
||||||
|
static volatile unsigned portSHORT usTaskCheck[ mathNUMBER_OF_TASKS ] = { ( unsigned portSHORT ) 0 };
|
||||||
|
|
||||||
|
/* Buffers into which the flop registers will be saved. There is a buffer for
|
||||||
|
each task created within this file. Zeroing out this array is the normal and
|
||||||
|
safe option as this will cause the task to start with all zeros in its flop
|
||||||
|
context. */
|
||||||
|
static portDOUBLE dFlopRegisters[ mathNUMBER_OF_TASKS ][ portNO_FLOP_REGISTERS_TO_SAVE ];
|
||||||
|
|
||||||
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
|
void vStartMathTasks( unsigned portBASE_TYPE uxPriority )
|
||||||
|
{
|
||||||
|
xTaskHandle xTaskJustCreated;
|
||||||
|
portBASE_TYPE x, y;
|
||||||
|
|
||||||
|
/* Place known values into the buffers into which the flop registers are
|
||||||
|
to be saved. This is for debug purposes only, it is not normally
|
||||||
|
required. The last position in each array is left at zero as the status
|
||||||
|
register will be loaded from there.
|
||||||
|
|
||||||
|
It is intended that these values can be viewed being loaded into the
|
||||||
|
flop registers when a task is started - however the Insight debugger
|
||||||
|
does not seem to want to show the flop register values. */
|
||||||
|
for( x = 0; x < mathNUMBER_OF_TASKS; x++ )
|
||||||
|
{
|
||||||
|
for( y = 0; y < ( portNO_FLOP_REGISTERS_TO_SAVE - 1 ); y++ )
|
||||||
|
{
|
||||||
|
dFlopRegisters[ x ][ y ] = ( x + 1 );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Create the first task - passing it the address of the check variable
|
||||||
|
that it is going to increment. This check variable is used as an
|
||||||
|
indication that the task is still running. */
|
||||||
|
xTaskCreate( vCompetingMathTask1, ( signed portCHAR * ) "Math1", mathSTACK_SIZE, ( void * ) &( usTaskCheck[ 0 ] ), uxPriority, &xTaskJustCreated );
|
||||||
|
|
||||||
|
/* The task tag value is a value that can be associated with a task, but
|
||||||
|
is not used by the scheduler itself. Its use is down to the application so
|
||||||
|
it makes a convenient place in this case to store the pointer to the buffer
|
||||||
|
into which the flop context of the task will be stored. The first created
|
||||||
|
task uses dFlopRegisters[ 0 ], the second dFlopRegisters[ 1 ], etc. */
|
||||||
|
vTaskSetApplicationTaskTag( xTaskJustCreated, ( void * ) &( dFlopRegisters[ 0 ][ 0 ] ) );
|
||||||
|
|
||||||
|
/* Create another 7 tasks, allocating a buffer for each. */
|
||||||
|
xTaskCreate( vCompetingMathTask2, ( signed portCHAR * ) "Math2", mathSTACK_SIZE, ( void * ) &( usTaskCheck[ 1 ] ), uxPriority, &xTaskJustCreated );
|
||||||
|
vTaskSetApplicationTaskTag( xTaskJustCreated, ( void * ) &( dFlopRegisters[ 1 ][ 0 ] ) );
|
||||||
|
|
||||||
|
xTaskCreate( vCompetingMathTask3, ( signed portCHAR * ) "Math3", mathSTACK_SIZE, ( void * ) &( usTaskCheck[ 2 ] ), uxPriority, &xTaskJustCreated );
|
||||||
|
vTaskSetApplicationTaskTag( xTaskJustCreated, ( void * ) &( dFlopRegisters[ 2 ][ 0 ] ) );
|
||||||
|
|
||||||
|
xTaskCreate( vCompetingMathTask4, ( signed portCHAR * ) "Math4", mathSTACK_SIZE, ( void * ) &( usTaskCheck[ 3 ] ), uxPriority, &xTaskJustCreated );
|
||||||
|
vTaskSetApplicationTaskTag( xTaskJustCreated, ( void * ) &( dFlopRegisters[ 3 ][ 0 ] ) );
|
||||||
|
|
||||||
|
xTaskCreate( vCompetingMathTask1, ( signed portCHAR * ) "Math5", mathSTACK_SIZE, ( void * ) &( usTaskCheck[ 4 ] ), uxPriority, &xTaskJustCreated );
|
||||||
|
vTaskSetApplicationTaskTag( xTaskJustCreated, ( void * ) &( dFlopRegisters[ 4 ][ 0 ] ) );
|
||||||
|
|
||||||
|
xTaskCreate( vCompetingMathTask2, ( signed portCHAR * ) "Math6", mathSTACK_SIZE, ( void * ) &( usTaskCheck[ 5 ] ), uxPriority, &xTaskJustCreated );
|
||||||
|
vTaskSetApplicationTaskTag( xTaskJustCreated, ( void * ) &( dFlopRegisters[ 5 ][ 0 ] ) );
|
||||||
|
|
||||||
|
xTaskCreate( vCompetingMathTask3, ( signed portCHAR * ) "Math7", mathSTACK_SIZE, ( void * ) &( usTaskCheck[ 6 ] ), uxPriority, &xTaskJustCreated );
|
||||||
|
vTaskSetApplicationTaskTag( xTaskJustCreated, ( void * ) &( dFlopRegisters[ 6 ][ 0 ] ) );
|
||||||
|
|
||||||
|
xTaskCreate( vCompetingMathTask4, ( signed portCHAR * ) "Math8", mathSTACK_SIZE, ( void * ) &( usTaskCheck[ 7 ] ), uxPriority, &xTaskJustCreated );
|
||||||
|
vTaskSetApplicationTaskTag( xTaskJustCreated, ( void * ) &( dFlopRegisters[ 7 ][ 0 ] ) );
|
||||||
|
}
|
||||||
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
|
static portTASK_FUNCTION( vCompetingMathTask1, pvParameters )
|
||||||
|
{
|
||||||
|
volatile portDOUBLE df1, df2, df3, df4;
|
||||||
|
volatile unsigned portSHORT *pusTaskCheckVariable;
|
||||||
|
volatile portDOUBLE dAnswer;
|
||||||
|
portSHORT sError = pdFALSE;
|
||||||
|
|
||||||
|
df1 = 123.4567;
|
||||||
|
df2 = 2345.6789;
|
||||||
|
df3 = -918.222;
|
||||||
|
|
||||||
|
dAnswer = ( df1 + df2 ) * df3;
|
||||||
|
|
||||||
|
/* The variable this task increments to show it is still running is passed in
|
||||||
|
as the parameter. */
|
||||||
|
pusTaskCheckVariable = ( unsigned portSHORT * ) pvParameters;
|
||||||
|
|
||||||
|
/* Keep performing a calculation and checking the result against a constant. */
|
||||||
|
for(;;)
|
||||||
|
{
|
||||||
|
df1 = 123.4567;
|
||||||
|
df2 = 2345.6789;
|
||||||
|
df3 = -918.222;
|
||||||
|
|
||||||
|
df4 = ( df1 + df2 ) * df3;
|
||||||
|
|
||||||
|
#if configUSE_PREEMPTION == 0
|
||||||
|
taskYIELD();
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* If the calculation does not match the expected constant, stop the
|
||||||
|
increment of the check variable. */
|
||||||
|
if( fabs( df4 - dAnswer ) > 0.001 )
|
||||||
|
{
|
||||||
|
sError = pdTRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
if( sError == pdFALSE )
|
||||||
|
{
|
||||||
|
/* If the calculation has always been correct, increment the check
|
||||||
|
variable so we know this task is still running okay. */
|
||||||
|
( *pusTaskCheckVariable )++;
|
||||||
|
}
|
||||||
|
|
||||||
|
#if configUSE_PREEMPTION == 0
|
||||||
|
taskYIELD();
|
||||||
|
#endif
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
|
static portTASK_FUNCTION( vCompetingMathTask2, pvParameters )
|
||||||
|
{
|
||||||
|
volatile portDOUBLE df1, df2, df3, df4;
|
||||||
|
volatile unsigned portSHORT *pusTaskCheckVariable;
|
||||||
|
volatile portDOUBLE dAnswer;
|
||||||
|
portSHORT sError = pdFALSE;
|
||||||
|
|
||||||
|
df1 = -389.38;
|
||||||
|
df2 = 32498.2;
|
||||||
|
df3 = -2.0001;
|
||||||
|
|
||||||
|
dAnswer = ( df1 / df2 ) * df3;
|
||||||
|
|
||||||
|
|
||||||
|
/* The variable this task increments to show it is still running is passed in
|
||||||
|
as the parameter. */
|
||||||
|
pusTaskCheckVariable = ( unsigned portSHORT * ) pvParameters;
|
||||||
|
|
||||||
|
/* Keep performing a calculation and checking the result against a constant. */
|
||||||
|
for( ;; )
|
||||||
|
{
|
||||||
|
df1 = -389.38;
|
||||||
|
df2 = 32498.2;
|
||||||
|
df3 = -2.0001;
|
||||||
|
|
||||||
|
df4 = ( df1 / df2 ) * df3;
|
||||||
|
|
||||||
|
#if configUSE_PREEMPTION == 0
|
||||||
|
taskYIELD();
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* If the calculation does not match the expected constant, stop the
|
||||||
|
increment of the check variable. */
|
||||||
|
if( fabs( df4 - dAnswer ) > 0.001 )
|
||||||
|
{
|
||||||
|
sError = pdTRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
if( sError == pdFALSE )
|
||||||
|
{
|
||||||
|
/* If the calculation has always been correct, increment the check
|
||||||
|
variable so we know
|
||||||
|
this task is still running okay. */
|
||||||
|
( *pusTaskCheckVariable )++;
|
||||||
|
}
|
||||||
|
|
||||||
|
#if configUSE_PREEMPTION == 0
|
||||||
|
taskYIELD();
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
|
static portTASK_FUNCTION( vCompetingMathTask3, pvParameters )
|
||||||
|
{
|
||||||
|
volatile portDOUBLE *pdArray, dTotal1, dTotal2, dDifference;
|
||||||
|
volatile unsigned portSHORT *pusTaskCheckVariable;
|
||||||
|
const size_t xArraySize = 10;
|
||||||
|
size_t xPosition;
|
||||||
|
portSHORT sError = pdFALSE;
|
||||||
|
|
||||||
|
/* The variable this task increments to show it is still running is passed in
|
||||||
|
as the parameter. */
|
||||||
|
pusTaskCheckVariable = ( unsigned portSHORT * ) pvParameters;
|
||||||
|
|
||||||
|
pdArray = ( portDOUBLE * ) pvPortMalloc( xArraySize * sizeof( portDOUBLE ) );
|
||||||
|
|
||||||
|
/* Keep filling an array, keeping a running total of the values placed in the
|
||||||
|
array. Then run through the array adding up all the values. If the two totals
|
||||||
|
do not match, stop the check variable from incrementing. */
|
||||||
|
for( ;; )
|
||||||
|
{
|
||||||
|
dTotal1 = 0.0;
|
||||||
|
dTotal2 = 0.0;
|
||||||
|
|
||||||
|
for( xPosition = 0; xPosition < xArraySize; xPosition++ )
|
||||||
|
{
|
||||||
|
pdArray[ xPosition ] = ( portDOUBLE ) xPosition + 5.5;
|
||||||
|
dTotal1 += ( portDOUBLE ) xPosition + 5.5;
|
||||||
|
}
|
||||||
|
|
||||||
|
#if configUSE_PREEMPTION == 0
|
||||||
|
taskYIELD();
|
||||||
|
#endif
|
||||||
|
|
||||||
|
for( xPosition = 0; xPosition < xArraySize; xPosition++ )
|
||||||
|
{
|
||||||
|
dTotal2 += pdArray[ xPosition ];
|
||||||
|
}
|
||||||
|
|
||||||
|
dDifference = dTotal1 - dTotal2;
|
||||||
|
if( fabs( dDifference ) > 0.001 )
|
||||||
|
{
|
||||||
|
sError = pdTRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
#if configUSE_PREEMPTION == 0
|
||||||
|
taskYIELD();
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if( sError == pdFALSE )
|
||||||
|
{
|
||||||
|
/* If the calculation has always been correct, increment the check
|
||||||
|
variable so we know this task is still running okay. */
|
||||||
|
( *pusTaskCheckVariable )++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
|
static portTASK_FUNCTION( vCompetingMathTask4, pvParameters )
|
||||||
|
{
|
||||||
|
volatile portDOUBLE *pdArray, dTotal1, dTotal2, dDifference;
|
||||||
|
volatile unsigned portSHORT *pusTaskCheckVariable;
|
||||||
|
const size_t xArraySize = 10;
|
||||||
|
size_t xPosition;
|
||||||
|
portSHORT sError = pdFALSE;
|
||||||
|
|
||||||
|
/* The variable this task increments to show it is still running is passed in
|
||||||
|
as the parameter. */
|
||||||
|
pusTaskCheckVariable = ( unsigned portSHORT * ) pvParameters;
|
||||||
|
|
||||||
|
pdArray = ( portDOUBLE * ) pvPortMalloc( xArraySize * sizeof( portDOUBLE ) );
|
||||||
|
|
||||||
|
/* Keep filling an array, keeping a running total of the values placed in the
|
||||||
|
array. Then run through the array adding up all the values. If the two totals
|
||||||
|
do not match, stop the check variable from incrementing. */
|
||||||
|
for( ;; )
|
||||||
|
{
|
||||||
|
dTotal1 = 0.0;
|
||||||
|
dTotal2 = 0.0;
|
||||||
|
|
||||||
|
for( xPosition = 0; xPosition < xArraySize; xPosition++ )
|
||||||
|
{
|
||||||
|
pdArray[ xPosition ] = ( portDOUBLE ) xPosition * 12.123;
|
||||||
|
dTotal1 += ( portDOUBLE ) xPosition * 12.123;
|
||||||
|
}
|
||||||
|
|
||||||
|
#if configUSE_PREEMPTION == 0
|
||||||
|
taskYIELD();
|
||||||
|
#endif
|
||||||
|
|
||||||
|
for( xPosition = 0; xPosition < xArraySize; xPosition++ )
|
||||||
|
{
|
||||||
|
dTotal2 += pdArray[ xPosition ];
|
||||||
|
}
|
||||||
|
|
||||||
|
dDifference = dTotal1 - dTotal2;
|
||||||
|
if( fabs( dDifference ) > 0.001 )
|
||||||
|
{
|
||||||
|
sError = pdTRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
#if configUSE_PREEMPTION == 0
|
||||||
|
taskYIELD();
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if( sError == pdFALSE )
|
||||||
|
{
|
||||||
|
/* If the calculation has always been correct, increment the check
|
||||||
|
variable so we know this task is still running okay. */
|
||||||
|
( *pusTaskCheckVariable )++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
|
/* This is called to check that all the created tasks are still running. */
|
||||||
|
portBASE_TYPE xAreMathsTaskStillRunning( void )
|
||||||
|
{
|
||||||
|
/* Keep a history of the check variables so we know if they have been incremented
|
||||||
|
since the last call. */
|
||||||
|
static unsigned portSHORT usLastTaskCheck[ mathNUMBER_OF_TASKS ] = { ( unsigned portSHORT ) 0 };
|
||||||
|
portBASE_TYPE xReturn = pdTRUE, xTask;
|
||||||
|
|
||||||
|
/* Check the maths tasks are still running by ensuring their check variables
|
||||||
|
are still incrementing. */
|
||||||
|
for( xTask = 0; xTask < mathNUMBER_OF_TASKS; xTask++ )
|
||||||
|
{
|
||||||
|
if( usTaskCheck[ xTask ] == usLastTaskCheck[ xTask ] )
|
||||||
|
{
|
||||||
|
/* The check has not incremented so an error exists. */
|
||||||
|
xReturn = pdFALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
usLastTaskCheck[ xTask ] = usTaskCheck[ xTask ];
|
||||||
|
}
|
||||||
|
|
||||||
|
return xReturn;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
701
Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c
Normal file
701
Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c
Normal file
|
@ -0,0 +1,701 @@
|
||||||
|
/*
|
||||||
|
FreeRTOS.org V5.3.1 - Copyright (C) 2003-2009 Richard Barry.
|
||||||
|
|
||||||
|
This file is part of the FreeRTOS.org distribution.
|
||||||
|
|
||||||
|
FreeRTOS.org 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 exception to the GPL is included to allow you to distribute a
|
||||||
|
combined work that includes FreeRTOS.org without being obliged to provide
|
||||||
|
the source code for any proprietary components. Alternative commercial
|
||||||
|
license and support terms are also available upon request. See the
|
||||||
|
licensing section of http://www.FreeRTOS.org for full details.
|
||||||
|
|
||||||
|
FreeRTOS.org is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
|
more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License along
|
||||||
|
with FreeRTOS.org; if not, write to the Free Software Foundation, Inc., 59
|
||||||
|
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
|
||||||
|
|
||||||
|
***************************************************************************
|
||||||
|
* *
|
||||||
|
* Get the FreeRTOS eBook! See http://www.FreeRTOS.org/Documentation *
|
||||||
|
* *
|
||||||
|
* This is a concise, step by step, 'hands on' guide that describes both *
|
||||||
|
* general multitasking concepts and FreeRTOS specifics. It presents and *
|
||||||
|
* explains numerous examples that are written using the FreeRTOS API. *
|
||||||
|
* Full source code for all the examples is provided in an accompanying *
|
||||||
|
* .zip file. *
|
||||||
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
|
1 tab == 4 spaces!
|
||||||
|
|
||||||
|
Please ensure to read the configuration and relevant port sections of the
|
||||||
|
online documentation.
|
||||||
|
|
||||||
|
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
|
contact details.
|
||||||
|
|
||||||
|
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
|
critical systems.
|
||||||
|
|
||||||
|
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
|
licensing and training services.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Creates all the demo application tasks, then starts the scheduler. The WEB
|
||||||
|
* documentation provides more details of the demo application tasks.
|
||||||
|
*
|
||||||
|
* In addition to the standard demo tasks, the follow demo specific tasks are
|
||||||
|
* create:
|
||||||
|
*
|
||||||
|
* The "Check" task. 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. Most tasks maintain
|
||||||
|
* 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.
|
||||||
|
*
|
||||||
|
* The "Register Check" tasks. These tasks fill the CPU registers with known
|
||||||
|
* values, then check that each register still contains the expected value, the
|
||||||
|
* discovery of an unexpected value being indicative of an error in the RTOS
|
||||||
|
* context switch mechanism. The register check tasks operate at low priority
|
||||||
|
* so are switched in and out frequently.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Scheduler includes. */
|
||||||
|
#include "FreeRTOS.h"
|
||||||
|
#include "task.h"
|
||||||
|
|
||||||
|
/* Xilinx library includes. */
|
||||||
|
#include "xcache_l.h"
|
||||||
|
#include "xintc.h"
|
||||||
|
|
||||||
|
/* Demo application includes. */
|
||||||
|
#include "flash.h"
|
||||||
|
#include "integer.h"
|
||||||
|
#include "comtest2.h"
|
||||||
|
#include "semtest.h"
|
||||||
|
#include "BlockQ.h"
|
||||||
|
#include "dynamic.h"
|
||||||
|
#include "GenQTest.h"
|
||||||
|
#include "QPeek.h"
|
||||||
|
#include "blocktim.h"
|
||||||
|
#include "death.h"
|
||||||
|
#include "partest.h"
|
||||||
|
#include "countsem.h"
|
||||||
|
#include "recmutex.h"
|
||||||
|
#include "flop.h"
|
||||||
|
#include "flop-reg-test.h"
|
||||||
|
|
||||||
|
/* Priorities assigned to the demo tasks. */
|
||||||
|
#define mainCHECK_TASK_PRIORITY ( tskIDLE_PRIORITY + 4 )
|
||||||
|
#define mainSEM_TEST_PRIORITY ( tskIDLE_PRIORITY + 2 )
|
||||||
|
#define mainCOM_TEST_PRIORITY ( tskIDLE_PRIORITY + 1 )
|
||||||
|
#define mainQUEUE_BLOCK_PRIORITY ( tskIDLE_PRIORITY + 1 )
|
||||||
|
#define mainDEATH_PRIORITY ( tskIDLE_PRIORITY + 1 )
|
||||||
|
#define mainLED_TASK_PRIORITY ( tskIDLE_PRIORITY + 1 )
|
||||||
|
#define mainGENERIC_QUEUE_PRIORITY ( tskIDLE_PRIORITY )
|
||||||
|
#define mainQUEUE_POLL_PRIORITY ( tskIDLE_PRIORITY + 1 )
|
||||||
|
#define mainFLOP_PRIORITY ( tskIDLE_PRIORITY )
|
||||||
|
|
||||||
|
/* The first LED used by the COM test and check tasks respectively. */
|
||||||
|
#define mainCOM_TEST_LED ( 4 )
|
||||||
|
#define mainCHECK_TEST_LED ( 3 )
|
||||||
|
|
||||||
|
/* The baud rate used by the comtest tasks is set by the hardware, so the
|
||||||
|
baud rate parameters passed into the comtest initialisation has no effect. */
|
||||||
|
#define mainBAUD_SET_IN_HARDWARE ( 0 )
|
||||||
|
|
||||||
|
/* Delay periods used by the check task. If no errors have been found then
|
||||||
|
the check LED will toggle every mainNO_ERROR_CHECK_DELAY milliseconds. If an
|
||||||
|
error has been found at any time then the toggle rate will increase to
|
||||||
|
mainERROR_CHECK_DELAY milliseconds. */
|
||||||
|
#define mainNO_ERROR_CHECK_DELAY ( ( portTickType ) 3000 / portTICK_RATE_MS )
|
||||||
|
#define mainERROR_CHECK_DELAY ( ( portTickType ) 500 / portTICK_RATE_MS )
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The tasks defined within this file - described within the comments at the
|
||||||
|
* head of this page.
|
||||||
|
*/
|
||||||
|
static void prvRegTestTask1( void *pvParameters );
|
||||||
|
static void prvRegTestTask2( void *pvParameters );
|
||||||
|
static void prvErrorChecks( void *pvParameters );
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Called by the 'check' task to inspect all the standard demo tasks within
|
||||||
|
* the system, as described within the comments at the head of this page.
|
||||||
|
*/
|
||||||
|
static portBASE_TYPE prvCheckOtherTasksAreStillRunning( void );
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Perform any hardware initialisation required by the demo application.
|
||||||
|
*/
|
||||||
|
static void prvSetupHardware( void );
|
||||||
|
|
||||||
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
|
/* xRegTestStatus will get set to pdFAIL by the regtest tasks if they
|
||||||
|
discover an unexpected value. */
|
||||||
|
static volatile unsigned portBASE_TYPE xRegTestStatus = pdPASS;
|
||||||
|
|
||||||
|
/* Counters used to ensure the regtest tasks are still running. */
|
||||||
|
static volatile unsigned portLONG ulRegTest1Counter = 0UL, ulRegTest2Counter = 0UL;
|
||||||
|
|
||||||
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
|
int main( void )
|
||||||
|
{
|
||||||
|
|
||||||
|
/* Must be called prior to installing any interrupt handlers! */
|
||||||
|
vPortSetupInterruptController();
|
||||||
|
|
||||||
|
/* In this case prvSetupHardware() just enables the caches and and
|
||||||
|
configures the IO ports for the LED outputs. */
|
||||||
|
prvSetupHardware();
|
||||||
|
|
||||||
|
/* Start the standard demo application tasks. Note that the baud rate used
|
||||||
|
by the comtest tasks is set by the hardware, so the baud rate parameter
|
||||||
|
passed has no effect. */
|
||||||
|
vStartLEDFlashTasks( mainLED_TASK_PRIORITY );
|
||||||
|
vStartIntegerMathTasks( tskIDLE_PRIORITY );
|
||||||
|
vAltStartComTestTasks( mainCOM_TEST_PRIORITY, mainBAUD_SET_IN_HARDWARE, mainCOM_TEST_LED );
|
||||||
|
vStartSemaphoreTasks( mainSEM_TEST_PRIORITY );
|
||||||
|
vStartBlockingQueueTasks ( mainQUEUE_BLOCK_PRIORITY );
|
||||||
|
vStartDynamicPriorityTasks();
|
||||||
|
vStartGenericQueueTasks( mainGENERIC_QUEUE_PRIORITY );
|
||||||
|
vStartQueuePeekTasks();
|
||||||
|
vCreateBlockTimeTasks();
|
||||||
|
vStartCountingSemaphoreTasks();
|
||||||
|
vStartRecursiveMutexTasks();
|
||||||
|
|
||||||
|
#if ( configUSE_FPU == 1 )
|
||||||
|
vStartMathTasks( mainFLOP_PRIORITY );
|
||||||
|
vStartFlopRegTests();
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Create the tasks defined within this file. */
|
||||||
|
xTaskCreate( prvRegTestTask1, ( signed portCHAR * ) "Regtest1", configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, NULL );
|
||||||
|
xTaskCreate( prvRegTestTask2, ( signed portCHAR * ) "Regtest2", configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, NULL );
|
||||||
|
xTaskCreate( prvErrorChecks, ( signed portCHAR * ) "Check", configMINIMAL_STACK_SIZE, NULL, mainCHECK_TASK_PRIORITY, NULL );
|
||||||
|
|
||||||
|
/* The suicide tasks must be started last as they record the number of other
|
||||||
|
tasks that exist within the system. The value is then used to ensure at run
|
||||||
|
time the number of tasks that exists is within expected bounds. */
|
||||||
|
vCreateSuicidalTasks( mainDEATH_PRIORITY );
|
||||||
|
|
||||||
|
/* Now start the scheduler. Following this call the created tasks should
|
||||||
|
be executing. */
|
||||||
|
vTaskStartScheduler();
|
||||||
|
|
||||||
|
/* vTaskStartScheduler() will only return if an error occurs while the
|
||||||
|
idle task is being created. */
|
||||||
|
for( ;; );
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
|
static portBASE_TYPE prvCheckOtherTasksAreStillRunning( void )
|
||||||
|
{
|
||||||
|
portBASE_TYPE lReturn = pdPASS;
|
||||||
|
static unsigned portLONG ulLastRegTest1Counter= 0UL, ulLastRegTest2Counter = 0UL;
|
||||||
|
|
||||||
|
/* The demo tasks maintain a count that increments every cycle of the task
|
||||||
|
provided that the task has never encountered an error. This function
|
||||||
|
checks the counts maintained by the tasks to ensure they are still being
|
||||||
|
incremented. A count remaining at the same value between calls therefore
|
||||||
|
indicates that an error has been detected. */
|
||||||
|
|
||||||
|
if( xAreIntegerMathsTaskStillRunning() != pdTRUE )
|
||||||
|
{
|
||||||
|
lReturn = pdFAIL;
|
||||||
|
}
|
||||||
|
|
||||||
|
if( xAreComTestTasksStillRunning() != pdTRUE )
|
||||||
|
{
|
||||||
|
lReturn = pdFAIL;
|
||||||
|
}
|
||||||
|
|
||||||
|
if( xAreSemaphoreTasksStillRunning() != pdTRUE )
|
||||||
|
{
|
||||||
|
lReturn = pdFAIL;
|
||||||
|
}
|
||||||
|
|
||||||
|
if( xAreBlockingQueuesStillRunning() != pdTRUE )
|
||||||
|
{
|
||||||
|
lReturn = pdFAIL;
|
||||||
|
}
|
||||||
|
|
||||||
|
if( xAreDynamicPriorityTasksStillRunning() != pdTRUE )
|
||||||
|
{
|
||||||
|
lReturn = pdFAIL;
|
||||||
|
}
|
||||||
|
|
||||||
|
if( xIsCreateTaskStillRunning() != pdTRUE )
|
||||||
|
{
|
||||||
|
lReturn = pdFAIL;
|
||||||
|
}
|
||||||
|
|
||||||
|
if( xAreBlockTimeTestTasksStillRunning() != pdTRUE )
|
||||||
|
{
|
||||||
|
lReturn = pdFAIL;
|
||||||
|
}
|
||||||
|
|
||||||
|
if( xAreGenericQueueTasksStillRunning() != pdTRUE )
|
||||||
|
{
|
||||||
|
lReturn = pdFAIL;
|
||||||
|
}
|
||||||
|
|
||||||
|
if( xAreQueuePeekTasksStillRunning() != pdTRUE )
|
||||||
|
{
|
||||||
|
lReturn = pdFAIL;
|
||||||
|
}
|
||||||
|
|
||||||
|
if( xAreCountingSemaphoreTasksStillRunning() != pdTRUE )
|
||||||
|
{
|
||||||
|
lReturn = pdFAIL;
|
||||||
|
}
|
||||||
|
|
||||||
|
if( xAreRecursiveMutexTasksStillRunning() != pdTRUE )
|
||||||
|
{
|
||||||
|
lReturn = pdFAIL;
|
||||||
|
}
|
||||||
|
|
||||||
|
#if ( configUSE_FPU == 1 )
|
||||||
|
if( xAreMathsTaskStillRunning() != pdTRUE )
|
||||||
|
{
|
||||||
|
lReturn = pdFAIL;
|
||||||
|
}
|
||||||
|
|
||||||
|
if( xAreFlopRegisterTestsStillRunning() != pdTRUE )
|
||||||
|
{
|
||||||
|
lReturn = pdFAIL;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Have the register test tasks found any errors? */
|
||||||
|
if( xRegTestStatus != pdPASS )
|
||||||
|
{
|
||||||
|
lReturn = pdFAIL;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Are the register test tasks still looping? */
|
||||||
|
if( ulLastRegTest1Counter == ulRegTest1Counter )
|
||||||
|
{
|
||||||
|
lReturn = pdFAIL;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ulLastRegTest1Counter = ulRegTest1Counter;
|
||||||
|
}
|
||||||
|
|
||||||
|
if( ulLastRegTest2Counter == ulRegTest2Counter )
|
||||||
|
{
|
||||||
|
lReturn = pdFAIL;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ulLastRegTest2Counter = ulRegTest2Counter;
|
||||||
|
}
|
||||||
|
|
||||||
|
return lReturn;
|
||||||
|
}
|
||||||
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
|
static void prvErrorChecks( void *pvParameters )
|
||||||
|
{
|
||||||
|
portTickType xDelayPeriod = mainNO_ERROR_CHECK_DELAY, xLastExecutionTime;
|
||||||
|
volatile unsigned portBASE_TYPE uxFreeStack;
|
||||||
|
|
||||||
|
/* Just to remove compiler warning. */
|
||||||
|
( void ) pvParameters;
|
||||||
|
|
||||||
|
/* This call is just to demonstrate the use of the function - nothing is
|
||||||
|
done with the value. You would expect the stack high water mark to be
|
||||||
|
lower (the function to return a larger value) here at function entry than
|
||||||
|
later following calls to other functions. */
|
||||||
|
uxFreeStack = uxTaskGetStackHighWaterMark( NULL );
|
||||||
|
|
||||||
|
/* Initialise xLastExecutionTime so the first call to vTaskDelayUntil()
|
||||||
|
works correctly. */
|
||||||
|
xLastExecutionTime = xTaskGetTickCount();
|
||||||
|
|
||||||
|
/* Cycle for ever, delaying then checking all the other tasks are still
|
||||||
|
operating without error. */
|
||||||
|
for( ;; )
|
||||||
|
{
|
||||||
|
/* Again just for demo purposes - uxFreeStack should have a lower value
|
||||||
|
here than following the call to uxTaskGetStackHighWaterMark() on the
|
||||||
|
task entry. */
|
||||||
|
uxFreeStack = uxTaskGetStackHighWaterMark( NULL );
|
||||||
|
|
||||||
|
/* Wait until it is time to check again. The time we wait here depends
|
||||||
|
on whether an error has been detected or not. When an error is
|
||||||
|
detected the time is shortened resulting in a faster LED flash rate. */
|
||||||
|
vTaskDelayUntil( &xLastExecutionTime, xDelayPeriod );
|
||||||
|
|
||||||
|
/* See if the other tasks are all ok. */
|
||||||
|
if( prvCheckOtherTasksAreStillRunning() != pdPASS )
|
||||||
|
{
|
||||||
|
/* An error occurred in one of the tasks so shorten the delay
|
||||||
|
period - which has the effect of increasing the frequency of the
|
||||||
|
LED toggle. */
|
||||||
|
xDelayPeriod = mainERROR_CHECK_DELAY;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Flash! */
|
||||||
|
vParTestToggleLED( mainCHECK_TEST_LED );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
|
static void prvSetupHardware( void )
|
||||||
|
{
|
||||||
|
XCache_EnableICache( 0x80000000 );
|
||||||
|
XCache_EnableDCache( 0x80000000 );
|
||||||
|
|
||||||
|
/* Setup the IO port for use with the LED outputs. */
|
||||||
|
vParTestInitialise();
|
||||||
|
}
|
||||||
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
|
void prvRegTest1Pass( void )
|
||||||
|
{
|
||||||
|
/* Called from the inline assembler - this cannot be static
|
||||||
|
otherwise it can get optimised away. */
|
||||||
|
ulRegTest1Counter++;
|
||||||
|
}
|
||||||
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
|
void prvRegTest2Pass( void )
|
||||||
|
{
|
||||||
|
/* Called from the inline assembler - this cannot be static
|
||||||
|
otherwise it can get optimised away. */
|
||||||
|
ulRegTest2Counter++;
|
||||||
|
}
|
||||||
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
|
void prvRegTestFail( void )
|
||||||
|
{
|
||||||
|
/* Called from the inline assembler - this cannot be static
|
||||||
|
otherwise it can get optimised away. */
|
||||||
|
xRegTestStatus = pdFAIL;
|
||||||
|
}
|
||||||
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
|
static void prvRegTestTask1( void *pvParameters )
|
||||||
|
{
|
||||||
|
/* Just to remove compiler warning. */
|
||||||
|
( void ) pvParameters;
|
||||||
|
|
||||||
|
/* The first register test task as described at the top of this file. The
|
||||||
|
values used in the registers are different to those use in the second
|
||||||
|
register test task. Also, unlike the second register test task, this task
|
||||||
|
yields between setting the register values and subsequently checking the
|
||||||
|
register values. */
|
||||||
|
asm volatile
|
||||||
|
(
|
||||||
|
"RegTest1Start: \n\t" \
|
||||||
|
" \n\t" \
|
||||||
|
" li 0, 301 \n\t" \
|
||||||
|
" mtspr 256, 0 #USPRG0 \n\t" \
|
||||||
|
" li 0, 501 \n\t" \
|
||||||
|
" mtspr 8, 0 #LR \n\t" \
|
||||||
|
" li 0, 4 \n\t" \
|
||||||
|
" mtspr 1, 0 #XER \n\t" \
|
||||||
|
" \n\t" \
|
||||||
|
" li 0, 1 \n\t" \
|
||||||
|
" li 2, 2 \n\t" \
|
||||||
|
" li 3, 3 \n\t" \
|
||||||
|
" li 4, 4 \n\t" \
|
||||||
|
" li 5, 5 \n\t" \
|
||||||
|
" li 6, 6 \n\t" \
|
||||||
|
" li 7, 7 \n\t" \
|
||||||
|
" li 8, 8 \n\t" \
|
||||||
|
" li 9, 9 \n\t" \
|
||||||
|
" li 10, 10 \n\t" \
|
||||||
|
" li 11, 11 \n\t" \
|
||||||
|
" li 12, 12 \n\t" \
|
||||||
|
" li 13, 13 \n\t" \
|
||||||
|
" li 14, 14 \n\t" \
|
||||||
|
" li 15, 15 \n\t" \
|
||||||
|
" li 16, 16 \n\t" \
|
||||||
|
" li 17, 17 \n\t" \
|
||||||
|
" li 18, 18 \n\t" \
|
||||||
|
" li 19, 19 \n\t" \
|
||||||
|
" li 20, 20 \n\t" \
|
||||||
|
" li 21, 21 \n\t" \
|
||||||
|
" li 22, 22 \n\t" \
|
||||||
|
" li 23, 23 \n\t" \
|
||||||
|
" li 24, 24 \n\t" \
|
||||||
|
" li 25, 25 \n\t" \
|
||||||
|
" li 26, 26 \n\t" \
|
||||||
|
" li 27, 27 \n\t" \
|
||||||
|
" li 28, 28 \n\t" \
|
||||||
|
" li 29, 29 \n\t" \
|
||||||
|
" li 30, 30 \n\t" \
|
||||||
|
" li 31, 31 \n\t" \
|
||||||
|
" \n\t" \
|
||||||
|
" sc \n\t" \
|
||||||
|
" nop \n\t" \
|
||||||
|
" \n\t" \
|
||||||
|
" cmpwi 0, 1 \n\t" \
|
||||||
|
" bne RegTest1Fail \n\t" \
|
||||||
|
" cmpwi 2, 2 \n\t" \
|
||||||
|
" bne RegTest1Fail \n\t" \
|
||||||
|
" cmpwi 3, 3 \n\t" \
|
||||||
|
" bne RegTest1Fail \n\t" \
|
||||||
|
" cmpwi 4, 4 \n\t" \
|
||||||
|
" bne RegTest1Fail \n\t" \
|
||||||
|
" cmpwi 5, 5 \n\t" \
|
||||||
|
" bne RegTest1Fail \n\t" \
|
||||||
|
" cmpwi 6, 6 \n\t" \
|
||||||
|
" bne RegTest1Fail \n\t" \
|
||||||
|
" cmpwi 7, 7 \n\t" \
|
||||||
|
" bne RegTest1Fail \n\t" \
|
||||||
|
" cmpwi 8, 8 \n\t" \
|
||||||
|
" bne RegTest1Fail \n\t" \
|
||||||
|
" cmpwi 9, 9 \n\t" \
|
||||||
|
" bne RegTest1Fail \n\t" \
|
||||||
|
" cmpwi 10, 10 \n\t" \
|
||||||
|
" bne RegTest1Fail \n\t" \
|
||||||
|
" cmpwi 11, 11 \n\t" \
|
||||||
|
" bne RegTest1Fail \n\t" \
|
||||||
|
" cmpwi 12, 12 \n\t" \
|
||||||
|
" bne RegTest1Fail \n\t" \
|
||||||
|
" cmpwi 13, 13 \n\t" \
|
||||||
|
" bne RegTest1Fail \n\t" \
|
||||||
|
" cmpwi 14, 14 \n\t" \
|
||||||
|
" bne RegTest1Fail \n\t" \
|
||||||
|
" cmpwi 15, 15 \n\t" \
|
||||||
|
" bne RegTest1Fail \n\t" \
|
||||||
|
" cmpwi 16, 16 \n\t" \
|
||||||
|
" bne RegTest1Fail \n\t" \
|
||||||
|
" cmpwi 17, 17 \n\t" \
|
||||||
|
" bne RegTest1Fail \n\t" \
|
||||||
|
" cmpwi 18, 18 \n\t" \
|
||||||
|
" bne RegTest1Fail \n\t" \
|
||||||
|
" cmpwi 19, 19 \n\t" \
|
||||||
|
" bne RegTest1Fail \n\t" \
|
||||||
|
" cmpwi 20, 20 \n\t" \
|
||||||
|
" bne RegTest1Fail \n\t" \
|
||||||
|
" cmpwi 21, 21 \n\t" \
|
||||||
|
" bne RegTest1Fail \n\t" \
|
||||||
|
" cmpwi 22, 22 \n\t" \
|
||||||
|
" bne RegTest1Fail \n\t" \
|
||||||
|
" cmpwi 23, 23 \n\t" \
|
||||||
|
" bne RegTest1Fail \n\t" \
|
||||||
|
" cmpwi 24, 24 \n\t" \
|
||||||
|
" bne RegTest1Fail \n\t" \
|
||||||
|
" cmpwi 25, 25 \n\t" \
|
||||||
|
" bne RegTest1Fail \n\t" \
|
||||||
|
" cmpwi 26, 26 \n\t" \
|
||||||
|
" bne RegTest1Fail \n\t" \
|
||||||
|
" cmpwi 27, 27 \n\t" \
|
||||||
|
" bne RegTest1Fail \n\t" \
|
||||||
|
" cmpwi 28, 28 \n\t" \
|
||||||
|
" bne RegTest1Fail \n\t" \
|
||||||
|
" cmpwi 29, 29 \n\t" \
|
||||||
|
" bne RegTest1Fail \n\t" \
|
||||||
|
" cmpwi 30, 30 \n\t" \
|
||||||
|
" bne RegTest1Fail \n\t" \
|
||||||
|
" cmpwi 31, 31 \n\t" \
|
||||||
|
" bne RegTest1Fail \n\t" \
|
||||||
|
" \n\t" \
|
||||||
|
" mfspr 0, 256 #USPRG0 \n\t" \
|
||||||
|
" cmpwi 0, 301 \n\t" \
|
||||||
|
" bne RegTest1Fail \n\t" \
|
||||||
|
" mfspr 0, 8 #LR \n\t" \
|
||||||
|
" cmpwi 0, 501 \n\t" \
|
||||||
|
" bne RegTest1Fail \n\t" \
|
||||||
|
" mfspr 0, 1 #XER \n\t" \
|
||||||
|
" cmpwi 0, 4 \n\t" \
|
||||||
|
" bne RegTest1Fail \n\t" \
|
||||||
|
" \n\t" \
|
||||||
|
" bl prvRegTest1Pass \n\t" \
|
||||||
|
" b RegTest1Start \n\t" \
|
||||||
|
" \n\t" \
|
||||||
|
"RegTest1Fail: \n\t" \
|
||||||
|
" \n\t" \
|
||||||
|
" \n\t" \
|
||||||
|
" bl prvRegTestFail \n\t" \
|
||||||
|
" b RegTest1Start \n\t" \
|
||||||
|
);
|
||||||
|
}
|
||||||
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
|
static void prvRegTestTask2( void *pvParameters )
|
||||||
|
{
|
||||||
|
/* Just to remove compiler warning. */
|
||||||
|
( void ) pvParameters;
|
||||||
|
|
||||||
|
/* The second register test task as described at the top of this file.
|
||||||
|
Note that this task fills the registers with different values to the
|
||||||
|
first register test task. */
|
||||||
|
asm volatile
|
||||||
|
(
|
||||||
|
"RegTest2Start: \n\t" \
|
||||||
|
" \n\t" \
|
||||||
|
" li 0, 300 \n\t" \
|
||||||
|
" mtspr 256, 0 #USPRG0 \n\t" \
|
||||||
|
" li 0, 500 \n\t" \
|
||||||
|
" mtspr 8, 0 #LR \n\t" \
|
||||||
|
" li 0, 4 \n\t" \
|
||||||
|
" mtspr 1, 0 #XER \n\t" \
|
||||||
|
" \n\t" \
|
||||||
|
" li 0, 11 \n\t" \
|
||||||
|
" li 2, 12 \n\t" \
|
||||||
|
" li 3, 13 \n\t" \
|
||||||
|
" li 4, 14 \n\t" \
|
||||||
|
" li 5, 15 \n\t" \
|
||||||
|
" li 6, 16 \n\t" \
|
||||||
|
" li 7, 17 \n\t" \
|
||||||
|
" li 8, 18 \n\t" \
|
||||||
|
" li 9, 19 \n\t" \
|
||||||
|
" li 10, 110 \n\t" \
|
||||||
|
" li 11, 111 \n\t" \
|
||||||
|
" li 12, 112 \n\t" \
|
||||||
|
" li 13, 113 \n\t" \
|
||||||
|
" li 14, 114 \n\t" \
|
||||||
|
" li 15, 115 \n\t" \
|
||||||
|
" li 16, 116 \n\t" \
|
||||||
|
" li 17, 117 \n\t" \
|
||||||
|
" li 18, 118 \n\t" \
|
||||||
|
" li 19, 119 \n\t" \
|
||||||
|
" li 20, 120 \n\t" \
|
||||||
|
" li 21, 121 \n\t" \
|
||||||
|
" li 22, 122 \n\t" \
|
||||||
|
" li 23, 123 \n\t" \
|
||||||
|
" li 24, 124 \n\t" \
|
||||||
|
" li 25, 125 \n\t" \
|
||||||
|
" li 26, 126 \n\t" \
|
||||||
|
" li 27, 127 \n\t" \
|
||||||
|
" li 28, 128 \n\t" \
|
||||||
|
" li 29, 129 \n\t" \
|
||||||
|
" li 30, 130 \n\t" \
|
||||||
|
" li 31, 131 \n\t" \
|
||||||
|
" \n\t" \
|
||||||
|
" cmpwi 0, 11 \n\t" \
|
||||||
|
" bne RegTest2Fail \n\t" \
|
||||||
|
" cmpwi 2, 12 \n\t" \
|
||||||
|
" bne RegTest2Fail \n\t" \
|
||||||
|
" cmpwi 3, 13 \n\t" \
|
||||||
|
" bne RegTest2Fail \n\t" \
|
||||||
|
" cmpwi 4, 14 \n\t" \
|
||||||
|
" bne RegTest2Fail \n\t" \
|
||||||
|
" cmpwi 5, 15 \n\t" \
|
||||||
|
" bne RegTest2Fail \n\t" \
|
||||||
|
" cmpwi 6, 16 \n\t" \
|
||||||
|
" bne RegTest2Fail \n\t" \
|
||||||
|
" cmpwi 7, 17 \n\t" \
|
||||||
|
" bne RegTest2Fail \n\t" \
|
||||||
|
" cmpwi 8, 18 \n\t" \
|
||||||
|
" bne RegTest2Fail \n\t" \
|
||||||
|
" cmpwi 9, 19 \n\t" \
|
||||||
|
" bne RegTest2Fail \n\t" \
|
||||||
|
" cmpwi 10, 110 \n\t" \
|
||||||
|
" bne RegTest2Fail \n\t" \
|
||||||
|
" cmpwi 11, 111 \n\t" \
|
||||||
|
" bne RegTest2Fail \n\t" \
|
||||||
|
" cmpwi 12, 112 \n\t" \
|
||||||
|
" bne RegTest2Fail \n\t" \
|
||||||
|
" cmpwi 13, 113 \n\t" \
|
||||||
|
" bne RegTest2Fail \n\t" \
|
||||||
|
" cmpwi 14, 114 \n\t" \
|
||||||
|
" bne RegTest2Fail \n\t" \
|
||||||
|
" cmpwi 15, 115 \n\t" \
|
||||||
|
" bne RegTest2Fail \n\t" \
|
||||||
|
" cmpwi 16, 116 \n\t" \
|
||||||
|
" bne RegTest2Fail \n\t" \
|
||||||
|
" cmpwi 17, 117 \n\t" \
|
||||||
|
" bne RegTest2Fail \n\t" \
|
||||||
|
" cmpwi 18, 118 \n\t" \
|
||||||
|
" bne RegTest2Fail \n\t" \
|
||||||
|
" cmpwi 19, 119 \n\t" \
|
||||||
|
" bne RegTest2Fail \n\t" \
|
||||||
|
" cmpwi 20, 120 \n\t" \
|
||||||
|
" bne RegTest2Fail \n\t" \
|
||||||
|
" cmpwi 21, 121 \n\t" \
|
||||||
|
" bne RegTest2Fail \n\t" \
|
||||||
|
" cmpwi 22, 122 \n\t" \
|
||||||
|
" bne RegTest2Fail \n\t" \
|
||||||
|
" cmpwi 23, 123 \n\t" \
|
||||||
|
" bne RegTest2Fail \n\t" \
|
||||||
|
" cmpwi 24, 124 \n\t" \
|
||||||
|
" bne RegTest2Fail \n\t" \
|
||||||
|
" cmpwi 25, 125 \n\t" \
|
||||||
|
" bne RegTest2Fail \n\t" \
|
||||||
|
" cmpwi 26, 126 \n\t" \
|
||||||
|
" bne RegTest2Fail \n\t" \
|
||||||
|
" cmpwi 27, 127 \n\t" \
|
||||||
|
" bne RegTest2Fail \n\t" \
|
||||||
|
" cmpwi 28, 128 \n\t" \
|
||||||
|
" bne RegTest2Fail \n\t" \
|
||||||
|
" cmpwi 29, 129 \n\t" \
|
||||||
|
" bne RegTest2Fail \n\t" \
|
||||||
|
" cmpwi 30, 130 \n\t" \
|
||||||
|
" bne RegTest2Fail \n\t" \
|
||||||
|
" cmpwi 31, 131 \n\t" \
|
||||||
|
" bne RegTest2Fail \n\t" \
|
||||||
|
" \n\t" \
|
||||||
|
" mfspr 0, 256 #USPRG0 \n\t" \
|
||||||
|
" cmpwi 0, 300 \n\t" \
|
||||||
|
" bne RegTest2Fail \n\t" \
|
||||||
|
" mfspr 0, 8 #LR \n\t" \
|
||||||
|
" cmpwi 0, 500 \n\t" \
|
||||||
|
" bne RegTest2Fail \n\t" \
|
||||||
|
" mfspr 0, 1 #XER \n\t" \
|
||||||
|
" cmpwi 0, 4 \n\t" \
|
||||||
|
" bne RegTest2Fail \n\t" \
|
||||||
|
" \n\t" \
|
||||||
|
" bl prvRegTest2Pass \n\t" \
|
||||||
|
" b RegTest2Start \n\t" \
|
||||||
|
" \n\t" \
|
||||||
|
"RegTest2Fail: \n\t" \
|
||||||
|
" \n\t" \
|
||||||
|
" \n\t" \
|
||||||
|
" bl prvRegTestFail \n\t" \
|
||||||
|
" b RegTest2Start \n\t" \
|
||||||
|
);
|
||||||
|
}
|
||||||
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
|
/* This hook function will get called if there is a suspected stack overflow.
|
||||||
|
An overflow can cause the task name to be corrupted, in which case the task
|
||||||
|
handle needs to be used to determine the offending task. */
|
||||||
|
void vApplicationStackOverflowHook( xTaskHandle xTask, signed portCHAR *pcTaskName );
|
||||||
|
void vApplicationStackOverflowHook( xTaskHandle xTask, signed portCHAR *pcTaskName )
|
||||||
|
{
|
||||||
|
/* To prevent the optimiser removing the variables. */
|
||||||
|
volatile xTaskHandle xTaskIn = xTask;
|
||||||
|
volatile signed portCHAR *pcTaskNameIn = pcTaskName;
|
||||||
|
|
||||||
|
/* Remove compiler warnings. */
|
||||||
|
( void ) xTaskIn;
|
||||||
|
( void ) pcTaskNameIn;
|
||||||
|
|
||||||
|
/* The following three calls are simply to stop compiler warnings about the
|
||||||
|
functions not being used - they are called from the inline assembly. */
|
||||||
|
prvRegTest1Pass();
|
||||||
|
prvRegTest2Pass();
|
||||||
|
prvRegTestFail();
|
||||||
|
|
||||||
|
for( ;; );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
170
Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/partest/partest.c
Normal file
170
Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/partest/partest.c
Normal file
|
@ -0,0 +1,170 @@
|
||||||
|
/*
|
||||||
|
FreeRTOS.org V5.3.1 - Copyright (C) 2003-2009 Richard Barry.
|
||||||
|
|
||||||
|
This file is part of the FreeRTOS.org distribution.
|
||||||
|
|
||||||
|
FreeRTOS.org 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 exception to the GPL is included to allow you to distribute a
|
||||||
|
combined work that includes FreeRTOS.org without being obliged to provide
|
||||||
|
the source code for any proprietary components. Alternative commercial
|
||||||
|
license and support terms are also available upon request. See the
|
||||||
|
licensing section of http://www.FreeRTOS.org for full details.
|
||||||
|
|
||||||
|
FreeRTOS.org is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
|
more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License along
|
||||||
|
with FreeRTOS.org; if not, write to the Free Software Foundation, Inc., 59
|
||||||
|
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
|
||||||
|
|
||||||
|
***************************************************************************
|
||||||
|
* *
|
||||||
|
* Get the FreeRTOS eBook! See http://www.FreeRTOS.org/Documentation *
|
||||||
|
* *
|
||||||
|
* This is a concise, step by step, 'hands on' guide that describes both *
|
||||||
|
* general multitasking concepts and FreeRTOS specifics. It presents and *
|
||||||
|
* explains numerous examples that are written using the FreeRTOS API. *
|
||||||
|
* Full source code for all the examples is provided in an accompanying *
|
||||||
|
* .zip file. *
|
||||||
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
|
1 tab == 4 spaces!
|
||||||
|
|
||||||
|
Please ensure to read the configuration and relevant port sections of the
|
||||||
|
online documentation.
|
||||||
|
|
||||||
|
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
|
contact details.
|
||||||
|
|
||||||
|
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
|
critical systems.
|
||||||
|
|
||||||
|
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
|
licensing and training services.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/* Scheduler includes. */
|
||||||
|
#include "FreeRTOS.h"
|
||||||
|
|
||||||
|
/* Demo application includes. */
|
||||||
|
#include "partest.h"
|
||||||
|
|
||||||
|
/* Library includes. */
|
||||||
|
#include "xparameters.h"
|
||||||
|
#include "xgpio_l.h"
|
||||||
|
|
||||||
|
/* Misc hardware specific definitions. */
|
||||||
|
#define partstALL_AS_OUTPUT 0x00
|
||||||
|
#define partstCHANNEL_1 0x01
|
||||||
|
#define partstMAX_8BIT_LED 0x07
|
||||||
|
|
||||||
|
/* The outputs are split into two IO sections, these variables maintain the
|
||||||
|
current value of either section. */
|
||||||
|
static unsigned portBASE_TYPE uxCurrentOutput8Bit, 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_8BIT_BASEADDR, partstCHANNEL_1, partstALL_AS_OUTPUT );
|
||||||
|
XGpio_mSetDataDirection( XPAR_LEDS_POSITIONS_BASEADDR, partstCHANNEL_1, partstALL_AS_OUTPUT );
|
||||||
|
|
||||||
|
/* Start with all outputs off. */
|
||||||
|
uxCurrentOutput8Bit = 0;
|
||||||
|
XGpio_mSetDataReg( XPAR_LEDS_8BIT_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_8BIT_LED )
|
||||||
|
{
|
||||||
|
uxBaseAddress = XPAR_LEDS_8BIT_BASEADDR;
|
||||||
|
puxCurrentValue = &uxCurrentOutput5Bit;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
uxBaseAddress = XPAR_LEDS_POSITIONS_BASEADDR;
|
||||||
|
puxCurrentValue = &uxCurrentOutput8Bit;
|
||||||
|
uxLED -= partstMAX_8BIT_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_8BIT_LED )
|
||||||
|
{
|
||||||
|
|
||||||
|
uxBaseAddress = XPAR_LEDS_8BIT_BASEADDR;
|
||||||
|
puxCurrentValue = &uxCurrentOutput5Bit;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
uxBaseAddress = XPAR_LEDS_POSITIONS_BASEADDR;
|
||||||
|
puxCurrentValue = &uxCurrentOutput8Bit;
|
||||||
|
uxLED -= partstMAX_8BIT_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();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
235
Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/serial/serial.c
Normal file
235
Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/serial/serial.c
Normal file
|
@ -0,0 +1,235 @@
|
||||||
|
/*
|
||||||
|
FreeRTOS.org V5.3.1 - Copyright (C) 2003-2009 Richard Barry.
|
||||||
|
|
||||||
|
This file is part of the FreeRTOS.org distribution.
|
||||||
|
|
||||||
|
FreeRTOS.org 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 exception to the GPL is included to allow you to distribute a
|
||||||
|
combined work that includes FreeRTOS.org without being obliged to provide
|
||||||
|
the source code for any proprietary components. Alternative commercial
|
||||||
|
license and support terms are also available upon request. See the
|
||||||
|
licensing section of http://www.FreeRTOS.org for full details.
|
||||||
|
|
||||||
|
FreeRTOS.org is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
|
more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License along
|
||||||
|
with FreeRTOS.org; if not, write to the Free Software Foundation, Inc., 59
|
||||||
|
Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||||
|
|
||||||
|
|
||||||
|
***************************************************************************
|
||||||
|
* *
|
||||||
|
* Get the FreeRTOS eBook! See http://www.FreeRTOS.org/Documentation *
|
||||||
|
* *
|
||||||
|
* This is a concise, step by step, 'hands on' guide that describes both *
|
||||||
|
* general multitasking concepts and FreeRTOS specifics. It presents and *
|
||||||
|
* explains numerous examples that are written using the FreeRTOS API. *
|
||||||
|
* Full source code for all the examples is provided in an accompanying *
|
||||||
|
* .zip file. *
|
||||||
|
* *
|
||||||
|
***************************************************************************
|
||||||
|
|
||||||
|
1 tab == 4 spaces!
|
||||||
|
|
||||||
|
Please ensure to read the configuration and relevant port sections of the
|
||||||
|
online documentation.
|
||||||
|
|
||||||
|
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||||
|
contact details.
|
||||||
|
|
||||||
|
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||||
|
critical systems.
|
||||||
|
|
||||||
|
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||||
|
licensing and training services.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
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"
|
||||||
|
|
||||||
|
/* Library includes. */
|
||||||
|
#include "xparameters.h"
|
||||||
|
#include "xuartlite.h"
|
||||||
|
#include "xuartlite_l.h"
|
||||||
|
|
||||||
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
|
/* Queues used to hold received characters, and characters waiting to be
|
||||||
|
transmitted. */
|
||||||
|
static xQueueHandle xRxedChars;
|
||||||
|
static xQueueHandle xCharsForTx;
|
||||||
|
|
||||||
|
/* Structure that maintains information on the UART being used. */
|
||||||
|
static XUartLite xUART;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Sample UART interrupt handler. Note this is used to demonstrate the kernel
|
||||||
|
* features and test the port - it is not intended to represent an efficient
|
||||||
|
* implementation.
|
||||||
|
*/
|
||||||
|
static void vSerialISR( XUartLite *pxUART );
|
||||||
|
|
||||||
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
|
xComPortHandle xSerialPortInitMinimal( unsigned portLONG ulWantedBaud, unsigned portBASE_TYPE uxQueueLength )
|
||||||
|
{
|
||||||
|
/* 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. */
|
||||||
|
( void ) ulWantedBaud;
|
||||||
|
|
||||||
|
/* Create the queues used to hold Rx and Tx characters. */
|
||||||
|
xRxedChars = xQueueCreate( uxQueueLength, ( unsigned portBASE_TYPE ) sizeof( signed portCHAR ) );
|
||||||
|
xCharsForTx = xQueueCreate( uxQueueLength + 1, ( unsigned portBASE_TYPE ) sizeof( signed portCHAR ) );
|
||||||
|
|
||||||
|
/* Only initialise the UART if the queues were created correctly. */
|
||||||
|
if( ( xRxedChars != NULL ) && ( xCharsForTx != NULL ) )
|
||||||
|
{
|
||||||
|
|
||||||
|
XUartLite_Initialize( &xUART, XPAR_RS232_UART_1_DEVICE_ID );
|
||||||
|
XUartLite_ResetFifos( &xUART );
|
||||||
|
XUartLite_DisableInterrupt( &xUART );
|
||||||
|
|
||||||
|
if( xPortInstallInterruptHandler( XPAR_XPS_INTC_0_RS232_UART_1_INTERRUPT_INTR, ( XInterruptHandler )vSerialISR, (void *)&xUART ) == pdPASS )
|
||||||
|
{
|
||||||
|
/* xPortInstallInterruptHandler() could fail if
|
||||||
|
vPortSetupInterruptController() has not been called prior to this
|
||||||
|
function. */
|
||||||
|
XUartLite_EnableInterrupt( &xUART );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* There is only one port so the handle is not used. */
|
||||||
|
return ( xComPortHandle ) 0;
|
||||||
|
}
|
||||||
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
|
signed portBASE_TYPE xSerialGetChar( xComPortHandle pxPort, signed portCHAR *pcRxedChar, portTickType 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 portCHAR cOutChar, portTickType xBlockTime )
|
||||||
|
{
|
||||||
|
portBASE_TYPE xReturn = pdTRUE;
|
||||||
|
|
||||||
|
/* Just to remove compiler warning. */
|
||||||
|
( void ) pxPort;
|
||||||
|
|
||||||
|
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_1_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_1_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;
|
||||||
|
}
|
||||||
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
|
static void vSerialISR( XUartLite *pxUART )
|
||||||
|
{
|
||||||
|
unsigned portLONG ulISRStatus;
|
||||||
|
portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE, lDidSomething;
|
||||||
|
portCHAR cChar;
|
||||||
|
|
||||||
|
/* Just to remove compiler warning. */
|
||||||
|
( void ) pxUART;
|
||||||
|
|
||||||
|
do
|
||||||
|
{
|
||||||
|
lDidSomething = pdFALSE;
|
||||||
|
|
||||||
|
ulISRStatus = XIo_In32( XPAR_RS232_UART_1_BASEADDR + XUL_STATUS_REG_OFFSET );
|
||||||
|
|
||||||
|
if( ( ulISRStatus & 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 = ( portCHAR ) XIo_In32( XPAR_RS232_UART_1_BASEADDR + XUL_RX_FIFO_OFFSET );
|
||||||
|
xQueueSendFromISR( xRxedChars, &cChar, &xHigherPriorityTaskWoken );
|
||||||
|
lDidSomething = pdTRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
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 sent 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_1_BASEADDR + XUL_TX_FIFO_OFFSET, cChar );
|
||||||
|
lDidSomething = pdTRUE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} while( lDidSomething == pdTRUE );
|
||||||
|
|
||||||
|
/* If we woke any tasks we may require a context switch. */
|
||||||
|
if( xHigherPriorityTaskWoken )
|
||||||
|
{
|
||||||
|
portYIELD_FROM_ISR();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
15
Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/Version_Changes.log
Normal file
15
Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/Version_Changes.log
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
The following files will be modified:
|
||||||
|
system.mhs
|
||||||
|
system.mss
|
||||||
|
|
||||||
|
--------------------------------------
|
||||||
|
The following changes will be made:
|
||||||
|
Core ppc440mc_ddr2 2.00.a will be replaced by 2.00.b
|
||||||
|
Core clock_generator 3.00.a will be replaced by 3.01.a
|
||||||
|
|
||||||
|
Driver cpu_ppc440 1.00.b will be replaced by 1.01.a
|
||||||
|
Driver iic 1.14.a will be replaced by 1.15.a
|
||||||
|
--------------------------------------
|
||||||
|
The following changes need to be made manually by the user:
|
||||||
|
Core xps_ethernetlite 2.01.a needs to be replaced by 3.00.a
|
||||||
|
Core plbv46_pcie 3.00.b needs to be replaced by 4.01.a
|
|
@ -0,0 +1,173 @@
|
||||||
|
<?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:xlink="http://www.w3.org/1999/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"/>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
======================================================
|
||||||
|
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>
|
|
@ -0,0 +1,134 @@
|
||||||
|
<?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:xlink="http://www.w3.org/1999/xlink">
|
||||||
|
|
||||||
|
<xsl:variable name="COL_RED" select="'#AA0000'"/>
|
||||||
|
<xsl:variable name="COL_GRAY" select="'#E1E1E1'"/>
|
||||||
|
<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_YELLOW" select="'#FFFFDD'"/>
|
||||||
|
<xsl:variable name="COL_YELLOW_LT" select="'#FFFFEE'"/>
|
||||||
|
|
||||||
|
<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_INTR_0" select="'#FF9900'"/>
|
||||||
|
<xsl:variable name="COL_INTR_1" select="'#00CCCC'"/>
|
||||||
|
<xsl:variable name="COL_INTR_2" select="'#33FF33'"/>
|
||||||
|
<xsl:variable name="COL_INTR_3" select="'#FF00CC'"/>
|
||||||
|
<xsl:variable name="COL_INTR_4" select="'#99FF33'"/>
|
||||||
|
<xsl:variable name="COL_INTR_5" select="'#0066CC'"/>
|
||||||
|
<xsl:variable name="COL_INTR_6" select="'#9933FF'"/>
|
||||||
|
<xsl:variable name="COL_INTR_7" select="'#3300FF'"/>
|
||||||
|
<xsl:variable name="COL_INTR_8" select="'#00FF33'"/>
|
||||||
|
<xsl:variable name="COL_INTR_9" select="'#FF3333'"/>
|
||||||
|
-->
|
||||||
|
|
||||||
|
<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="XIL" RGB="#990066" RGB_LT="#CC3399"/>
|
||||||
|
<BUSCOLOR BUSSTD="OCM" RGB="#0000DD" RGB_LT="#9999DD"/>
|
||||||
|
<BUSCOLOR BUSSTD="OPB" RGB="#339900" RGB_LT="#CCDDCC"/>
|
||||||
|
<BUSCOLOR BUSSTD="LMB" RGB="#7777FF" RGB_LT="#DDDDFF"/>
|
||||||
|
<BUSCOLOR BUSSTD="FSL" RGB="#CC00CC" RGB_LT="#FFBBFF"/>
|
||||||
|
<BUSCOLOR BUSSTD="DCR" RGB="#6699FF" RGB_LT="#BBDDFF"/>
|
||||||
|
<BUSCOLOR BUSSTD="FCB" RGB="#8C00FF" RGB_LT="#CCCCFF"/>
|
||||||
|
<BUSCOLOR BUSSTD="PLB" RGB="#FF5500" RGB_LT="#FFBB00"/>
|
||||||
|
<BUSCOLOR BUSSTD="PLBV34" RGB="#FF5500" RGB_LT="#FFBB00"/>
|
||||||
|
<BUSCOLOR BUSSTD="PLBV34_P2P" RGB="#FF5500" RGB_LT="#FFBB00"/>
|
||||||
|
<BUSCOLOR BUSSTD="PLBV46" RGB="#BB9955" RGB_LT="#FFFFDD"/>
|
||||||
|
<BUSCOLOR BUSSTD="PLBV46_P2P" RGB="#BB9955" RGB_LT="#FFFFDD"/>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
<BUSCOLOR BUSSTD="PLBV46" RGB="#9966FF" RGB_LT="#CCCCFF"/>
|
||||||
|
<BUSCOLOR BUSSTD="PLBV46_P2P" RGB="#9966FF" RGB_LT="#CCCCFF"/>
|
||||||
|
<BUSCOLOR BUSSTD="PLB" RGB="#FFAA33" RGB_LT="#FFEE33"/>
|
||||||
|
<BUSCOLOR BUSSTD="PLBV46" RGB="#FF5500" RGB_LT="#FFBB00"/>
|
||||||
|
<BUSCOLOR BUSSTD="PLBV46_P2P" RGB="#FF5500" RGB_LT="#FFBB00"/>
|
||||||
|
-->
|
||||||
|
|
||||||
|
<BUSCOLOR BUSSTD="TARGET" RGB="#009999" RGB_LT="#00CCCC"/>
|
||||||
|
<BUSCOLOR BUSSTD="INITIATOR" RGB="#009999" RGB_LT="#00CCCC"/>
|
||||||
|
|
||||||
|
<BUSCOLOR BUSSTD="USER" RGB="#009999" RGB_LT="#00CCCC"/>
|
||||||
|
<BUSCOLOR BUSSTD="KEY" RGB="#444444" RGB_LT="#888888"/>
|
||||||
|
|
||||||
|
</xsl:variable>
|
||||||
|
|
||||||
|
<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_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>
|
|
@ -0,0 +1,46 @@
|
||||||
|
<?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:xlink="http://www.w3.org/1999/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:variable name="G_ROOT" select="/"/>
|
||||||
|
|
||||||
|
<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"/>
|
||||||
|
|
||||||
|
</xsl:variable>
|
||||||
|
|
||||||
|
<xsl:variable name="G_BUSSTDS">
|
||||||
|
|
||||||
|
<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="PLBV46"/>
|
||||||
|
<BUSSTD NAME="PLBV46_P2P"/>
|
||||||
|
|
||||||
|
<BUSSTD NAME="USER"/>
|
||||||
|
</xsl:variable>
|
||||||
|
|
||||||
|
|
||||||
|
</xsl:stylesheet>
|
|
@ -0,0 +1,580 @@
|
||||||
|
<?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:xlink="http://www.w3.org/1999/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;
|
||||||
|
}
|
||||||
|
|
||||||
|
-->
|
File diff suppressed because it is too large
Load diff
|
@ -0,0 +1,534 @@
|
||||||
|
<?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:xlink="http://www.w3.org/1999/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="'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">
|
||||||
|
<xsl:with-param name="iBusStd" select="'OPB'"/>
|
||||||
|
</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>
|
File diff suppressed because it is too large
Load diff
|
@ -0,0 +1,115 @@
|
||||||
|
<?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:xlink="http://www.w3.org/1999/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"/>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
===========================================================================
|
||||||
|
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>
|
|
@ -0,0 +1,490 @@
|
||||||
|
<?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:math="http://exslt.org/math"
|
||||||
|
xmlns:exsl="http://exslt.org/common"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
extension-element-prefixes="math">
|
||||||
|
|
||||||
|
<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_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}" style="fill:{$COL_IORING_LT}; stroke:{$COL_IORING}; stroke-width:1"/>
|
||||||
|
|
||||||
|
<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:{$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>
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -0,0 +1,462 @@
|
||||||
|
<?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:math="http://exslt.org/math"
|
||||||
|
xmlns:exsl="http://exslt.org/common"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
extension-element-prefixes="math">
|
||||||
|
|
||||||
|
<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_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>
|
|
@ -0,0 +1,241 @@
|
||||||
|
<?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:xlink="http://www.w3.org/1999/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:for-each select="exsl:node-set($G_BIFTYPES)/BIFTYPE">
|
||||||
|
<xsl:variable name="bifType_" select="@TYPE"/>
|
||||||
|
|
||||||
|
<xsl:variable name="connectedBifs_cnt_" select="count($G_ROOT/EDKSYSTEM/MODULES/MODULE/BUSINTERFACE[((@IS_INMHS = 'TRUE') and (@TYPE = $bifType_) and (@BUSSTD = $busStd_))])"/>
|
||||||
|
|
||||||
|
<xsl:if test="($connectedBifs_cnt_ > 0)">
|
||||||
|
<!--
|
||||||
|
<xsl:message>DEBUG : Connected BifType : <xsl:value-of select="$busStd_"/> : <xsl:value-of select="@TYPE"/> : <xsl:value-of select="$connectedBifs_cnt_"/> </xsl:message>
|
||||||
|
-->
|
||||||
|
<xsl:call-template name="Define_BifTypeConnector">
|
||||||
|
<xsl:with-param name="iBusStd" select="$busStd_"/>
|
||||||
|
<xsl:with-param name="iBifType" select="$bifType_"/>
|
||||||
|
</xsl:call-template>
|
||||||
|
|
||||||
|
<xsl:call-template name="Define_BifLabel">
|
||||||
|
<xsl:with-param name="iBusStd" select="$busStd_"/>
|
||||||
|
</xsl:call-template>
|
||||||
|
|
||||||
|
</xsl:if>
|
||||||
|
|
||||||
|
</xsl:for-each>
|
||||||
|
|
||||||
|
</xsl:for-each>
|
||||||
|
|
||||||
|
<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:call-template name="Define_BifLabel">
|
||||||
|
<xsl:with-param name="iBusStd" select="'KEY'"/>
|
||||||
|
</xsl:call-template>
|
||||||
|
</xsl:for-each>
|
||||||
|
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template name="Define_BifLabel">
|
||||||
|
|
||||||
|
<xsl:param name="iBusStd" select="'OPB'"/>
|
||||||
|
|
||||||
|
<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="'OPB'"/>
|
||||||
|
<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>
|
1704
Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/svg10.dtd
Normal file
1704
Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/svg10.dtd
Normal file
File diff suppressed because it is too large
Load diff
1
Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/bitinit.opt
Normal file
1
Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/bitinit.opt
Normal file
|
@ -0,0 +1 @@
|
||||||
|
$(PPC440_0_BOOTLOOP)
|
26
Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system.gise
Normal file
26
Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system.gise
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||||
|
<generated_project xmlns="http://www.xilinx.com/XMLSchema" xmlns:xil_pn="http://www.xilinx.com/XMLSchema">
|
||||||
|
|
||||||
|
<!-- -->
|
||||||
|
|
||||||
|
<!-- For tool use only. Do not edit. -->
|
||||||
|
|
||||||
|
<!-- -->
|
||||||
|
|
||||||
|
<!-- ProjectNavigator created generated project file. -->
|
||||||
|
|
||||||
|
<!-- For use in tracking generated file and other information -->
|
||||||
|
|
||||||
|
<!-- allowing preservation of process status. -->
|
||||||
|
|
||||||
|
<!-- -->
|
||||||
|
|
||||||
|
<!-- Copyright (c) 1995-2009 Xilinx, Inc. All rights reserved. -->
|
||||||
|
|
||||||
|
<version xmlns="http://www.xilinx.com/XMLSchema">11.1</version>
|
||||||
|
|
||||||
|
<files xmlns="http://www.xilinx.com/XMLSchema"/>
|
||||||
|
|
||||||
|
<transforms xmlns="http://www.xilinx.com/XMLSchema"/>
|
||||||
|
|
||||||
|
</generated_project>
|
BIN
Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system.ise
Normal file
BIN
Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system.ise
Normal file
Binary file not shown.
42
Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system.xise
Normal file
42
Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system.xise
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||||
|
<project xmlns="http://www.xilinx.com/XMLSchema" xmlns:xil_pn="http://www.xilinx.com/XMLSchema">
|
||||||
|
|
||||||
|
<header>
|
||||||
|
<!-- ISE source project file created by Project Navigator. -->
|
||||||
|
<!-- -->
|
||||||
|
<!-- This file contains project source information including a list of -->
|
||||||
|
<!-- project source files, project and process properties. This file, -->
|
||||||
|
<!-- along with the project source files, is sufficient to open and -->
|
||||||
|
<!-- implement in ISE Project Navigator. -->
|
||||||
|
<!-- -->
|
||||||
|
<!-- Copyright (c) 1995-2009 Xilinx, Inc. All rights reserved. -->
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<version xil_pn:ise_version="11.1" xil_pn:schema_version="2"/>
|
||||||
|
|
||||||
|
<files/>
|
||||||
|
|
||||||
|
<properties>
|
||||||
|
<property xil_pn:name="Device" xil_pn:value="xa2c*"/>
|
||||||
|
<property xil_pn:name="Device Family" xil_pn:value="Automotive CoolRunner2"/>
|
||||||
|
<property xil_pn:name="PROP_DesignName" xil_pn:value="system"/>
|
||||||
|
<property xil_pn:name="PROP_Enable_Incremental_Messaging" xil_pn:value="true"/>
|
||||||
|
<property xil_pn:name="PROP_Enable_Message_Filtering" xil_pn:value="true"/>
|
||||||
|
<property xil_pn:name="Package" xil_pn:value="*"/>
|
||||||
|
<property xil_pn:name="Preferred Language" xil_pn:value="Verilog"/>
|
||||||
|
<property xil_pn:name="Simulator" xil_pn:value="ISim (VHDL/Verilog)"/>
|
||||||
|
<property xil_pn:name="Speed Grade" xil_pn:value="-*"/>
|
||||||
|
<property xil_pn:name="Synthesis Tool" xil_pn:value="XST (VHDL/Verilog)"/>
|
||||||
|
<property xil_pn:name="Top-Level Source Type" xil_pn:value="HDL"/>
|
||||||
|
<property xil_pn:name="Verbose Property Persistence" xil_pn:value="false"/>
|
||||||
|
</properties>
|
||||||
|
|
||||||
|
<bindings/>
|
||||||
|
|
||||||
|
<libraries/>
|
||||||
|
|
||||||
|
<partitions>
|
||||||
|
<partition xil_pn:name="/"/>
|
||||||
|
</partitions>
|
||||||
|
|
||||||
|
</project>
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,24 @@
|
||||||
|
CommandLine-Map
|
||||||
|
|
||||||
|
s
|
||||||
|
CommandLine-Ngdbuild
|
||||||
|
|
||||||
|
s
|
||||||
|
CommandLine-Par
|
||||||
|
|
||||||
|
s
|
||||||
|
CommandLine-Xst
|
||||||
|
|
||||||
|
s
|
||||||
|
Previous-NGD
|
||||||
|
|
||||||
|
s
|
||||||
|
Previous-NGM
|
||||||
|
|
||||||
|
s
|
||||||
|
Previous-Packed-NCD
|
||||||
|
|
||||||
|
s
|
||||||
|
Previous-Routed-NCD
|
||||||
|
|
||||||
|
s
|
|
@ -0,0 +1,3 @@
|
||||||
|
ISE_VERSION_LAST_SAVED_WITH
|
||||||
|
11.1
|
||||||
|
s
|
|
@ -0,0 +1,6 @@
|
||||||
|
ISE_VERSION_LAST_SAVED_WITH
|
||||||
|
11.1
|
||||||
|
s
|
||||||
|
XISE_FILE
|
||||||
|
system.xise
|
||||||
|
s
|
|
@ -0,0 +1,3 @@
|
||||||
|
ClientMessageOutputFile
|
||||||
|
_xmsgs/XSLTProcess.xmsgs
|
||||||
|
s
|
|
@ -0,0 +1,21 @@
|
||||||
|
ISE_VERSION_CREATED_WITH
|
||||||
|
11.1
|
||||||
|
s
|
||||||
|
ISE_VERSION_LAST_SAVED_WITH
|
||||||
|
11.1
|
||||||
|
s
|
||||||
|
LastRepoDir
|
||||||
|
E:\my_projects\Wittenstein\release\svn\main2\FreeRTOS\Demo\PPC440_FPU_Xilinx_Virtex5_GCC\__xps\ise\
|
||||||
|
s
|
||||||
|
OBJSTORE_VERSION
|
||||||
|
1.3
|
||||||
|
s
|
||||||
|
PROJECT_CREATION_TIMESTAMP
|
||||||
|
2009-06-13T13:10:25
|
||||||
|
s
|
||||||
|
REGISTRY_VERSION
|
||||||
|
1.1
|
||||||
|
s
|
||||||
|
REPOSITORY_VERSION
|
||||||
|
1.1
|
||||||
|
s
|
|
@ -0,0 +1,3 @@
|
||||||
|
ClientMessageOutputFile
|
||||||
|
_xmsgs/bitgen.xmsgs
|
||||||
|
s
|
|
@ -0,0 +1,3 @@
|
||||||
|
ClientMessageOutputFile
|
||||||
|
_xmsgs/bitinit.xmsgs
|
||||||
|
s
|
|
@ -0,0 +1,12 @@
|
||||||
|
IncrementalMessagingEnabled
|
||||||
|
true
|
||||||
|
s
|
||||||
|
MessageCaptureEnabled
|
||||||
|
true
|
||||||
|
s
|
||||||
|
MessageFilterFile
|
||||||
|
filter.filter
|
||||||
|
s
|
||||||
|
MessageFilteringEnabled
|
||||||
|
true
|
||||||
|
s
|
|
@ -0,0 +1,3 @@
|
||||||
|
ClientMessageOutputFile
|
||||||
|
_xmsgs/cpldfit.xmsgs
|
||||||
|
s
|
|
@ -0,0 +1,3 @@
|
||||||
|
ClientMessageOutputFile
|
||||||
|
_xmsgs/dumpngdio.xmsgs
|
||||||
|
s
|
|
@ -0,0 +1,3 @@
|
||||||
|
ClientMessageOutputFile
|
||||||
|
_xmsgs/fuse.xmsgs
|
||||||
|
s
|
|
@ -0,0 +1,3 @@
|
||||||
|
ClientMessageOutputFile
|
||||||
|
_xmsgs/hprep6.xmsgs
|
||||||
|
s
|
|
@ -0,0 +1,3 @@
|
||||||
|
ClientMessageOutputFile
|
||||||
|
_xmsgs/idem.xmsgs
|
||||||
|
s
|
|
@ -0,0 +1,3 @@
|
||||||
|
ClientMessageOutputFile
|
||||||
|
_xmsgs/libgen.xmsgs
|
||||||
|
s
|
|
@ -0,0 +1,3 @@
|
||||||
|
ClientMessageOutputFile
|
||||||
|
_xmsgs/map.xmsgs
|
||||||
|
s
|
|
@ -0,0 +1,3 @@
|
||||||
|
ClientMessageOutputFile
|
||||||
|
_xmsgs/netgen.xmsgs
|
||||||
|
s
|
|
@ -0,0 +1,3 @@
|
||||||
|
ClientMessageOutputFile
|
||||||
|
_xmsgs/ngc2edif.xmsgs
|
||||||
|
s
|
|
@ -0,0 +1,3 @@
|
||||||
|
ClientMessageOutputFile
|
||||||
|
_xmsgs/ngcbuild.xmsgs
|
||||||
|
s
|
|
@ -0,0 +1,3 @@
|
||||||
|
ClientMessageOutputFile
|
||||||
|
_xmsgs/ngdbuild.xmsgs
|
||||||
|
s
|
|
@ -0,0 +1,3 @@
|
||||||
|
ClientMessageOutputFile
|
||||||
|
_xmsgs/par.xmsgs
|
||||||
|
s
|
|
@ -0,0 +1,3 @@
|
||||||
|
ClientMessageOutputFile
|
||||||
|
_xmsgs/platgen.xmsgs
|
||||||
|
s
|
|
@ -0,0 +1,3 @@
|
||||||
|
ClientMessageOutputFile
|
||||||
|
_xmsgs/runner.xmsgs
|
||||||
|
s
|
|
@ -0,0 +1,3 @@
|
||||||
|
ClientMessageOutputFile
|
||||||
|
_xmsgs/simgen.xmsgs
|
||||||
|
s
|
|
@ -0,0 +1,3 @@
|
||||||
|
ClientMessageOutputFile
|
||||||
|
_xmsgs/taengine.xmsgs
|
||||||
|
s
|
|
@ -0,0 +1,3 @@
|
||||||
|
ClientMessageOutputFile
|
||||||
|
_xmsgs/trce.xmsgs
|
||||||
|
s
|
|
@ -0,0 +1,3 @@
|
||||||
|
ClientMessageOutputFile
|
||||||
|
_xmsgs/tsim.xmsgs
|
||||||
|
s
|
|
@ -0,0 +1,3 @@
|
||||||
|
ClientMessageOutputFile
|
||||||
|
_xmsgs/vhpcomp.xmsgs
|
||||||
|
s
|
|
@ -0,0 +1,3 @@
|
||||||
|
ClientMessageOutputFile
|
||||||
|
_xmsgs/vlogcomp.xmsgs
|
||||||
|
s
|
|
@ -0,0 +1,3 @@
|
||||||
|
ClientMessageOutputFile
|
||||||
|
_xmsgs/xpwr.xmsgs
|
||||||
|
s
|
|
@ -0,0 +1,3 @@
|
||||||
|
ClientMessageOutputFile
|
||||||
|
_xmsgs/xst.xmsgs
|
||||||
|
s
|
|
@ -0,0 +1,10 @@
|
||||||
|
REPOSITORY_VERSION
|
||||||
|
1.1
|
||||||
|
REGISTRY_VERSION
|
||||||
|
1.1
|
||||||
|
OBJSTORE_VERSION
|
||||||
|
1.3
|
||||||
|
ISE_VERSION_CREATED_WITH
|
||||||
|
11.1
|
||||||
|
ISE_VERSION_LAST_SAVED_WITH
|
||||||
|
11.1
|
1
Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/libgen.opt
Normal file
1
Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/libgen.opt
Normal file
|
@ -0,0 +1 @@
|
||||||
|
-p virtex5 -msg __xps/ise/xmsgprops.lst
|
2
Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/platgen.opt
Normal file
2
Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/platgen.opt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
-p xc5vfx70tff1136-1 -lang vhdl -msg __xps/ise/xmsgprops.lst
|
||||||
|
|
|
@ -0,0 +1,20 @@
|
||||||
|
ppc440_0
|
||||||
|
RTOSDEMO_SOURCES = /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/BlockQ.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/blocktim.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/comtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/countsem.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/death.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/dynamic.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/flash.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/GenQTest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/integer.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/QPeek.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/recmutex.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/semtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/tasks.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/list.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/queue.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/croutine.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/portasm.S /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/port.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/MemMang/heap_2.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop-reg-test.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/partest/partest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/serial/serial.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c
|
||||||
|
RTOSDEMO_HEADERS =
|
||||||
|
RTOSDEMO_CC = powerpc-eabi-gcc
|
||||||
|
RTOSDEMO_CC_SIZE = powerpc-eabi-size
|
||||||
|
RTOSDEMO_CC_OPT = -O0
|
||||||
|
RTOSDEMO_CFLAGS = -D USE_DP_FPU -D GCC_PPC440 -mregnames
|
||||||
|
RTOSDEMO_CC_SEARCH = # -B
|
||||||
|
RTOSDEMO_LIBPATH = -L./ppc440_0/lib/ # -L
|
||||||
|
RTOSDEMO_INCLUDES = -I./ppc440_0/include/ -I../../Source/include -I../../Source/portable/GCC/PPC440_Xilinx -I../Common/include -I./RTOSDemo -I./RTOSDemo/flop
|
||||||
|
RTOSDEMO_LFLAGS = # -l
|
||||||
|
RTOSDEMO_LINKER_SCRIPT = /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/RTOSDemo_linker_script.ld
|
||||||
|
RTOSDEMO_CC_DEBUG_FLAG = -g
|
||||||
|
RTOSDEMO_CC_PROFILE_FLAG = # -pg
|
||||||
|
RTOSDEMO_CC_GLOBPTR_FLAG= # -msdata=eabi
|
||||||
|
RTOSDEMO_CC_INFERRED_FLAGS= -mfpu=dp_full -mcpu=440
|
||||||
|
RTOSDEMO_CC_START_ADDR_FLAG= # # -Wl,-defsym -Wl,_START_ADDR=
|
||||||
|
RTOSDEMO_CC_STACK_SIZE_FLAG= # # -Wl,-defsym -Wl,_STACK_SIZE=
|
||||||
|
RTOSDEMO_CC_HEAP_SIZE_FLAG= # # -Wl,-defsym -Wl,_HEAP_SIZE=
|
||||||
|
$(RTOSDEMO_CC_INFERRED_FLAGS) \
|
1
Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/simgen.opt
Normal file
1
Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/simgen.opt
Normal file
|
@ -0,0 +1 @@
|
||||||
|
-p virtex5 -lang vhdl $(PPC440_0_BOOTLOOP) -msg __xps/ise/xmsgprops.lst -s mti -X C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/
|
121
Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/system.filters
Normal file
121
Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/system.filters
Normal file
|
@ -0,0 +1,121 @@
|
||||||
|
|
||||||
|
<FILTERS>
|
||||||
|
|
||||||
|
<SET CLASS="PROJECT" VIEW_ID="BUSINTERFACE">
|
||||||
|
<HEADERS HSCROLL="0" VSCROLL="0">
|
||||||
|
<VARIABLE COL_INDEX="0" COL_WIDTH="146" 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 COLINDEX="0" NAME="By Bus Standard" VALUE="By Bus Standard" VIEWDISP="Bus Interface Filters" VIEWTYPE="STATIC"/>
|
||||||
|
<SET CLASS="FILTER" ID="OPB" IS_VISIBLE="FALSE" ROW_INDEX="0">
|
||||||
|
<VARIABLE IS_LABELED="TRUE" NAME="OPB" VALUE="TRUE" VIEWDISP="Bus Interface Filters" VIEWTYPE="CHECKBOX"/>
|
||||||
|
</SET>
|
||||||
|
<SET CLASS="FILTER" ID="LMB" IS_VISIBLE="FALSE" ROW_INDEX="1">
|
||||||
|
<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="2">
|
||||||
|
<VARIABLE IS_LABELED="TRUE" NAME="PLBV34" VALUE="TRUE" VIEWDISP="Bus Interface Filters" VIEWTYPE="CHECKBOX"/>
|
||||||
|
</SET>
|
||||||
|
<SET CLASS="FILTER" ID="PLBV46" ROW_INDEX="3">
|
||||||
|
<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="4">
|
||||||
|
<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="5">
|
||||||
|
<VARIABLE IS_LABELED="TRUE" NAME="FSL" VALUE="TRUE" VIEWDISP="Bus Interface Filters" VIEWTYPE="CHECKBOX"/>
|
||||||
|
</SET>
|
||||||
|
<SET CLASS="FILTER" ID="DCR" ROW_INDEX="6">
|
||||||
|
<VARIABLE IS_LABELED="TRUE" NAME="DCR" VALUE="TRUE" VIEWDISP="Bus Interface Filters" VIEWTYPE="CHECKBOX"/>
|
||||||
|
</SET>
|
||||||
|
<SET CLASS="FILTER" ID="FCB" ROW_INDEX="7">
|
||||||
|
<VARIABLE IS_LABELED="TRUE" NAME="FCB" VALUE="TRUE" VIEWDISP="Bus Interface Filters" VIEWTYPE="CHECKBOX"/>
|
||||||
|
</SET>
|
||||||
|
<SET CLASS="FILTER" ID="XIL" ROW_INDEX="8">
|
||||||
|
<VARIABLE IS_LABELED="TRUE" NAME="Xilinx Point To Point" VALUE="TRUE" VIEWDISP="Bus Interface Filters" VIEWTYPE="CHECKBOX"/>
|
||||||
|
</SET>
|
||||||
|
<SET CLASS="FILTER" ID="USER" IS_VISIBLE="FALSE" ROW_INDEX="9">
|
||||||
|
<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="10">
|
||||||
|
<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>
|
||||||
|
<VARIABLE COL_WIDTH="50" IS_VISIBLE="TRUE" VIEWDISP="Port Filters" VIEWTYPE="HEADER"/>
|
||||||
|
</HEADERS>
|
||||||
|
<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" ROW_INDEX="0">
|
||||||
|
<VARIABLE IS_LABELED="TRUE" NAME="Clocks" VALUE="TRUE" VIEWDISP="Port Filters" VIEWTYPE="CHECKBOX"/>
|
||||||
|
</SET>
|
||||||
|
<SET CLASS="FILTER" ID="Resets" ROW_INDEX="1">
|
||||||
|
<VARIABLE IS_LABELED="TRUE" NAME="Resets" VALUE="TRUE" VIEWDISP="Port Filters" VIEWTYPE="CHECKBOX"/>
|
||||||
|
</SET>
|
||||||
|
<SET CLASS="FILTER" ID="Interrupts" ROW_INDEX="2">
|
||||||
|
<VARIABLE IS_LABELED="TRUE" NAME="Interrupts" VALUE="TRUE" VIEWDISP="Port Filters" VIEWTYPE="CHECKBOX"/>
|
||||||
|
</SET>
|
||||||
|
<SET CLASS="FILTER" ID="Others" ROW_INDEX="3">
|
||||||
|
<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>
|
103
Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/system.gui
Normal file
103
Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/system.gui
Normal file
|
@ -0,0 +1,103 @@
|
||||||
|
|
||||||
|
<SETTINGS>
|
||||||
|
|
||||||
|
<SET CLASS="PROJECT" DISPLAYMODE="TREE" VIEW_ID="BUSINTERFACE">
|
||||||
|
<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="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="100" IS_VISIBLE="TRUE" VIEWDISP="IP Version" VIEWTYPE="HEADER"/>
|
||||||
|
<VARIABLE COL_INDEX="5" COL_WIDTH="328" IS_VISIBLE="TRUE" 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="144,736,294" VERSION="0"/>
|
||||||
|
<STATUS>
|
||||||
|
<SELECTIONS/>
|
||||||
|
</STATUS>
|
||||||
|
</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="TRUE" 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="67">
|
||||||
|
<VARIABLE COL_INDEX="0" COL_WIDTH="100" IS_VISIBLE="TRUE" VIEWDISP="Name" VIEWTYPE="HEADER"/>
|
||||||
|
<VARIABLE COL_INDEX="1" COL_WIDTH="252" 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" 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="25" 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,475,117" VERSION="0"/>
|
||||||
|
<SET ID="RS232_Uart_1" IS_EXPANDED="TRUE"/>
|
||||||
|
<SET ID="xps_intc_0" IS_EXPANDED="TRUE"/>
|
||||||
|
</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" 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>
|
||||||
|
<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="TRUE" VIEWDISP="ICache" VIEWTYPE="HEADER"/>
|
||||||
|
<VARIABLE COL_INDEX="8" IS_VISIBLE="TRUE" VIEWDISP="DCache" VIEWTYPE="HEADER"/>
|
||||||
|
<VARIABLE COL_INDEX="9" IS_VISIBLE="TRUE" VIEWDISP="IP Type" VIEWTYPE="HEADER"/>
|
||||||
|
<VARIABLE COL_INDEX="10" IS_VISIBLE="TRUE" VIEWDISP="IP Version" VIEWTYPE="HEADER"/>
|
||||||
|
</HEADERS>
|
||||||
|
</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="TRUE" VIEWDISP="ICache" VIEWTYPE="HEADER"/>
|
||||||
|
<VARIABLE COL_INDEX="8" IS_VISIBLE="TRUE" VIEWDISP="DCache" VIEWTYPE="HEADER"/>
|
||||||
|
<VARIABLE COL_INDEX="9" IS_VISIBLE="TRUE" VIEWDISP="IP Type" VIEWTYPE="HEADER"/>
|
||||||
|
<VARIABLE COL_INDEX="10" IS_VISIBLE="TRUE" VIEWDISP="IP Version" VIEWTYPE="HEADER"/>
|
||||||
|
</HEADERS>
|
||||||
|
</SET>
|
||||||
|
|
||||||
|
</SETTINGS>
|
1
Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/xplorer.opt
Normal file
1
Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/xplorer.opt
Normal file
|
@ -0,0 +1 @@
|
||||||
|
-device xc5vfx70tff1136-1 data/system.ucf 7 0
|
1
Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/xpsxflow.opt
Normal file
1
Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/xpsxflow.opt
Normal file
|
@ -0,0 +1 @@
|
||||||
|
-device xc5vfx70tff1136-1 data/system.ucf 0
|
1704
Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/blockdiagram/svg10.dtd
Normal file
1704
Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/blockdiagram/svg10.dtd
Normal file
File diff suppressed because it is too large
Load diff
446
Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/blockdiagram/system.css
Normal file
446
Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/blockdiagram/system.css
Normal file
|
@ -0,0 +1,446 @@
|
||||||
|
|
||||||
|
text.bif_label {
|
||||||
|
fill: #000000;
|
||||||
|
stroke: none;
|
||||||
|
font-size: 6pt;
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 900;
|
||||||
|
text-anchor: middle;
|
||||||
|
font-family: Verdana Arial Helvetica sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
text.debug_label {
|
||||||
|
fill: #555555;
|
||||||
|
stroke: none;
|
||||||
|
font-size: 8pt;
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 900;
|
||||||
|
text-anchor: middle;
|
||||||
|
font-family: Times Arial Helvetica sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
text.ionum_label {
|
||||||
|
fill: #555555;
|
||||||
|
stroke: none;
|
||||||
|
font-size: 10pt;
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 900;
|
||||||
|
text-anchor: middle;
|
||||||
|
font-family: Verdana Arial Helvetica sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
text.iogrp_label {
|
||||||
|
fill: #000088;
|
||||||
|
stroke: none;
|
||||||
|
font-size: 10pt;
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 900;
|
||||||
|
text-anchor: middle;
|
||||||
|
font-family: Verdana Arial Helvetica sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
tspan.iogrp_label_super {
|
||||||
|
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.p2pbus_label {
|
||||||
|
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.multip_label {
|
||||||
|
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.bc_iplabel {
|
||||||
|
fill: #000000;
|
||||||
|
stroke: none;
|
||||||
|
font-size: 6pt;
|
||||||
|
font-style: italic;
|
||||||
|
font-weight: bold;
|
||||||
|
text-anchor: middle;
|
||||||
|
font-family: Courier Arial Helvetica sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
text.bc_iptype {
|
||||||
|
fill: #AA0017;
|
||||||
|
stroke: none;
|
||||||
|
font-size: 6pt;
|
||||||
|
font-style: italic;
|
||||||
|
font-weight: bold;
|
||||||
|
text-anchor: middle;
|
||||||
|
font-family: Verdana Arial Helvetica sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
text.splitbus_label {
|
||||||
|
fill: #000000;
|
||||||
|
stroke: none;
|
||||||
|
font-size: 6pt;
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: bold;
|
||||||
|
text-anchor: middle;
|
||||||
|
font-family: sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
text.sharedbus_label {
|
||||||
|
fill: #000000;
|
||||||
|
stroke: none;
|
||||||
|
font-size: 10pt;
|
||||||
|
font-style: italic;
|
||||||
|
font-weight: bold;
|
||||||
|
text-anchor: start;
|
||||||
|
font-family: Verdana Arial Helvetica sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
text.p2pbus_label_horiz {
|
||||||
|
fill: #000000;
|
||||||
|
stroke: none;
|
||||||
|
font-size: 6pt;
|
||||||
|
font-style: italic;
|
||||||
|
font-weight: bold;
|
||||||
|
text-anchor: start;
|
||||||
|
font-family: Verdana Arial Helvetica sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
text.key_title {
|
||||||
|
fill: #AA0017;
|
||||||
|
stroke: none;
|
||||||
|
font-size: 12pt;
|
||||||
|
font-weight: bold;
|
||||||
|
text-anchor: middle;
|
||||||
|
font-family: Arial Helvetica sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
text.key_header {
|
||||||
|
fill: #000000;
|
||||||
|
stroke: none;
|
||||||
|
font-size: 10pt;
|
||||||
|
font-weight: bold;
|
||||||
|
text-anchor: middle;
|
||||||
|
font-family: Arial Helvetica sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
text.key_label {
|
||||||
|
fill: #000000;
|
||||||
|
stroke: none;
|
||||||
|
font-size: 8pt;
|
||||||
|
font-style: italic;
|
||||||
|
font-weight: bold;
|
||||||
|
text-anchor: start;
|
||||||
|
font-family: Verdana Arial Helvetica sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
text.key_label_ul {
|
||||||
|
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.specs_header {
|
||||||
|
fill: #000000;
|
||||||
|
stroke: none;
|
||||||
|
font-size: 10pt;
|
||||||
|
font-weight: bold;
|
||||||
|
text-anchor: start;
|
||||||
|
font-family: Arial Helvetica sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
text.specs_start {
|
||||||
|
fill: #000000;
|
||||||
|
stroke: none;
|
||||||
|
font-size: 8pt;
|
||||||
|
font-style: italic;
|
||||||
|
font-weight: bold;
|
||||||
|
text-anchor: start;
|
||||||
|
font-family: Verdana Arial Helvetica sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
text.specs_middle {
|
||||||
|
fill: #000000;
|
||||||
|
stroke: none;
|
||||||
|
font-size: 8pt;
|
||||||
|
font-style: italic;
|
||||||
|
font-weight: bold;
|
||||||
|
text-anchor: middle;
|
||||||
|
font-family: Verdana Arial Helvetica sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
text.intr_symbol {
|
||||||
|
fill: #000000;
|
||||||
|
stroke: none;
|
||||||
|
font-size: 8pt;
|
||||||
|
font-weight: bold;
|
||||||
|
text-anchor: start;
|
||||||
|
font-family: 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.mpmctitle {
|
||||||
|
fill: #FFFFFF;
|
||||||
|
stroke: none;
|
||||||
|
font-size: 16pt;
|
||||||
|
font-weight: bold;
|
||||||
|
text-anchor: middle;
|
||||||
|
font-family: Arial Verdana 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.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.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.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.mpmctitle {
|
||||||
|
fill: #FFFFFF;
|
||||||
|
stroke: none;
|
||||||
|
font-size: 16pt;
|
||||||
|
font-weight: bold;
|
||||||
|
text-anchor: middle;
|
||||||
|
font-family: Arial Verdana 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.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.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;
|
||||||
|
}
|
||||||
|
|
1113
Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/blockdiagram/system.svg
Normal file
1113
Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/blockdiagram/system.svg
Normal file
File diff suppressed because it is too large
Load diff
After Width: | Height: | Size: 77 KiB |
495
Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/data/system.ucf
Normal file
495
Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/data/system.ucf
Normal file
|
@ -0,0 +1,495 @@
|
||||||
|
Net fpga_0_RS232_Uart_1_RX_pin LOC = AG15 | IOSTANDARD=LVCMOS33;
|
||||||
|
Net fpga_0_RS232_Uart_1_TX_pin LOC = AG20 | IOSTANDARD=LVCMOS33;
|
||||||
|
Net fpga_0_LEDs_8Bit_GPIO_IO_pin<0> LOC = AE24 | IOSTANDARD=LVCMOS18 | PULLDOWN | SLEW=SLOW | DRIVE=2;
|
||||||
|
Net fpga_0_LEDs_8Bit_GPIO_IO_pin<1> LOC = AD24 | IOSTANDARD=LVCMOS18 | PULLDOWN | SLEW=SLOW | DRIVE=2;
|
||||||
|
Net fpga_0_LEDs_8Bit_GPIO_IO_pin<2> LOC = AD25 | IOSTANDARD=LVCMOS18 | PULLDOWN | SLEW=SLOW | DRIVE=2;
|
||||||
|
Net fpga_0_LEDs_8Bit_GPIO_IO_pin<3> LOC = G16 | IOSTANDARD=LVCMOS25 | PULLDOWN | SLEW=SLOW | DRIVE=2;
|
||||||
|
Net fpga_0_LEDs_8Bit_GPIO_IO_pin<4> LOC = AD26 | IOSTANDARD=LVCMOS18 | PULLDOWN | SLEW=SLOW | DRIVE=2;
|
||||||
|
Net fpga_0_LEDs_8Bit_GPIO_IO_pin<5> LOC = G15 | IOSTANDARD=LVCMOS25 | PULLDOWN | SLEW=SLOW | DRIVE=2;
|
||||||
|
Net fpga_0_LEDs_8Bit_GPIO_IO_pin<6> LOC = L18 | IOSTANDARD=LVCMOS25 | PULLDOWN | SLEW=SLOW | DRIVE=2;
|
||||||
|
Net fpga_0_LEDs_8Bit_GPIO_IO_pin<7> LOC = H18 | IOSTANDARD=LVCMOS25 | PULLDOWN | SLEW=SLOW | DRIVE=2;
|
||||||
|
Net fpga_0_LEDs_Positions_GPIO_IO_pin<0> LOC=E8 | IOSTANDARD=LVCMOS33 | PULLDOWN | SLEW=SLOW | DRIVE=2;
|
||||||
|
Net fpga_0_LEDs_Positions_GPIO_IO_pin<1> LOC=AF23 | IOSTANDARD=LVCMOS33 | PULLDOWN | SLEW=SLOW | DRIVE=2;
|
||||||
|
Net fpga_0_LEDs_Positions_GPIO_IO_pin<2> LOC=AG12 | IOSTANDARD=LVCMOS33 | PULLDOWN | SLEW=SLOW | DRIVE=2;
|
||||||
|
Net fpga_0_LEDs_Positions_GPIO_IO_pin<3> LOC=AG23 | IOSTANDARD=LVCMOS33 | PULLDOWN | SLEW=SLOW | DRIVE=2;
|
||||||
|
Net fpga_0_LEDs_Positions_GPIO_IO_pin<4> LOC=AF13 | IOSTANDARD=LVCMOS33 | PULLDOWN | SLEW=SLOW | DRIVE=2;
|
||||||
|
Net fpga_0_Push_Buttons_5Bit_GPIO_IO_pin<0> LOC = AJ6 | IOSTANDARD=LVCMOS33 | PULLDOWN | SLEW=SLOW | DRIVE=2;
|
||||||
|
Net fpga_0_Push_Buttons_5Bit_GPIO_IO_pin<1> LOC = AJ7 | IOSTANDARD=LVCMOS33 | PULLDOWN | SLEW=SLOW | DRIVE=2;
|
||||||
|
Net fpga_0_Push_Buttons_5Bit_GPIO_IO_pin<2> LOC = V8 | IOSTANDARD=LVCMOS33 | PULLDOWN | SLEW=SLOW | DRIVE=2;
|
||||||
|
Net fpga_0_Push_Buttons_5Bit_GPIO_IO_pin<3> LOC = AK7 | IOSTANDARD=LVCMOS33 | PULLDOWN | SLEW=SLOW | DRIVE=2;
|
||||||
|
Net fpga_0_Push_Buttons_5Bit_GPIO_IO_pin<4> LOC = U8 | IOSTANDARD=LVCMOS33 | PULLDOWN | SLEW=SLOW | DRIVE=2;
|
||||||
|
Net fpga_0_DIP_Switches_8Bit_GPIO_IO_pin<0> LOC=U25 | IOSTANDARD=LVCMOS18 | PULLDOWN | SLEW=SLOW | DRIVE=2;
|
||||||
|
Net fpga_0_DIP_Switches_8Bit_GPIO_IO_pin<1> LOC=AG27 | IOSTANDARD=LVCMOS18 | PULLDOWN | SLEW=SLOW | DRIVE=2;
|
||||||
|
Net fpga_0_DIP_Switches_8Bit_GPIO_IO_pin<2> LOC=AF25 | IOSTANDARD=LVCMOS18 | PULLDOWN | SLEW=SLOW | DRIVE=2;
|
||||||
|
Net fpga_0_DIP_Switches_8Bit_GPIO_IO_pin<3> LOC=AF26 | IOSTANDARD=LVCMOS18 | PULLDOWN | SLEW=SLOW | DRIVE=2;
|
||||||
|
Net fpga_0_DIP_Switches_8Bit_GPIO_IO_pin<4> LOC=AE27 | IOSTANDARD=LVCMOS18 | PULLDOWN | SLEW=SLOW | DRIVE=2;
|
||||||
|
Net fpga_0_DIP_Switches_8Bit_GPIO_IO_pin<5> LOC=AE26 | IOSTANDARD=LVCMOS18 | PULLDOWN | SLEW=SLOW | DRIVE=2;
|
||||||
|
Net fpga_0_DIP_Switches_8Bit_GPIO_IO_pin<6> LOC=AC25 | IOSTANDARD=LVCMOS18 | PULLDOWN | SLEW=SLOW | DRIVE=2;
|
||||||
|
Net fpga_0_DIP_Switches_8Bit_GPIO_IO_pin<7> LOC=AC24 | IOSTANDARD=LVCMOS18 | PULLDOWN | SLEW=SLOW | DRIVE=2;
|
||||||
|
Net fpga_0_IIC_EEPROM_Sda_pin LOC=F8 | SLEW = SLOW | DRIVE = 6 | IOSTANDARD=LVCMOS33;
|
||||||
|
Net fpga_0_IIC_EEPROM_Scl_pin LOC=F9 | SLEW = SLOW | DRIVE = 6 | IOSTANDARD=LVCMOS33;
|
||||||
|
Net fpga_0_SRAM_Mem_A_pin<30> LOC=K12 | SLEW = FAST | DRIVE = 8 | IOSTANDARD=LVCMOS33;
|
||||||
|
Net fpga_0_SRAM_Mem_A_pin<29> LOC=K13 | SLEW = FAST | DRIVE = 8 | IOSTANDARD=LVCMOS33;
|
||||||
|
Net fpga_0_SRAM_Mem_A_pin<28> LOC=H23 | SLEW = FAST | DRIVE = 8 | IOSTANDARD=LVCMOS33;
|
||||||
|
Net fpga_0_SRAM_Mem_A_pin<27> LOC=G23 | SLEW = FAST | DRIVE = 8 | IOSTANDARD=LVCMOS33;
|
||||||
|
Net fpga_0_SRAM_Mem_A_pin<26> LOC=H12 | SLEW = FAST | DRIVE = 8 | IOSTANDARD=LVCMOS33;
|
||||||
|
Net fpga_0_SRAM_Mem_A_pin<25> LOC=J12 | SLEW = FAST | DRIVE = 8 | IOSTANDARD=LVCMOS33;
|
||||||
|
Net fpga_0_SRAM_Mem_A_pin<24> LOC=K22 | SLEW = FAST | DRIVE = 8 | IOSTANDARD=LVCMOS33;
|
||||||
|
Net fpga_0_SRAM_Mem_A_pin<23> LOC=K23 | SLEW = FAST | DRIVE = 8 | IOSTANDARD=LVCMOS33;
|
||||||
|
Net fpga_0_SRAM_Mem_A_pin<22> LOC=K14 | SLEW = FAST | DRIVE = 8 | IOSTANDARD=LVCMOS33;
|
||||||
|
Net fpga_0_SRAM_Mem_A_pin<21> LOC=L14 | SLEW = FAST | DRIVE = 8 | IOSTANDARD=LVCMOS33;
|
||||||
|
Net fpga_0_SRAM_Mem_A_pin<20> LOC=H22 | SLEW = FAST | DRIVE = 8 | IOSTANDARD=LVCMOS33;
|
||||||
|
Net fpga_0_SRAM_Mem_A_pin<19> LOC=G22 | SLEW = FAST | DRIVE = 8 | IOSTANDARD=LVCMOS33;
|
||||||
|
Net fpga_0_SRAM_Mem_A_pin<18> LOC=J15 | SLEW = FAST | DRIVE = 8 | IOSTANDARD=LVCMOS33;
|
||||||
|
Net fpga_0_SRAM_Mem_A_pin<17> LOC=K16 | SLEW = FAST | DRIVE = 8 | IOSTANDARD=LVCMOS33;
|
||||||
|
Net fpga_0_SRAM_Mem_A_pin<16> LOC=K21 | SLEW = FAST | DRIVE = 8 | IOSTANDARD=LVCMOS33;
|
||||||
|
Net fpga_0_SRAM_Mem_A_pin<15> LOC=J22 | SLEW = FAST | DRIVE = 8 | IOSTANDARD=LVCMOS33;
|
||||||
|
Net fpga_0_SRAM_Mem_A_pin<14> LOC=L16 | SLEW = FAST | DRIVE = 8 | IOSTANDARD=LVCMOS33;
|
||||||
|
Net fpga_0_SRAM_Mem_A_pin<13> LOC=L15 | SLEW = FAST | DRIVE = 8 | IOSTANDARD=LVCMOS33;
|
||||||
|
Net fpga_0_SRAM_Mem_A_pin<12> LOC=L20 | SLEW = FAST | DRIVE = 8 | IOSTANDARD=LVCMOS33;
|
||||||
|
Net fpga_0_SRAM_Mem_A_pin<11> LOC=L21 | SLEW = FAST | DRIVE = 8 | IOSTANDARD=LVCMOS33;
|
||||||
|
Net fpga_0_SRAM_Mem_A_pin<10> LOC=AE23 | SLEW = FAST | DRIVE = 8 | IOSTANDARD=LVCMOS33;
|
||||||
|
Net fpga_0_SRAM_Mem_A_pin<9> LOC=AE22 | SLEW = FAST | DRIVE = 8 | IOSTANDARD=LVCMOS33;
|
||||||
|
Net fpga_0_SRAM_Mem_A_pin<8> LOC=AE12 | SLEW = FAST | DRIVE = 8 | IOSTANDARD=LVCMOS33;
|
||||||
|
Net fpga_0_SRAM_Mem_A_pin<7> LOC=AE13 | SLEW = FAST | DRIVE = 8 | IOSTANDARD=LVCMOS33;
|
||||||
|
Net fpga_0_SRAM_Mem_CEN_pin LOC=J10 | IOSTANDARD=LVDCI_33;
|
||||||
|
Net fpga_0_SRAM_Mem_OEN_pin LOC=B12 | IOSTANDARD=LVDCI_33;
|
||||||
|
Net fpga_0_SRAM_Mem_WEN_pin LOC=AF20 | SLEW = FAST | DRIVE = 12 | IOSTANDARD=LVCMOS33;
|
||||||
|
Net fpga_0_SRAM_Mem_BEN_pin<3> LOC=J11 | IOSTANDARD=LVDCI_33;
|
||||||
|
Net fpga_0_SRAM_Mem_BEN_pin<2> LOC=K11 | IOSTANDARD=LVDCI_33;
|
||||||
|
Net fpga_0_SRAM_Mem_BEN_pin<1> LOC=D10 | IOSTANDARD=LVDCI_33;
|
||||||
|
Net fpga_0_SRAM_Mem_BEN_pin<0> LOC=D11 | IOSTANDARD=LVDCI_33;
|
||||||
|
Net fpga_0_SRAM_Mem_ADV_LDN_pin LOC=H8 | IOSTANDARD=LVDCI_33;
|
||||||
|
Net fpga_0_SRAM_Mem_DQ_pin<0> LOC=AG22 | PULLDOWN | SLEW = FAST | DRIVE = 12 | IOSTANDARD=LVCMOS33;
|
||||||
|
Net fpga_0_SRAM_Mem_DQ_pin<1> LOC=AH22 | PULLDOWN | SLEW = FAST | DRIVE = 12 | IOSTANDARD=LVCMOS33;
|
||||||
|
Net fpga_0_SRAM_Mem_DQ_pin<2> LOC=AH12 | PULLDOWN | SLEW = FAST | DRIVE = 12 | IOSTANDARD=LVCMOS33;
|
||||||
|
Net fpga_0_SRAM_Mem_DQ_pin<3> LOC=AG13 | PULLDOWN | SLEW = FAST | DRIVE = 12 | IOSTANDARD=LVCMOS33;
|
||||||
|
Net fpga_0_SRAM_Mem_DQ_pin<4> LOC=AH20 | PULLDOWN | SLEW = FAST | DRIVE = 12 | IOSTANDARD=LVCMOS33;
|
||||||
|
Net fpga_0_SRAM_Mem_DQ_pin<5> LOC=AH19 | PULLDOWN | SLEW = FAST | DRIVE = 12 | IOSTANDARD=LVCMOS33;
|
||||||
|
Net fpga_0_SRAM_Mem_DQ_pin<6> LOC=AH14 | PULLDOWN | SLEW = FAST | DRIVE = 12 | IOSTANDARD=LVCMOS33;
|
||||||
|
Net fpga_0_SRAM_Mem_DQ_pin<7> LOC=AH13 | PULLDOWN | SLEW = FAST | DRIVE = 12 | IOSTANDARD=LVCMOS33;
|
||||||
|
Net fpga_0_SRAM_Mem_DQ_pin<8> LOC=AF15 | PULLDOWN | SLEW = FAST | DRIVE = 12 | IOSTANDARD=LVCMOS33;
|
||||||
|
Net fpga_0_SRAM_Mem_DQ_pin<9> LOC=AE16 | PULLDOWN | SLEW = FAST | DRIVE = 12 | IOSTANDARD=LVCMOS33;
|
||||||
|
Net fpga_0_SRAM_Mem_DQ_pin<10> LOC=AE21 | PULLDOWN | SLEW = FAST | DRIVE = 12 | IOSTANDARD=LVCMOS33;
|
||||||
|
Net fpga_0_SRAM_Mem_DQ_pin<11> LOC=AD20 | PULLDOWN | SLEW = FAST | DRIVE = 12 | IOSTANDARD=LVCMOS33;
|
||||||
|
Net fpga_0_SRAM_Mem_DQ_pin<12> LOC=AF16 | PULLDOWN | SLEW = FAST | DRIVE = 12 | IOSTANDARD=LVCMOS33;
|
||||||
|
Net fpga_0_SRAM_Mem_DQ_pin<13> LOC=AE17 | PULLDOWN | SLEW = FAST | DRIVE = 12 | IOSTANDARD=LVCMOS33;
|
||||||
|
Net fpga_0_SRAM_Mem_DQ_pin<14> LOC=AE19 | PULLDOWN | SLEW = FAST | DRIVE = 12 | IOSTANDARD=LVCMOS33;
|
||||||
|
Net fpga_0_SRAM_Mem_DQ_pin<15> LOC=AD19 | PULLDOWN | SLEW = FAST | DRIVE = 12 | IOSTANDARD=LVCMOS33;
|
||||||
|
Net fpga_0_SRAM_Mem_DQ_pin<16> LOC=J9 | PULLDOWN | IOSTANDARD=LVDCI_33;
|
||||||
|
Net fpga_0_SRAM_Mem_DQ_pin<17> LOC=K8 | PULLDOWN | IOSTANDARD=LVDCI_33;
|
||||||
|
Net fpga_0_SRAM_Mem_DQ_pin<18> LOC=K9 | PULLDOWN | IOSTANDARD=LVDCI_33;
|
||||||
|
Net fpga_0_SRAM_Mem_DQ_pin<19> LOC=B13 | PULLDOWN | IOSTANDARD=LVDCI_33;
|
||||||
|
Net fpga_0_SRAM_Mem_DQ_pin<20> LOC=C13 | PULLDOWN | IOSTANDARD=LVDCI_33;
|
||||||
|
Net fpga_0_SRAM_Mem_DQ_pin<21> LOC=G11 | PULLDOWN | IOSTANDARD=LVDCI_33;
|
||||||
|
Net fpga_0_SRAM_Mem_DQ_pin<22> LOC=G12 | PULLDOWN | IOSTANDARD=LVDCI_33;
|
||||||
|
Net fpga_0_SRAM_Mem_DQ_pin<23> LOC=M8 | PULLDOWN | IOSTANDARD=LVDCI_33;
|
||||||
|
Net fpga_0_SRAM_Mem_DQ_pin<24> LOC=L8 | PULLDOWN | IOSTANDARD=LVDCI_33;
|
||||||
|
Net fpga_0_SRAM_Mem_DQ_pin<25> LOC=F11 | PULLDOWN | IOSTANDARD=LVDCI_33;
|
||||||
|
Net fpga_0_SRAM_Mem_DQ_pin<26> LOC=E11 | PULLDOWN | IOSTANDARD=LVDCI_33;
|
||||||
|
Net fpga_0_SRAM_Mem_DQ_pin<27> LOC=M10 | PULLDOWN | IOSTANDARD=LVDCI_33;
|
||||||
|
Net fpga_0_SRAM_Mem_DQ_pin<28> LOC=L9 | PULLDOWN | IOSTANDARD=LVDCI_33;
|
||||||
|
Net fpga_0_SRAM_Mem_DQ_pin<29> LOC=E12 | PULLDOWN | IOSTANDARD=LVDCI_33;
|
||||||
|
Net fpga_0_SRAM_Mem_DQ_pin<30> LOC=E13 | PULLDOWN | IOSTANDARD=LVDCI_33;
|
||||||
|
Net fpga_0_SRAM_Mem_DQ_pin<31> LOC=N10 | PULLDOWN | IOSTANDARD=LVDCI_33;
|
||||||
|
Net fpga_0_SRAM_ZBT_CLK_OUT_pin LOC=G8 | SLEW = FAST | DRIVE = 12 | IOSTANDARD=LVCMOS33;
|
||||||
|
Net fpga_0_SRAM_ZBT_CLK_FB_pin LOC=AG21 | IOSTANDARD=LVCMOS33;
|
||||||
|
Net fpga_0_PCIe_Bridge_RXN_pin LOC=AF1 | IOSTANDARD = LVDS_25;
|
||||||
|
Net fpga_0_PCIe_Bridge_RXP_pin LOC=AE1 | IOSTANDARD = LVDS_25;
|
||||||
|
Net fpga_0_PCIe_Bridge_TXN_pin LOC=AE2 | IOSTANDARD = LVDS_25;
|
||||||
|
Net fpga_0_PCIe_Bridge_TXP_pin LOC=AD2 | IOSTANDARD = LVDS_25;
|
||||||
|
Net "pcie_bridge/*SPLB_Clk" TNM_NET = "SPLB_Clk";
|
||||||
|
Net "pcie_bridge/*Bridge_Clk" TNM_NET = "Bridge_Clk";
|
||||||
|
|
||||||
|
## Timing constraints between clock-domain boundaries
|
||||||
|
#
|
||||||
|
TIMESPEC "TS_PLB_PCIe" = FROM "SPLB_Clk" TO "Bridge_Clk" 8 ns datapathonly;
|
||||||
|
TIMESPEC "TS_PCIe_PLB" = FROM "Bridge_Clk" TO "SPLB_Clk" 8 ns datapathonly;
|
||||||
|
|
||||||
|
Net fpga_0_Ethernet_MAC_PHY_tx_clk_pin LOC=K17 | IOSTANDARD = LVCMOS25;
|
||||||
|
Net fpga_0_Ethernet_MAC_PHY_rx_clk_pin LOC=H17 | IOSTANDARD = LVCMOS25;
|
||||||
|
Net fpga_0_Ethernet_MAC_PHY_crs_pin LOC=E34 | IOSTANDARD = LVCMOS25;
|
||||||
|
Net fpga_0_Ethernet_MAC_PHY_dv_pin LOC=E32 | IOSTANDARD = LVCMOS25;
|
||||||
|
Net fpga_0_Ethernet_MAC_PHY_rx_data_pin<0> LOC=A33 | IOSTANDARD = LVCMOS25;
|
||||||
|
Net fpga_0_Ethernet_MAC_PHY_rx_data_pin<1> LOC=B33 | IOSTANDARD = LVCMOS25;
|
||||||
|
Net fpga_0_Ethernet_MAC_PHY_rx_data_pin<2> LOC=C33 | IOSTANDARD = LVCMOS25;
|
||||||
|
Net fpga_0_Ethernet_MAC_PHY_rx_data_pin<3> LOC=C32 | IOSTANDARD = LVCMOS25;
|
||||||
|
Net fpga_0_Ethernet_MAC_PHY_col_pin LOC=B32 | IOSTANDARD = LVCMOS25;
|
||||||
|
Net fpga_0_Ethernet_MAC_PHY_rx_er_pin LOC=E33 | IOSTANDARD = LVCMOS25;
|
||||||
|
Net fpga_0_Ethernet_MAC_PHY_rst_n_pin LOC=J14 | IOSTANDARD = LVCMOS25 | TIG;
|
||||||
|
Net fpga_0_Ethernet_MAC_PHY_tx_en_pin LOC=AJ10 | IOSTANDARD = LVDCI_33;
|
||||||
|
Net fpga_0_Ethernet_MAC_PHY_tx_data_pin<3> LOC=AH10 | IOSTANDARD = LVDCI_33;
|
||||||
|
Net fpga_0_Ethernet_MAC_PHY_tx_data_pin<2> LOC=AH9 | IOSTANDARD = LVDCI_33;
|
||||||
|
Net fpga_0_Ethernet_MAC_PHY_tx_data_pin<1> LOC=AE11 | IOSTANDARD = LVDCI_33;
|
||||||
|
Net fpga_0_Ethernet_MAC_PHY_tx_data_pin<0> LOC=AF11 | IOSTANDARD = LVDCI_33;
|
||||||
|
Net fpga_0_Ethernet_MAC_MDINT_pin LOC=H20 | IOSTANDARD = LVCMOS25 | TIG;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_DQ_pin<0> LOC=AF30 | IOSTANDARD = SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_DQ_pin<1> LOC=AK31 | IOSTANDARD = SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_DQ_pin<2> LOC=AF31 | IOSTANDARD = SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_DQ_pin<3> LOC=AD30 | IOSTANDARD = SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_DQ_pin<4> LOC=AJ30 | IOSTANDARD = SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_DQ_pin<5> LOC=AF29 | IOSTANDARD = SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_DQ_pin<6> LOC=AD29 | IOSTANDARD = SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_DQ_pin<7> LOC=AE29 | IOSTANDARD = SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_DQ_pin<8> LOC=AH27 | IOSTANDARD = SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_DQ_pin<9> LOC=AF28 | IOSTANDARD = SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_DQ_pin<10> LOC=AH28 | IOSTANDARD = SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_DQ_pin<11> LOC=AA28 | IOSTANDARD = SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_DQ_pin<12> LOC=AG25 | IOSTANDARD = SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_DQ_pin<13> LOC=AJ26 | IOSTANDARD = SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_DQ_pin<14> LOC=AG28 | IOSTANDARD = SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_DQ_pin<15> LOC=AB28 | IOSTANDARD = SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_DQ_pin<16> LOC=AC28 | IOSTANDARD = SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_DQ_pin<17> LOC=AB25 | IOSTANDARD = SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_DQ_pin<18> LOC=AC27 | IOSTANDARD = SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_DQ_pin<19> LOC=AA26 | IOSTANDARD = SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_DQ_pin<20> LOC=AB26 | IOSTANDARD = SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_DQ_pin<21> LOC=AA24 | IOSTANDARD = SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_DQ_pin<22> LOC=AB27 | IOSTANDARD = SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_DQ_pin<23> LOC=AA25 | IOSTANDARD = SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_DQ_pin<24> LOC=AC29 | IOSTANDARD = SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_DQ_pin<25> LOC=AB30 | IOSTANDARD = SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_DQ_pin<26> LOC=W31 | IOSTANDARD = SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_DQ_pin<27> LOC=V30 | IOSTANDARD = SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_DQ_pin<28> LOC=AC30 | IOSTANDARD = SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_DQ_pin<29> LOC=W29 | IOSTANDARD = SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_DQ_pin<30> LOC=V27 | IOSTANDARD = SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_DQ_pin<31> LOC=W27 | IOSTANDARD = SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_DQ_pin<32> LOC=V29 | IOSTANDARD = SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_DQ_pin<33> LOC=Y27 | IOSTANDARD = SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_DQ_pin<34> LOC=Y26 | IOSTANDARD = SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_DQ_pin<35> LOC=W24 | IOSTANDARD = SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_DQ_pin<36> LOC=V28 | IOSTANDARD = SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_DQ_pin<37> LOC=W25 | IOSTANDARD = SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_DQ_pin<38> LOC=W26 | IOSTANDARD = SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_DQ_pin<39> LOC=V24 | IOSTANDARD = SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_DQ_pin<40> LOC=R24 | IOSTANDARD = SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_DQ_pin<41> LOC=P25 | IOSTANDARD = SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_DQ_pin<42> LOC=N24 | IOSTANDARD = SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_DQ_pin<43> LOC=P26 | IOSTANDARD = SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_DQ_pin<44> LOC=T24 | IOSTANDARD = SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_DQ_pin<45> LOC=N25 | IOSTANDARD = SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_DQ_pin<46> LOC=P27 | IOSTANDARD = SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_DQ_pin<47> LOC=N28 | IOSTANDARD = SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_DQ_pin<48> LOC=M28 | IOSTANDARD = SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_DQ_pin<49> LOC=L28 | IOSTANDARD = SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_DQ_pin<50> LOC=F25 | IOSTANDARD = SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_DQ_pin<51> LOC=H25 | IOSTANDARD = SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_DQ_pin<52> LOC=K27 | IOSTANDARD = SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_DQ_pin<53> LOC=K28 | IOSTANDARD = SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_DQ_pin<54> LOC=H24 | IOSTANDARD = SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_DQ_pin<55> LOC=G26 | IOSTANDARD = SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_DQ_pin<56> LOC=G25 | IOSTANDARD = SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_DQ_pin<57> LOC=M26 | IOSTANDARD = SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_DQ_pin<58> LOC=J24 | IOSTANDARD = SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_DQ_pin<59> LOC=L26 | IOSTANDARD = SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_DQ_pin<60> LOC=J27 | IOSTANDARD = SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_DQ_pin<61> LOC=M25 | IOSTANDARD = SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_DQ_pin<62> LOC=L25 | IOSTANDARD = SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_DQ_pin<63> LOC=L24 | IOSTANDARD = SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_DQS_pin<0> LOC=AA29 | IOSTANDARD = DIFF_SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_DQS_pin<1> LOC=AK28 | IOSTANDARD = DIFF_SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_DQS_pin<2> LOC=AK26 | IOSTANDARD = DIFF_SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_DQS_pin<3> LOC=AB31 | IOSTANDARD = DIFF_SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_DQS_pin<4> LOC=Y28 | IOSTANDARD = DIFF_SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_DQS_pin<5> LOC=E26 | IOSTANDARD = DIFF_SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_DQS_pin<6> LOC=H28 | IOSTANDARD = DIFF_SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_DQS_pin<7> LOC=G27 | IOSTANDARD = DIFF_SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_DQS_N_pin<0> LOC=AA30 | IOSTANDARD = DIFF_SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_DQS_N_pin<1> LOC=AK27 | IOSTANDARD = DIFF_SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_DQS_N_pin<2> LOC=AJ27 | IOSTANDARD = DIFF_SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_DQS_N_pin<3> LOC=AA31 | IOSTANDARD = DIFF_SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_DQS_N_pin<4> LOC=Y29 | IOSTANDARD = DIFF_SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_DQS_N_pin<5> LOC=E27 | IOSTANDARD = DIFF_SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_DQS_N_pin<6> LOC=G28 | IOSTANDARD = DIFF_SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_DQS_N_pin<7> LOC=H27 | IOSTANDARD = DIFF_SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_A_pin<0> LOC=L30 | IOSTANDARD = SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_A_pin<1> LOC=M30 | IOSTANDARD = SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_A_pin<2> LOC=N29 | IOSTANDARD = SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_A_pin<3> LOC=P29 | IOSTANDARD = SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_A_pin<4> LOC=K31 | IOSTANDARD = SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_A_pin<5> LOC=L31 | IOSTANDARD = SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_A_pin<6> LOC=P31 | IOSTANDARD = SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_A_pin<7> LOC=P30 | IOSTANDARD = SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_A_pin<8> LOC=M31 | IOSTANDARD = SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_A_pin<9> LOC=R28 | IOSTANDARD = SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_A_pin<10> LOC=J31 | IOSTANDARD = SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_A_pin<11> LOC=R29 | IOSTANDARD = SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_A_pin<12> LOC=T31 | IOSTANDARD = SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_BA_pin<0> LOC=G31 | IOSTANDARD = SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_BA_pin<1> LOC=J30 | IOSTANDARD = SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_RAS_N_pin LOC=H30 | IOSTANDARD = SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_CAS_N_pin LOC=E31 | IOSTANDARD = SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_WE_N_pin LOC=K29 | IOSTANDARD = SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_CS_N_pin LOC=L29 | IOSTANDARD = SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_ODT_pin<0> LOC=F31 | IOSTANDARD = SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_ODT_pin<1> LOC=F30 | IOSTANDARD = SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_CKE_pin LOC=T28 | IOSTANDARD = SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_DM_pin<0> LOC=AJ31 | IOSTANDARD = SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_DM_pin<1> LOC=AE28 | IOSTANDARD = SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_DM_pin<2> LOC=Y24 | IOSTANDARD = SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_DM_pin<3> LOC=Y31 | IOSTANDARD = SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_DM_pin<4> LOC=V25 | IOSTANDARD = SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_DM_pin<5> LOC=P24 | IOSTANDARD = SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_DM_pin<6> LOC=F26 | IOSTANDARD = SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_DM_pin<7> LOC=J25 | IOSTANDARD = SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_CK_pin<0> LOC=AK29 | IOSTANDARD = DIFF_SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_CK_pin<1> LOC=E28 | IOSTANDARD = DIFF_SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_CK_N_pin<0> LOC=AJ29 | IOSTANDARD = DIFF_SSTL18_II;
|
||||||
|
Net fpga_0_DDR2_SDRAM_DDR2_CK_N_pin<1> LOC=F28 | IOSTANDARD = DIFF_SSTL18_II;
|
||||||
|
############################################################################
|
||||||
|
#
|
||||||
|
# PPC440MC_DDR2 BRAM Location Constraints
|
||||||
|
#
|
||||||
|
############################################################################
|
||||||
|
|
||||||
|
##------------------------------------------------------------------------------
|
||||||
|
## MIG 2.0 Constraints
|
||||||
|
##------------------------------------------------------------------------------
|
||||||
|
###########################################################################
|
||||||
|
## Define multicycle paths - these paths may take longer because additional
|
||||||
|
## time allowed for logic to settle in calibration/initialization FSM
|
||||||
|
###########################################################################
|
||||||
|
|
||||||
|
NET "DDR2_SDRAM*/mc_mibclk" TNM = FFS "TNM_CLK0";
|
||||||
|
NET "DDR2_SDRAM*/mi_mcclk90" TNM = FFS "TNM_CLK90";
|
||||||
|
|
||||||
|
NET "DDR2_SDRAM*/mc_mibclk" TNM_NET = "mc_clk";
|
||||||
|
TIMESPEC "TS_MC_CLK" = PERIOD "mc_clk" 5.000 ns;
|
||||||
|
|
||||||
|
|
||||||
|
## MUX Select for either rising/falling CLK0 for 2nd stage read capture
|
||||||
|
INST "*/u_phy_calib/gen_rd_data_sel*.u_ff_rd_data_sel" TNM = "TNM_RD_DATA_SEL";
|
||||||
|
TIMESPEC "TS_MC_RD_DATA_SEL" = FROM "TNM_RD_DATA_SEL" TO "TNM_CLK0"
|
||||||
|
"TS_clk_div_slow_0_clk_div_slow_0_DDR2_CLK_i" * 4;
|
||||||
|
|
||||||
|
## Calibration/Initialization complete status flag (for PHY logic only)
|
||||||
|
INST "*/u_phy_init/u_ff_phy_init_data_sel" TNM = "TNM_PHY_INIT_DATA_SEL";
|
||||||
|
TIMESPEC "TS_MC_PHY_INIT_DATA_SEL_0" = FROM "TNM_PHY_INIT_DATA_SEL" TO
|
||||||
|
"TNM_CLK0"
|
||||||
|
"TS_MC_CLK" * 4;
|
||||||
|
|
||||||
|
TIMESPEC "TS_MC_PHY_INIT_DATA_SEL_90" = FROM "TNM_PHY_INIT_DATA_SEL" TO
|
||||||
|
"TNM_CLK90" "TS_MC_CLK" * 4;
|
||||||
|
|
||||||
|
## Select (address) bits for SRL32 shift registers used in stage3/stage4
|
||||||
|
## calibration
|
||||||
|
INST "*/u_phy_calib/gen_gate_dly*.u_ff_gate_dly" TNM = "TNM_GATE_DLY";
|
||||||
|
TIMESPEC "TS_MC_GATE_DLY" = FROM "TNM_GATE_DLY" TO "TNM_CLK0"
|
||||||
|
"TS_MC_CLK" * 4;
|
||||||
|
|
||||||
|
INST "*/u_phy_calib/gen_rden_dly*.u_ff_rden_dly" TNM = "TNM_RDEN_DLY";
|
||||||
|
TIMESPEC "TS_MC_RDEN_DLY" = FROM "TNM_RDEN_DLY" TO "TNM_CLK0"
|
||||||
|
"TS_MC_CLK" * 4;
|
||||||
|
|
||||||
|
INST "*/u_phy_calib/gen_cal_rden_dly*.u_ff_cal_rden_dly"
|
||||||
|
TNM = "TNM_CAL_RDEN_DLY";
|
||||||
|
TIMESPEC "TS_MC_CAL_RDEN_DLY" = FROM "TNM_CAL_RDEN_DLY" TO "TNM_CLK0"
|
||||||
|
"TS_MC_CLK" * 4;
|
||||||
|
|
||||||
|
## MUX select for read data - optional delay on data to account for byte skews
|
||||||
|
INST "*/usr_rd/gen_rden_sel_mux*.u_ff_rden_sel_mux" TNM = "TNM_RDEN_SEL_MUX";
|
||||||
|
TIMESPEC "TS_MC_RDEN_SEL_MUX" = FROM "TNM_RDEN_SEL_MUX" TO "TNM_CLK0"
|
||||||
|
"TS_MC_CLK" * 4;
|
||||||
|
|
||||||
|
###########################################################################
|
||||||
|
## LOC placment of DQS-squelch related IDDR and IDELAY elements
|
||||||
|
## Each circuit can be located at any of the following locations:
|
||||||
|
## 1. Ununsed "N"-side of DQS diff pair I/O
|
||||||
|
## 2. DM data mask (output only, input side is free for use)
|
||||||
|
## 3. Any output-only site
|
||||||
|
###########################################################################
|
||||||
|
|
||||||
|
INST "*/gen_dqs[0].u_iob_dqs/u_iddr_dq_ce" LOC = "ILOGIC_X0Y96";
|
||||||
|
INST "*/gen_dqs[0].u_iob_dqs/u_iodelay_dq_ce" LOC = "IODELAY_X0Y96";
|
||||||
|
INST "*/gen_dqs[1].u_iob_dqs/u_iddr_dq_ce" LOC = "ILOGIC_X0Y58";
|
||||||
|
INST "*/gen_dqs[1].u_iob_dqs/u_iodelay_dq_ce" LOC = "IODELAY_X0Y58";
|
||||||
|
INST "*/gen_dqs[2].u_iob_dqs/u_iddr_dq_ce" LOC = "ILOGIC_X0Y62";
|
||||||
|
INST "*/gen_dqs[2].u_iob_dqs/u_iodelay_dq_ce" LOC = "IODELAY_X0Y62";
|
||||||
|
INST "*/gen_dqs[3].u_iob_dqs/u_iddr_dq_ce" LOC = "ILOGIC_X0Y100";
|
||||||
|
INST "*/gen_dqs[3].u_iob_dqs/u_iodelay_dq_ce" LOC = "IODELAY_X0Y100";
|
||||||
|
INST "*/gen_dqs[4].u_iob_dqs/u_iddr_dq_ce" LOC = "ILOGIC_X0Y102";
|
||||||
|
INST "*/gen_dqs[4].u_iob_dqs/u_iodelay_dq_ce" LOC = "IODELAY_X0Y102";
|
||||||
|
INST "*/gen_dqs[5].u_iob_dqs/u_iddr_dq_ce" LOC = "ILOGIC_X0Y256";
|
||||||
|
INST "*/gen_dqs[5].u_iob_dqs/u_iodelay_dq_ce" LOC = "IODELAY_X0Y256";
|
||||||
|
INST "*/gen_dqs[6].u_iob_dqs/u_iddr_dq_ce" LOC = "ILOGIC_X0Y260";
|
||||||
|
INST "*/gen_dqs[6].u_iob_dqs/u_iodelay_dq_ce" LOC = "IODELAY_X0Y260";
|
||||||
|
INST "*/gen_dqs[7].u_iob_dqs/u_iddr_dq_ce" LOC = "ILOGIC_X0Y262";
|
||||||
|
INST "*/gen_dqs[7].u_iob_dqs/u_iodelay_dq_ce" LOC = "IODELAY_X0Y262";
|
||||||
|
|
||||||
|
###########################################################################
|
||||||
|
## DQS Squelch-related timing constraints
|
||||||
|
###########################################################################
|
||||||
|
|
||||||
|
###########################################################################
|
||||||
|
## Half-cycle path constraint from IDDR to CE pin for all DQ IDDRs
|
||||||
|
## for DQS Read Postamble Glitch Squelch circuit
|
||||||
|
###########################################################################
|
||||||
|
## Max delay from output of IDDR to CE input of DQ IDDRs = tRPST + some slack
|
||||||
|
## where slack account for rise-time of DQS on board. For now assume slack =
|
||||||
|
## 0.400ns (based on initial SPICE simulations, assumes use of ODT), so
|
||||||
|
## time = 0.4*Tcyc + 0.40ns = 1.6ns @333MHz
|
||||||
|
INST "*/gen_dqs[*].u_iob_dqs/u_iddr_dq_ce" TNM = "TNM_DQ_CE_IDDR";
|
||||||
|
INST "*/gen_dq[*].u_iob_dq/gen_stg2_*.u_iddr_dq" TNM = "TNM_DQS_FLOPS";
|
||||||
|
TIMESPEC "TS_DQ_CE" = FROM "TNM_DQ_CE_IDDR" TO "TNM_DQS_FLOPS" 1.9 ns;
|
||||||
|
|
||||||
|
###########################################################################
|
||||||
|
## LOC and timing constraints for flop driving DQS CE enable signal
|
||||||
|
## from fabric logic. Even though the absolute delay on this path is
|
||||||
|
## calibrated out (when synchronizing this output to DQS), the delay
|
||||||
|
## should still be kept as low as possible to reduce post-calibration
|
||||||
|
## voltage/temp variations - these are roughly proportional to the
|
||||||
|
## absolute delay of the path
|
||||||
|
###########################################################################
|
||||||
|
|
||||||
|
INST "*/u_phy_calib/gen_gate[0].u_en_dqs_ff" LOC = SLICE_X0Y48;
|
||||||
|
INST "*/u_phy_calib/gen_gate[1].u_en_dqs_ff" LOC = SLICE_X0Y29;
|
||||||
|
INST "*/u_phy_calib/gen_gate[2].u_en_dqs_ff" LOC = SLICE_X0Y31;
|
||||||
|
INST "*/u_phy_calib/gen_gate[3].u_en_dqs_ff" LOC = SLICE_X0Y50;
|
||||||
|
INST "*/u_phy_calib/gen_gate[4].u_en_dqs_ff" LOC = SLICE_X0Y51;
|
||||||
|
INST "*/u_phy_calib/gen_gate[5].u_en_dqs_ff" LOC = SLICE_X0Y128;
|
||||||
|
INST "*/u_phy_calib/gen_gate[6].u_en_dqs_ff" LOC = SLICE_X0Y130;
|
||||||
|
INST "*/u_phy_calib/gen_gate[7].u_en_dqs_ff" LOC = SLICE_X0Y131;
|
||||||
|
|
||||||
|
###########################################################################
|
||||||
|
## Control for DQS gate - from fabric flop. Prevent runaway delay -
|
||||||
|
## two parts to this path: (1) from fabric flop to IDELAY, (2) from
|
||||||
|
## IDELAY to asynchronous reset of IDDR that drives the DQ CEs
|
||||||
|
## A single number is used for all speed grades - value based on 333MHz.
|
||||||
|
## This can be relaxed for lower frequencies.
|
||||||
|
###########################################################################
|
||||||
|
|
||||||
|
NET "*/u_phy_io/en_dqs*" MAXDELAY = 600 ps;
|
||||||
|
NET "*/u_phy_io/gen_dqs*.u_iob_dqs/en_dqs_sync" MAXDELAY = 850 ps;
|
||||||
|
|
||||||
|
###########################################################################
|
||||||
|
|
||||||
|
INST "*/gen_dq[0].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X0Y42;
|
||||||
|
INST "*/gen_dq[1].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X0Y43;
|
||||||
|
INST "*/gen_dq[2].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X0Y45;
|
||||||
|
INST "*/gen_dq[3].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X0Y46;
|
||||||
|
INST "*/gen_dq[4].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X0Y41;
|
||||||
|
INST "*/gen_dq[5].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X0Y42;
|
||||||
|
INST "*/gen_dq[6].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X0Y44;
|
||||||
|
INST "*/gen_dq[7].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X0Y44;
|
||||||
|
INST "*/gen_dq[8].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X0Y28;
|
||||||
|
INST "*/gen_dq[9].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X0Y32;
|
||||||
|
INST "*/gen_dq[10].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X0Y33;
|
||||||
|
INST "*/gen_dq[11].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X0Y34;
|
||||||
|
INST "*/gen_dq[12].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X0Y26;
|
||||||
|
INST "*/gen_dq[13].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X0Y28;
|
||||||
|
INST "*/gen_dq[14].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X0Y33;
|
||||||
|
INST "*/gen_dq[15].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X0Y34;
|
||||||
|
INST "*/gen_dq[16].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X0Y35;
|
||||||
|
INST "*/gen_dq[17].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X0Y36;
|
||||||
|
INST "*/gen_dq[18].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X0Y38;
|
||||||
|
INST "*/gen_dq[19].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X0Y39;
|
||||||
|
INST "*/gen_dq[20].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X0Y36;
|
||||||
|
INST "*/gen_dq[21].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X0Y37;
|
||||||
|
INST "*/gen_dq[22].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X0Y38;
|
||||||
|
INST "*/gen_dq[23].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X0Y39;
|
||||||
|
INST "*/gen_dq[24].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X0Y46;
|
||||||
|
INST "*/gen_dq[25].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X0Y49;
|
||||||
|
INST "*/gen_dq[26].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X0Y53;
|
||||||
|
INST "*/gen_dq[27].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X0Y55;
|
||||||
|
INST "*/gen_dq[28].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X0Y49;
|
||||||
|
INST "*/gen_dq[29].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X0Y52;
|
||||||
|
INST "*/gen_dq[30].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X0Y54;
|
||||||
|
INST "*/gen_dq[31].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X0Y56;
|
||||||
|
INST "*/gen_dq[32].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X0Y52;
|
||||||
|
INST "*/gen_dq[33].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X0Y56;
|
||||||
|
INST "*/gen_dq[34].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X0Y58;
|
||||||
|
INST "*/gen_dq[35].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X0Y59;
|
||||||
|
INST "*/gen_dq[36].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X0Y54;
|
||||||
|
INST "*/gen_dq[37].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X0Y57;
|
||||||
|
INST "*/gen_dq[38].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X0Y58;
|
||||||
|
INST "*/gen_dq[39].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X0Y59;
|
||||||
|
INST "*/gen_dq[40].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X0Y120;
|
||||||
|
INST "*/gen_dq[41].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X0Y121;
|
||||||
|
INST "*/gen_dq[42].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X0Y122;
|
||||||
|
INST "*/gen_dq[43].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X0Y123;
|
||||||
|
INST "*/gen_dq[44].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X0Y120;
|
||||||
|
INST "*/gen_dq[45].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X0Y121;
|
||||||
|
INST "*/gen_dq[46].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X0Y123;
|
||||||
|
INST "*/gen_dq[47].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X0Y124;
|
||||||
|
INST "*/gen_dq[48].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X0Y124;
|
||||||
|
INST "*/gen_dq[49].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X0Y126;
|
||||||
|
INST "*/gen_dq[50].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X0Y132;
|
||||||
|
INST "*/gen_dq[51].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X0Y133;
|
||||||
|
INST "*/gen_dq[52].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X0Y125;
|
||||||
|
INST "*/gen_dq[53].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X0Y126;
|
||||||
|
INST "*/gen_dq[54].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X0Y133;
|
||||||
|
INST "*/gen_dq[55].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X0Y134;
|
||||||
|
INST "*/gen_dq[56].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X0Y134;
|
||||||
|
INST "*/gen_dq[57].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X0Y136;
|
||||||
|
INST "*/gen_dq[58].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X0Y137;
|
||||||
|
INST "*/gen_dq[59].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X0Y138;
|
||||||
|
INST "*/gen_dq[60].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X0Y135;
|
||||||
|
INST "*/gen_dq[61].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X0Y136;
|
||||||
|
INST "*/gen_dq[62].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X0Y138;
|
||||||
|
INST "*/gen_dq[63].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise" RLOC_ORIGIN = X0Y139;
|
||||||
|
|
||||||
|
|
||||||
|
INST "DDR2_SDRAM/*/*u_rdf" LOC = RAMB36_X0Y19;
|
||||||
|
INST "DDR2_SDRAM/*/*u_rdf1" LOC = RAMB36_X0Y18;
|
||||||
|
INST "DDR2_SDRAM/*/*gen_wdf[0]*u_wdf" LOC = RAMB36_X0Y17;
|
||||||
|
INST "DDR2_SDRAM/*/*gen_wdf[1]*u_wdf" LOC = RAMB36_X0Y16;
|
||||||
|
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
# Prevent unrelated logic from being packed into any slices used
|
||||||
|
|
||||||
|
# by read data capture RPM's - if unrelated logic gets packed into
|
||||||
|
|
||||||
|
# these slices, it could cause the DIRT strings that define the
|
||||||
|
|
||||||
|
# IDDR -> fabric flop routing to become unroutable during PAR stage
|
||||||
|
|
||||||
|
# (unrelated logic may require routing resources required by the
|
||||||
|
|
||||||
|
# DIRT strings - MAP does not currently take into account DIRT
|
||||||
|
|
||||||
|
# strings when placing logic
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
AREA_GROUP "DDR_CAPTURE_FFS" GROUP = CLOSED;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Net fpga_0_SysACE_CompactFlash_SysACE_MPA_pin<0> LOC=G5 | IOSTANDARD = LVCMOS33;
|
||||||
|
Net fpga_0_SysACE_CompactFlash_SysACE_MPA_pin<1> LOC=N7 | IOSTANDARD = LVCMOS33;
|
||||||
|
Net fpga_0_SysACE_CompactFlash_SysACE_MPA_pin<2> LOC=N5 | IOSTANDARD = LVCMOS33;
|
||||||
|
Net fpga_0_SysACE_CompactFlash_SysACE_MPA_pin<3> LOC=P5 | IOSTANDARD = LVCMOS33;
|
||||||
|
Net fpga_0_SysACE_CompactFlash_SysACE_MPA_pin<4> LOC=R6 | IOSTANDARD = LVCMOS33;
|
||||||
|
Net fpga_0_SysACE_CompactFlash_SysACE_MPA_pin<5> LOC=M6 | IOSTANDARD = LVCMOS33;
|
||||||
|
Net fpga_0_SysACE_CompactFlash_SysACE_MPA_pin<6> LOC=L6 | IOSTANDARD = LVCMOS33;
|
||||||
|
Net fpga_0_SysACE_CompactFlash_SysACE_CLK_pin LOC=AH17 | IOSTANDARD = LVCMOS33 | PERIOD = 30000 ps;
|
||||||
|
Net fpga_0_SysACE_CompactFlash_SysACE_MPIRQ_pin LOC=M7 | IOSTANDARD = LVCMOS33 | TIG;
|
||||||
|
Net fpga_0_SysACE_CompactFlash_SysACE_CEN_pin LOC=M5 | IOSTANDARD = LVCMOS33;
|
||||||
|
Net fpga_0_SysACE_CompactFlash_SysACE_OEN_pin LOC=N8 | IOSTANDARD = LVCMOS33;
|
||||||
|
Net fpga_0_SysACE_CompactFlash_SysACE_WEN_pin LOC=R9 | IOSTANDARD = LVCMOS33;
|
||||||
|
Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<0> LOC=P9 | IOSTANDARD = LVCMOS33;
|
||||||
|
Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<1> LOC=T8 | IOSTANDARD = LVCMOS33;
|
||||||
|
Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<2> LOC=J7 | IOSTANDARD = LVCMOS33;
|
||||||
|
Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<3> LOC=H7 | IOSTANDARD = LVCMOS33;
|
||||||
|
Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<4> LOC=R7 | IOSTANDARD = LVCMOS33;
|
||||||
|
Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<5> LOC=U7 | IOSTANDARD = LVCMOS33;
|
||||||
|
Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<6> LOC=P7 | IOSTANDARD = LVCMOS33;
|
||||||
|
Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<7> LOC=P6 | IOSTANDARD = LVCMOS33;
|
||||||
|
Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<8> LOC=R8 | IOSTANDARD = LVCMOS33;
|
||||||
|
Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<9> LOC=L5 | IOSTANDARD = LVCMOS33;
|
||||||
|
Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<10> LOC=L4 | IOSTANDARD = LVCMOS33;
|
||||||
|
Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<11> LOC=K6 | IOSTANDARD = LVCMOS33;
|
||||||
|
Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<12> LOC=J5 | IOSTANDARD = LVCMOS33;
|
||||||
|
Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<13> LOC=T6 | IOSTANDARD = LVCMOS33;
|
||||||
|
Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<14> LOC=K7 | IOSTANDARD = LVCMOS33;
|
||||||
|
Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<15> LOC=J6 | IOSTANDARD = LVCMOS33;
|
||||||
|
Net fpga_0_clk_1_sys_clk_pin TNM_NET = sys_clk_pin;
|
||||||
|
TIMESPEC TS_sys_clk_pin = PERIOD sys_clk_pin 100000 kHz;
|
||||||
|
Net fpga_0_clk_1_sys_clk_pin LOC = AH15 | IOSTANDARD=LVCMOS33;
|
||||||
|
Net fpga_0_rst_1_sys_rst_pin TIG;
|
||||||
|
Net fpga_0_rst_1_sys_rst_pin LOC = E9 | IOSTANDARD=LVCMOS33 | PULLUP;
|
||||||
|
Net fpga_0_PCIe_Diff_Clk_IBUF_DS_P_pin LOC=AF4 | IOSTANDARD = LVDS_25;
|
||||||
|
Net fpga_0_PCIe_Diff_Clk_IBUF_DS_N_pin LOC=AF3 | IOSTANDARD = LVDS_25;
|
14
Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/etc/bitgen.ut
Normal file
14
Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/etc/bitgen.ut
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
-g TdoPin:PULLNONE
|
||||||
|
-g DriveDone:No
|
||||||
|
-g StartUpClk:JTAGCLK
|
||||||
|
-g DONE_cycle:4
|
||||||
|
-g GTS_cycle:5
|
||||||
|
-g TckPin:PULLUP
|
||||||
|
-g TdiPin:PULLUP
|
||||||
|
-g TmsPin:PULLUP
|
||||||
|
-g DonePipe:No
|
||||||
|
-g GWE_cycle:6
|
||||||
|
-g LCK_cycle:NoWait
|
||||||
|
-g Security:NONE
|
||||||
|
-g Persist:No
|
||||||
|
|
6
Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/etc/download.cmd
Normal file
6
Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/etc/download.cmd
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
setMode -bscan
|
||||||
|
setCable -p auto
|
||||||
|
identify
|
||||||
|
assignfile -p 5 -file implementation/download.bit
|
||||||
|
program -p 5
|
||||||
|
quit
|
83
Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/etc/fast_runtime.opt
Normal file
83
Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/etc/fast_runtime.opt
Normal file
|
@ -0,0 +1,83 @@
|
||||||
|
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;
|
||||||
|
<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
|
||||||
|
|
||||||
|
|
473
Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/revup/system_mhs.11.1
Normal file
473
Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/revup/system_mhs.11.1
Normal file
|
@ -0,0 +1,473 @@
|
||||||
|
|
||||||
|
# ##############################################################################
|
||||||
|
# Created by Base System Builder Wizard for Xilinx EDK 11.1 Build EDK_L.29.1
|
||||||
|
# Sat Jun 13 13:14:11 2009
|
||||||
|
# Target Board: Xilinx Virtex 5 ML507 Evaluation Platform Rev A
|
||||||
|
# Family: virtex5
|
||||||
|
# Device: xc5vfx70t
|
||||||
|
# Package: ff1136
|
||||||
|
# Speed Grade: -1
|
||||||
|
# Processor number: 1
|
||||||
|
# Processor 1: ppc440_0
|
||||||
|
# Processor clock frequency: 125.0
|
||||||
|
# Bus clock frequency: 125.0
|
||||||
|
# Debug Interface: FPGA JTAG
|
||||||
|
# ##############################################################################
|
||||||
|
PARAMETER VERSION = 2.1.0
|
||||||
|
|
||||||
|
|
||||||
|
PORT fpga_0_RS232_Uart_1_RX_pin = fpga_0_RS232_Uart_1_RX_pin, DIR = I
|
||||||
|
PORT fpga_0_RS232_Uart_1_TX_pin = fpga_0_RS232_Uart_1_TX_pin, DIR = O
|
||||||
|
PORT fpga_0_LEDs_8Bit_GPIO_IO_pin = fpga_0_LEDs_8Bit_GPIO_IO_pin, DIR = IO, VEC = [0:7]
|
||||||
|
PORT fpga_0_LEDs_Positions_GPIO_IO_pin = fpga_0_LEDs_Positions_GPIO_IO_pin, DIR = IO, VEC = [0:4]
|
||||||
|
PORT fpga_0_Push_Buttons_5Bit_GPIO_IO_pin = fpga_0_Push_Buttons_5Bit_GPIO_IO_pin, DIR = IO, VEC = [0:4]
|
||||||
|
PORT fpga_0_DIP_Switches_8Bit_GPIO_IO_pin = fpga_0_DIP_Switches_8Bit_GPIO_IO_pin, DIR = IO, VEC = [0:7]
|
||||||
|
PORT fpga_0_IIC_EEPROM_Sda_pin = fpga_0_IIC_EEPROM_Sda_pin, DIR = IO
|
||||||
|
PORT fpga_0_IIC_EEPROM_Scl_pin = fpga_0_IIC_EEPROM_Scl_pin, DIR = IO
|
||||||
|
PORT fpga_0_SRAM_Mem_A_pin = fpga_0_SRAM_Mem_A_pin_vslice_7_30_concat, DIR = O, VEC = [7:30]
|
||||||
|
PORT fpga_0_SRAM_Mem_CEN_pin = fpga_0_SRAM_Mem_CEN_pin, DIR = O
|
||||||
|
PORT fpga_0_SRAM_Mem_OEN_pin = fpga_0_SRAM_Mem_OEN_pin, DIR = O
|
||||||
|
PORT fpga_0_SRAM_Mem_WEN_pin = fpga_0_SRAM_Mem_WEN_pin, DIR = O
|
||||||
|
PORT fpga_0_SRAM_Mem_BEN_pin = fpga_0_SRAM_Mem_BEN_pin, DIR = O, VEC = [0:3]
|
||||||
|
PORT fpga_0_SRAM_Mem_ADV_LDN_pin = fpga_0_SRAM_Mem_ADV_LDN_pin, DIR = O
|
||||||
|
PORT fpga_0_SRAM_Mem_DQ_pin = fpga_0_SRAM_Mem_DQ_pin, DIR = IO, VEC = [0:31]
|
||||||
|
PORT fpga_0_SRAM_ZBT_CLK_OUT_pin = SRAM_CLK_OUT_s, DIR = O
|
||||||
|
PORT fpga_0_SRAM_ZBT_CLK_FB_pin = SRAM_CLK_FB_s, DIR = I, SIGIS = CLK, CLK_FREQ = 125000000
|
||||||
|
PORT fpga_0_PCIe_Bridge_RXN_pin = fpga_0_PCIe_Bridge_RXN_pin, DIR = I
|
||||||
|
PORT fpga_0_PCIe_Bridge_RXP_pin = fpga_0_PCIe_Bridge_RXP_pin, DIR = I
|
||||||
|
PORT fpga_0_PCIe_Bridge_TXN_pin = fpga_0_PCIe_Bridge_TXN_pin, DIR = O
|
||||||
|
PORT fpga_0_PCIe_Bridge_TXP_pin = fpga_0_PCIe_Bridge_TXP_pin, DIR = O
|
||||||
|
PORT fpga_0_Ethernet_MAC_PHY_tx_clk_pin = fpga_0_Ethernet_MAC_PHY_tx_clk_pin, DIR = I
|
||||||
|
PORT fpga_0_Ethernet_MAC_PHY_rx_clk_pin = fpga_0_Ethernet_MAC_PHY_rx_clk_pin, DIR = I
|
||||||
|
PORT fpga_0_Ethernet_MAC_PHY_crs_pin = fpga_0_Ethernet_MAC_PHY_crs_pin, DIR = I
|
||||||
|
PORT fpga_0_Ethernet_MAC_PHY_dv_pin = fpga_0_Ethernet_MAC_PHY_dv_pin, DIR = I
|
||||||
|
PORT fpga_0_Ethernet_MAC_PHY_rx_data_pin = fpga_0_Ethernet_MAC_PHY_rx_data_pin, DIR = I, VEC = [3:0]
|
||||||
|
PORT fpga_0_Ethernet_MAC_PHY_col_pin = fpga_0_Ethernet_MAC_PHY_col_pin, DIR = I
|
||||||
|
PORT fpga_0_Ethernet_MAC_PHY_rx_er_pin = fpga_0_Ethernet_MAC_PHY_rx_er_pin, DIR = I
|
||||||
|
PORT fpga_0_Ethernet_MAC_PHY_rst_n_pin = fpga_0_Ethernet_MAC_PHY_rst_n_pin, DIR = O
|
||||||
|
PORT fpga_0_Ethernet_MAC_PHY_tx_en_pin = fpga_0_Ethernet_MAC_PHY_tx_en_pin, DIR = O
|
||||||
|
PORT fpga_0_Ethernet_MAC_PHY_tx_data_pin = fpga_0_Ethernet_MAC_PHY_tx_data_pin, DIR = O, VEC = [3:0]
|
||||||
|
PORT fpga_0_Ethernet_MAC_MDINT_pin = fpga_0_Ethernet_MAC_MDINT_pin, DIR = I, SIGIS = INTERRUPT, SENSITIVITY = LEVEL_LOW, INTERRUPT_PRIORITY = MEDIUM
|
||||||
|
PORT fpga_0_DDR2_SDRAM_DDR2_DQ_pin = fpga_0_DDR2_SDRAM_DDR2_DQ_pin, DIR = IO, VEC = [63:0]
|
||||||
|
PORT fpga_0_DDR2_SDRAM_DDR2_DQS_pin = fpga_0_DDR2_SDRAM_DDR2_DQS_pin, DIR = IO, VEC = [7:0]
|
||||||
|
PORT fpga_0_DDR2_SDRAM_DDR2_DQS_N_pin = fpga_0_DDR2_SDRAM_DDR2_DQS_N_pin, DIR = IO, VEC = [7:0]
|
||||||
|
PORT fpga_0_DDR2_SDRAM_DDR2_A_pin = fpga_0_DDR2_SDRAM_DDR2_A_pin, DIR = O, VEC = [12:0]
|
||||||
|
PORT fpga_0_DDR2_SDRAM_DDR2_BA_pin = fpga_0_DDR2_SDRAM_DDR2_BA_pin, DIR = O, VEC = [1:0]
|
||||||
|
PORT fpga_0_DDR2_SDRAM_DDR2_RAS_N_pin = fpga_0_DDR2_SDRAM_DDR2_RAS_N_pin, DIR = O
|
||||||
|
PORT fpga_0_DDR2_SDRAM_DDR2_CAS_N_pin = fpga_0_DDR2_SDRAM_DDR2_CAS_N_pin, DIR = O
|
||||||
|
PORT fpga_0_DDR2_SDRAM_DDR2_WE_N_pin = fpga_0_DDR2_SDRAM_DDR2_WE_N_pin, DIR = O
|
||||||
|
PORT fpga_0_DDR2_SDRAM_DDR2_CS_N_pin = fpga_0_DDR2_SDRAM_DDR2_CS_N_pin, DIR = O
|
||||||
|
PORT fpga_0_DDR2_SDRAM_DDR2_ODT_pin = fpga_0_DDR2_SDRAM_DDR2_ODT_pin, DIR = O, VEC = [1:0]
|
||||||
|
PORT fpga_0_DDR2_SDRAM_DDR2_CKE_pin = fpga_0_DDR2_SDRAM_DDR2_CKE_pin, DIR = O
|
||||||
|
PORT fpga_0_DDR2_SDRAM_DDR2_DM_pin = fpga_0_DDR2_SDRAM_DDR2_DM_pin, DIR = O, VEC = [7:0]
|
||||||
|
PORT fpga_0_DDR2_SDRAM_DDR2_CK_pin = fpga_0_DDR2_SDRAM_DDR2_CK_pin, DIR = O, VEC = [1:0]
|
||||||
|
PORT fpga_0_DDR2_SDRAM_DDR2_CK_N_pin = fpga_0_DDR2_SDRAM_DDR2_CK_N_pin, DIR = O, VEC = [1:0]
|
||||||
|
PORT fpga_0_SysACE_CompactFlash_SysACE_MPA_pin = fpga_0_SysACE_CompactFlash_SysACE_MPA_pin, DIR = O, VEC = [6:0]
|
||||||
|
PORT fpga_0_SysACE_CompactFlash_SysACE_CLK_pin = fpga_0_SysACE_CompactFlash_SysACE_CLK_pin, DIR = I
|
||||||
|
PORT fpga_0_SysACE_CompactFlash_SysACE_MPIRQ_pin = fpga_0_SysACE_CompactFlash_SysACE_MPIRQ_pin, DIR = I
|
||||||
|
PORT fpga_0_SysACE_CompactFlash_SysACE_CEN_pin = fpga_0_SysACE_CompactFlash_SysACE_CEN_pin, DIR = O
|
||||||
|
PORT fpga_0_SysACE_CompactFlash_SysACE_OEN_pin = fpga_0_SysACE_CompactFlash_SysACE_OEN_pin, DIR = O
|
||||||
|
PORT fpga_0_SysACE_CompactFlash_SysACE_WEN_pin = fpga_0_SysACE_CompactFlash_SysACE_WEN_pin, DIR = O
|
||||||
|
PORT fpga_0_SysACE_CompactFlash_SysACE_MPD_pin = fpga_0_SysACE_CompactFlash_SysACE_MPD_pin, DIR = IO, VEC = [15:0]
|
||||||
|
PORT fpga_0_clk_1_sys_clk_pin = dcm_clk_s, DIR = I, SIGIS = CLK, CLK_FREQ = 100000000
|
||||||
|
PORT fpga_0_rst_1_sys_rst_pin = sys_rst_s, DIR = I, SIGIS = RST, RST_POLARITY = 0
|
||||||
|
PORT fpga_0_PCIe_Diff_Clk_IBUF_DS_P_pin = PCIe_Diff_Clk, DIR = I, DIFFERENTIAL_POLARITY = P, SIGIS = CLK
|
||||||
|
PORT fpga_0_PCIe_Diff_Clk_IBUF_DS_N_pin = PCIe_Diff_Clk, DIR = I, DIFFERENTIAL_POLARITY = N, SIGIS = CLK
|
||||||
|
|
||||||
|
|
||||||
|
BEGIN ppc440_virtex5
|
||||||
|
PARAMETER INSTANCE = ppc440_0
|
||||||
|
PARAMETER C_IDCR_BASEADDR = 0b0000000000
|
||||||
|
PARAMETER C_IDCR_HIGHADDR = 0b0011111111
|
||||||
|
PARAMETER C_APU_CONTROL = 0b00000010000000001
|
||||||
|
PARAMETER C_PPC440MC_ROW_CONFLICT_MASK = 0x003FFE00
|
||||||
|
PARAMETER C_PPC440MC_BANK_CONFLICT_MASK = 0x00C00000
|
||||||
|
PARAMETER C_PPC440MC_CONTROL = 0xF810008F
|
||||||
|
PARAMETER C_SPLB0_USE_MPLB_ADDR = 1
|
||||||
|
PARAMETER C_SPLB0_NUM_MPLB_ADDR_RNG = 1
|
||||||
|
PARAMETER C_SPLB1_NUM_MPLB_ADDR_RNG = 0
|
||||||
|
PARAMETER HW_VER = 1.01.a
|
||||||
|
PARAMETER C_SPLB0_RNG0_MPLB_BASEADDR = 0x80000000
|
||||||
|
PARAMETER C_SPLB0_RNG0_MPLB_HIGHADDR = 0xffffffff
|
||||||
|
PARAMETER C_SPLB0_RNG_MC_BASEADDR = 0x00000000
|
||||||
|
PARAMETER C_SPLB0_RNG_MC_HIGHADDR = 0x0fffffff
|
||||||
|
BUS_INTERFACE MPLB = plb_v46_0
|
||||||
|
BUS_INTERFACE SPLB0 = ppc440_0_SPLB0
|
||||||
|
BUS_INTERFACE PPC440MC = ppc440_0_PPC440MC
|
||||||
|
BUS_INTERFACE MFCB = ppc440_0_fcb_v20
|
||||||
|
BUS_INTERFACE JTAGPPC = ppc440_0_jtagppc_bus
|
||||||
|
BUS_INTERFACE RESETPPC = ppc_reset_bus
|
||||||
|
PORT CPMC440CLK = clk_125_0000MHzPLL0
|
||||||
|
PORT CPMINTERCONNECTCLK = clk_125_0000MHzPLL0
|
||||||
|
PORT CPMINTERCONNECTCLKNTO1 = net_vcc
|
||||||
|
PORT EICC440EXTIRQ = ppc440_0_EICC440EXTIRQ
|
||||||
|
PORT CPMMCCLK = clk_125_0000MHzPLL0_ADJUST
|
||||||
|
PORT CPMPPCMPLBCLK = clk_125_0000MHzPLL0_ADJUST
|
||||||
|
PORT CPMPPCS0PLBCLK = clk_125_0000MHzPLL0_ADJUST
|
||||||
|
END
|
||||||
|
|
||||||
|
BEGIN plb_v46
|
||||||
|
PARAMETER INSTANCE = plb_v46_0
|
||||||
|
PARAMETER C_DCR_INTFCE = 0
|
||||||
|
PARAMETER C_FAMILY = virtex5
|
||||||
|
PARAMETER HW_VER = 1.04.a
|
||||||
|
PORT PLB_Clk = clk_125_0000MHzPLL0_ADJUST
|
||||||
|
PORT SYS_Rst = sys_bus_reset
|
||||||
|
END
|
||||||
|
|
||||||
|
BEGIN xps_bram_if_cntlr
|
||||||
|
PARAMETER INSTANCE = xps_bram_if_cntlr_1
|
||||||
|
PARAMETER C_SPLB_NATIVE_DWIDTH = 64
|
||||||
|
PARAMETER C_SPLB_SUPPORT_BURSTS = 1
|
||||||
|
PARAMETER C_SPLB_P2P = 0
|
||||||
|
PARAMETER C_FAMILY = virtex5
|
||||||
|
PARAMETER HW_VER = 1.00.b
|
||||||
|
PARAMETER C_BASEADDR = 0xffffe000
|
||||||
|
PARAMETER C_HIGHADDR = 0xffffffff
|
||||||
|
BUS_INTERFACE SPLB = plb_v46_0
|
||||||
|
BUS_INTERFACE PORTA = xps_bram_if_cntlr_1_port
|
||||||
|
END
|
||||||
|
|
||||||
|
BEGIN bram_block
|
||||||
|
PARAMETER INSTANCE = xps_bram_if_cntlr_1_bram
|
||||||
|
PARAMETER C_FAMILY = virtex5
|
||||||
|
PARAMETER HW_VER = 1.00.a
|
||||||
|
BUS_INTERFACE PORTA = xps_bram_if_cntlr_1_port
|
||||||
|
END
|
||||||
|
|
||||||
|
BEGIN xps_uartlite
|
||||||
|
PARAMETER INSTANCE = RS232_Uart_1
|
||||||
|
PARAMETER C_FAMILY = virtex5
|
||||||
|
PARAMETER C_BAUDRATE = 9600
|
||||||
|
PARAMETER C_DATA_BITS = 8
|
||||||
|
PARAMETER C_USE_PARITY = 0
|
||||||
|
PARAMETER C_ODD_PARITY = 0
|
||||||
|
PARAMETER HW_VER = 1.01.a
|
||||||
|
PARAMETER C_BASEADDR = 0x84000000
|
||||||
|
PARAMETER C_HIGHADDR = 0x8400ffff
|
||||||
|
BUS_INTERFACE SPLB = plb_v46_0
|
||||||
|
PORT RX = fpga_0_RS232_Uart_1_RX_pin
|
||||||
|
PORT TX = fpga_0_RS232_Uart_1_TX_pin
|
||||||
|
PORT Interrupt = RS232_Uart_1_Interrupt
|
||||||
|
END
|
||||||
|
|
||||||
|
BEGIN xps_gpio
|
||||||
|
PARAMETER INSTANCE = LEDs_8Bit
|
||||||
|
PARAMETER C_FAMILY = virtex5
|
||||||
|
PARAMETER C_ALL_INPUTS = 0
|
||||||
|
PARAMETER C_GPIO_WIDTH = 8
|
||||||
|
PARAMETER C_INTERRUPT_PRESENT = 0
|
||||||
|
PARAMETER C_IS_DUAL = 0
|
||||||
|
PARAMETER HW_VER = 2.00.a
|
||||||
|
PARAMETER C_BASEADDR = 0x81440000
|
||||||
|
PARAMETER C_HIGHADDR = 0x8144ffff
|
||||||
|
BUS_INTERFACE SPLB = plb_v46_0
|
||||||
|
PORT GPIO_IO = fpga_0_LEDs_8Bit_GPIO_IO_pin
|
||||||
|
END
|
||||||
|
|
||||||
|
BEGIN xps_gpio
|
||||||
|
PARAMETER INSTANCE = LEDs_Positions
|
||||||
|
PARAMETER C_FAMILY = virtex5
|
||||||
|
PARAMETER C_ALL_INPUTS = 0
|
||||||
|
PARAMETER C_GPIO_WIDTH = 5
|
||||||
|
PARAMETER C_INTERRUPT_PRESENT = 0
|
||||||
|
PARAMETER C_IS_DUAL = 0
|
||||||
|
PARAMETER HW_VER = 2.00.a
|
||||||
|
PARAMETER C_BASEADDR = 0x81420000
|
||||||
|
PARAMETER C_HIGHADDR = 0x8142ffff
|
||||||
|
BUS_INTERFACE SPLB = plb_v46_0
|
||||||
|
PORT GPIO_IO = fpga_0_LEDs_Positions_GPIO_IO_pin
|
||||||
|
END
|
||||||
|
|
||||||
|
BEGIN xps_gpio
|
||||||
|
PARAMETER INSTANCE = Push_Buttons_5Bit
|
||||||
|
PARAMETER C_FAMILY = virtex5
|
||||||
|
PARAMETER C_ALL_INPUTS = 1
|
||||||
|
PARAMETER C_GPIO_WIDTH = 5
|
||||||
|
PARAMETER C_INTERRUPT_PRESENT = 0
|
||||||
|
PARAMETER C_IS_DUAL = 0
|
||||||
|
PARAMETER HW_VER = 2.00.a
|
||||||
|
PARAMETER C_BASEADDR = 0x81400000
|
||||||
|
PARAMETER C_HIGHADDR = 0x8140ffff
|
||||||
|
BUS_INTERFACE SPLB = plb_v46_0
|
||||||
|
PORT GPIO_IO = fpga_0_Push_Buttons_5Bit_GPIO_IO_pin
|
||||||
|
END
|
||||||
|
|
||||||
|
BEGIN xps_gpio
|
||||||
|
PARAMETER INSTANCE = DIP_Switches_8Bit
|
||||||
|
PARAMETER C_FAMILY = virtex5
|
||||||
|
PARAMETER C_ALL_INPUTS = 1
|
||||||
|
PARAMETER C_GPIO_WIDTH = 8
|
||||||
|
PARAMETER C_INTERRUPT_PRESENT = 0
|
||||||
|
PARAMETER C_IS_DUAL = 0
|
||||||
|
PARAMETER HW_VER = 2.00.a
|
||||||
|
PARAMETER C_BASEADDR = 0x81460000
|
||||||
|
PARAMETER C_HIGHADDR = 0x8146ffff
|
||||||
|
BUS_INTERFACE SPLB = plb_v46_0
|
||||||
|
PORT GPIO_IO = fpga_0_DIP_Switches_8Bit_GPIO_IO_pin
|
||||||
|
END
|
||||||
|
|
||||||
|
BEGIN xps_iic
|
||||||
|
PARAMETER INSTANCE = IIC_EEPROM
|
||||||
|
PARAMETER C_IIC_FREQ = 100000
|
||||||
|
PARAMETER C_TEN_BIT_ADR = 0
|
||||||
|
PARAMETER C_FAMILY = virtex5
|
||||||
|
PARAMETER HW_VER = 2.01.a
|
||||||
|
PARAMETER C_BASEADDR = 0x81600000
|
||||||
|
PARAMETER C_HIGHADDR = 0x8160ffff
|
||||||
|
BUS_INTERFACE SPLB = plb_v46_0
|
||||||
|
PORT Sda = fpga_0_IIC_EEPROM_Sda_pin
|
||||||
|
PORT Scl = fpga_0_IIC_EEPROM_Scl_pin
|
||||||
|
END
|
||||||
|
|
||||||
|
BEGIN xps_mch_emc
|
||||||
|
PARAMETER INSTANCE = SRAM
|
||||||
|
PARAMETER C_FAMILY = virtex5
|
||||||
|
PARAMETER C_NUM_BANKS_MEM = 1
|
||||||
|
PARAMETER C_NUM_CHANNELS = 0
|
||||||
|
PARAMETER C_MEM0_WIDTH = 32
|
||||||
|
PARAMETER C_MAX_MEM_WIDTH = 32
|
||||||
|
PARAMETER C_INCLUDE_DATAWIDTH_MATCHING_0 = 0
|
||||||
|
PARAMETER C_SYNCH_MEM_0 = 1
|
||||||
|
PARAMETER C_TCEDV_PS_MEM_0 = 0
|
||||||
|
PARAMETER C_TAVDV_PS_MEM_0 = 0
|
||||||
|
PARAMETER C_THZCE_PS_MEM_0 = 0
|
||||||
|
PARAMETER C_THZOE_PS_MEM_0 = 0
|
||||||
|
PARAMETER C_TWC_PS_MEM_0 = 0
|
||||||
|
PARAMETER C_TWP_PS_MEM_0 = 0
|
||||||
|
PARAMETER C_TLZWE_PS_MEM_0 = 0
|
||||||
|
PARAMETER HW_VER = 3.00.a
|
||||||
|
PARAMETER C_MEM0_BASEADDR = 0xf8000000
|
||||||
|
PARAMETER C_MEM0_HIGHADDR = 0xf80fffff
|
||||||
|
BUS_INTERFACE SPLB = plb_v46_0
|
||||||
|
PORT RdClk = clk_125_0000MHzPLL0_ADJUST
|
||||||
|
PORT Mem_A = 0b0000000 & fpga_0_SRAM_Mem_A_pin_vslice_7_30_concat & 0b0
|
||||||
|
PORT Mem_CEN = fpga_0_SRAM_Mem_CEN_pin
|
||||||
|
PORT Mem_OEN = fpga_0_SRAM_Mem_OEN_pin
|
||||||
|
PORT Mem_WEN = fpga_0_SRAM_Mem_WEN_pin
|
||||||
|
PORT Mem_BEN = fpga_0_SRAM_Mem_BEN_pin
|
||||||
|
PORT Mem_ADV_LDN = fpga_0_SRAM_Mem_ADV_LDN_pin
|
||||||
|
PORT Mem_DQ = fpga_0_SRAM_Mem_DQ_pin
|
||||||
|
END
|
||||||
|
|
||||||
|
BEGIN plbv46_pcie
|
||||||
|
PARAMETER INSTANCE = PCIe_Bridge
|
||||||
|
PARAMETER C_FAMILY = virtex5
|
||||||
|
PARAMETER C_IPIFBAR_NUM = 2
|
||||||
|
PARAMETER C_PCIBAR_NUM = 1
|
||||||
|
PARAMETER C_DEVICE_ID = 0x0505
|
||||||
|
PARAMETER C_VENDOR_ID = 0x10EE
|
||||||
|
PARAMETER C_CLASS_CODE = 0x058000
|
||||||
|
PARAMETER C_REV_ID = 0x00
|
||||||
|
PARAMETER C_SUBSYSTEM_ID = 0x0000
|
||||||
|
PARAMETER C_SUBSYSTEM_VENDOR_ID = 0x0000
|
||||||
|
PARAMETER C_COMP_TIMEOUT = 1
|
||||||
|
PARAMETER C_IPIFBAR2PCIBAR_0 = 0x00000000
|
||||||
|
PARAMETER C_IPIFBAR2PCIBAR_1 = 0x00000000
|
||||||
|
PARAMETER C_PCIBAR2IPIFBAR_0 = 0xf8000000
|
||||||
|
PARAMETER C_PCIBAR2IPIFBAR_1 = 0x00000000
|
||||||
|
PARAMETER C_PCIBAR_LEN_0 = 20
|
||||||
|
PARAMETER C_PCIBAR_LEN_1 = 28
|
||||||
|
PARAMETER C_BOARD = ml507
|
||||||
|
PARAMETER HW_VER = 3.00.b
|
||||||
|
PARAMETER C_BASEADDR = 0x85c00000
|
||||||
|
PARAMETER C_HIGHADDR = 0x85c0ffff
|
||||||
|
PARAMETER C_IPIFBAR_0 = 0xc0000000
|
||||||
|
PARAMETER C_IPIFBAR_HIGHADDR_0 = 0xdfffffff
|
||||||
|
PARAMETER C_IPIFBAR_1 = 0xe0000000
|
||||||
|
PARAMETER C_IPIFBAR_HIGHADDR_1 = 0xefffffff
|
||||||
|
BUS_INTERFACE SPLB = plb_v46_0
|
||||||
|
BUS_INTERFACE MPLB = ppc440_0_SPLB0
|
||||||
|
PORT PERSTN = net_vcc
|
||||||
|
PORT REFCLK = PCIe_Diff_Clk
|
||||||
|
PORT RXN = fpga_0_PCIe_Bridge_RXN_pin
|
||||||
|
PORT RXP = fpga_0_PCIe_Bridge_RXP_pin
|
||||||
|
PORT TXN = fpga_0_PCIe_Bridge_TXN_pin
|
||||||
|
PORT TXP = fpga_0_PCIe_Bridge_TXP_pin
|
||||||
|
PORT MSI_request = net_gnd
|
||||||
|
END
|
||||||
|
|
||||||
|
BEGIN plb_v46
|
||||||
|
PARAMETER INSTANCE = ppc440_0_SPLB0
|
||||||
|
PARAMETER C_FAMILY = virtex5
|
||||||
|
PARAMETER HW_VER = 1.04.a
|
||||||
|
PORT PLB_Clk = clk_125_0000MHzPLL0_ADJUST
|
||||||
|
PORT SYS_Rst = sys_bus_reset
|
||||||
|
END
|
||||||
|
|
||||||
|
BEGIN xps_ethernetlite
|
||||||
|
PARAMETER INSTANCE = Ethernet_MAC
|
||||||
|
PARAMETER C_FAMILY = virtex5
|
||||||
|
PARAMETER HW_VER = 2.01.a
|
||||||
|
PARAMETER C_BASEADDR = 0x81000000
|
||||||
|
PARAMETER C_HIGHADDR = 0x8100ffff
|
||||||
|
BUS_INTERFACE SPLB = plb_v46_0
|
||||||
|
PORT PHY_tx_clk = fpga_0_Ethernet_MAC_PHY_tx_clk_pin
|
||||||
|
PORT PHY_rx_clk = fpga_0_Ethernet_MAC_PHY_rx_clk_pin
|
||||||
|
PORT PHY_crs = fpga_0_Ethernet_MAC_PHY_crs_pin
|
||||||
|
PORT PHY_dv = fpga_0_Ethernet_MAC_PHY_dv_pin
|
||||||
|
PORT PHY_rx_data = fpga_0_Ethernet_MAC_PHY_rx_data_pin
|
||||||
|
PORT PHY_col = fpga_0_Ethernet_MAC_PHY_col_pin
|
||||||
|
PORT PHY_rx_er = fpga_0_Ethernet_MAC_PHY_rx_er_pin
|
||||||
|
PORT PHY_rst_n = fpga_0_Ethernet_MAC_PHY_rst_n_pin
|
||||||
|
PORT PHY_tx_en = fpga_0_Ethernet_MAC_PHY_tx_en_pin
|
||||||
|
PORT PHY_tx_data = fpga_0_Ethernet_MAC_PHY_tx_data_pin
|
||||||
|
END
|
||||||
|
|
||||||
|
BEGIN ppc440mc_ddr2
|
||||||
|
PARAMETER INSTANCE = DDR2_SDRAM
|
||||||
|
PARAMETER C_DDR_BAWIDTH = 2
|
||||||
|
PARAMETER C_NUM_CLK_PAIRS = 2
|
||||||
|
PARAMETER C_DDR_DWIDTH = 64
|
||||||
|
PARAMETER C_DDR_CAWIDTH = 10
|
||||||
|
PARAMETER C_NUM_RANKS_MEM = 1
|
||||||
|
PARAMETER C_CS_BITS = 0
|
||||||
|
PARAMETER C_DDR_DM_WIDTH = 8
|
||||||
|
PARAMETER C_DQ_BITS = 8
|
||||||
|
PARAMETER C_DDR2_ODT_WIDTH = 2
|
||||||
|
PARAMETER C_DDR2_ADDT_LAT = 0
|
||||||
|
PARAMETER C_INCLUDE_ECC_SUPPORT = 0
|
||||||
|
PARAMETER C_DDR2_ODT_SETTING = 1
|
||||||
|
PARAMETER C_DQS_BITS = 3
|
||||||
|
PARAMETER C_DDR_DQS_WIDTH = 8
|
||||||
|
PARAMETER C_DDR_RAWIDTH = 13
|
||||||
|
PARAMETER C_DDR_BURST_LENGTH = 4
|
||||||
|
PARAMETER C_DDR_CAS_LAT = 4
|
||||||
|
PARAMETER C_REG_DIMM = 0
|
||||||
|
PARAMETER C_MIB_MC_CLOCK_RATIO = 1
|
||||||
|
PARAMETER C_DDR_TREFI = 3900
|
||||||
|
PARAMETER C_DDR_TRAS = 40000
|
||||||
|
PARAMETER C_DDR_TRCD = 15000
|
||||||
|
PARAMETER C_DDR_TRFC = 75000
|
||||||
|
PARAMETER C_DDR_TRP = 15000
|
||||||
|
PARAMETER C_DDR_TRTP = 7500
|
||||||
|
PARAMETER C_DDR_TWR = 15000
|
||||||
|
PARAMETER C_DDR_TWTR = 7500
|
||||||
|
PARAMETER C_MC_MIBCLK_PERIOD_PS = 8000
|
||||||
|
PARAMETER C_IDEL_HIGH_PERF = TRUE
|
||||||
|
PARAMETER C_NUM_IDELAYCTRL = 3
|
||||||
|
PARAMETER C_IDELAYCTRL_LOC = IDELAYCTRL_X0Y6-IDELAYCTRL_X0Y2-IDELAYCTRL_X0Y1
|
||||||
|
PARAMETER C_DQS_IO_COL = 0b000000000000000000
|
||||||
|
PARAMETER C_DQ_IO_MS = 0b000000000111010100111101000011110001111000101110110000111100000110111100
|
||||||
|
PARAMETER HW_VER = 2.00.a
|
||||||
|
PARAMETER C_MEM_BASEADDR = 0x00000000
|
||||||
|
PARAMETER C_MEM_HIGHADDR = 0x0fffffff
|
||||||
|
BUS_INTERFACE PPC440MC = ppc440_0_PPC440MC
|
||||||
|
PORT mc_mibclk = clk_125_0000MHzPLL0_ADJUST
|
||||||
|
PORT mi_mcclk90 = clk_125_0000MHz90PLL0_ADJUST
|
||||||
|
PORT mi_mcreset = sys_bus_reset
|
||||||
|
PORT mi_mcclkdiv2 = clk_62_5000MHzPLL0_ADJUST
|
||||||
|
PORT mi_mcclk_200 = clk_200_0000MHz
|
||||||
|
PORT DDR2_DQ = fpga_0_DDR2_SDRAM_DDR2_DQ_pin
|
||||||
|
PORT DDR2_DQS = fpga_0_DDR2_SDRAM_DDR2_DQS_pin
|
||||||
|
PORT DDR2_DQS_N = fpga_0_DDR2_SDRAM_DDR2_DQS_N_pin
|
||||||
|
PORT DDR2_A = fpga_0_DDR2_SDRAM_DDR2_A_pin
|
||||||
|
PORT DDR2_BA = fpga_0_DDR2_SDRAM_DDR2_BA_pin
|
||||||
|
PORT DDR2_RAS_N = fpga_0_DDR2_SDRAM_DDR2_RAS_N_pin
|
||||||
|
PORT DDR2_CAS_N = fpga_0_DDR2_SDRAM_DDR2_CAS_N_pin
|
||||||
|
PORT DDR2_WE_N = fpga_0_DDR2_SDRAM_DDR2_WE_N_pin
|
||||||
|
PORT DDR2_CS_N = fpga_0_DDR2_SDRAM_DDR2_CS_N_pin
|
||||||
|
PORT DDR2_ODT = fpga_0_DDR2_SDRAM_DDR2_ODT_pin
|
||||||
|
PORT DDR2_CKE = fpga_0_DDR2_SDRAM_DDR2_CKE_pin
|
||||||
|
PORT DDR2_DM = fpga_0_DDR2_SDRAM_DDR2_DM_pin
|
||||||
|
PORT DDR2_CK = fpga_0_DDR2_SDRAM_DDR2_CK_pin
|
||||||
|
PORT DDR2_CK_N = fpga_0_DDR2_SDRAM_DDR2_CK_N_pin
|
||||||
|
END
|
||||||
|
|
||||||
|
BEGIN xps_sysace
|
||||||
|
PARAMETER INSTANCE = SysACE_CompactFlash
|
||||||
|
PARAMETER C_MEM_WIDTH = 16
|
||||||
|
PARAMETER C_FAMILY = virtex5
|
||||||
|
PARAMETER HW_VER = 1.01.a
|
||||||
|
PARAMETER C_BASEADDR = 0x83600000
|
||||||
|
PARAMETER C_HIGHADDR = 0x8360ffff
|
||||||
|
BUS_INTERFACE SPLB = plb_v46_0
|
||||||
|
PORT SysACE_MPA = fpga_0_SysACE_CompactFlash_SysACE_MPA_pin
|
||||||
|
PORT SysACE_CLK = fpga_0_SysACE_CompactFlash_SysACE_CLK_pin
|
||||||
|
PORT SysACE_MPIRQ = fpga_0_SysACE_CompactFlash_SysACE_MPIRQ_pin
|
||||||
|
PORT SysACE_CEN = fpga_0_SysACE_CompactFlash_SysACE_CEN_pin
|
||||||
|
PORT SysACE_OEN = fpga_0_SysACE_CompactFlash_SysACE_OEN_pin
|
||||||
|
PORT SysACE_WEN = fpga_0_SysACE_CompactFlash_SysACE_WEN_pin
|
||||||
|
PORT SysACE_MPD = fpga_0_SysACE_CompactFlash_SysACE_MPD_pin
|
||||||
|
END
|
||||||
|
|
||||||
|
BEGIN fcb_v20
|
||||||
|
PARAMETER INSTANCE = ppc440_0_fcb_v20
|
||||||
|
PARAMETER HW_VER = 1.00.a
|
||||||
|
PORT FCB_CLK = clk_125_0000MHzPLL0_ADJUST
|
||||||
|
PORT SYS_RST = sys_bus_reset
|
||||||
|
END
|
||||||
|
|
||||||
|
BEGIN apu_fpu_virtex5
|
||||||
|
PARAMETER INSTANCE = ppc440_0_apu_fpu_virtex5
|
||||||
|
PARAMETER HW_VER = 1.01.a
|
||||||
|
BUS_INTERFACE SFCB2 = ppc440_0_fcb_v20
|
||||||
|
END
|
||||||
|
|
||||||
|
BEGIN clock_generator
|
||||||
|
PARAMETER INSTANCE = clock_generator_0
|
||||||
|
PARAMETER C_CLKIN_FREQ = 100000000
|
||||||
|
PARAMETER C_CLKFBIN_FREQ = 125000000
|
||||||
|
PARAMETER C_CLKOUT0_FREQ = 125000000
|
||||||
|
PARAMETER C_CLKOUT0_PHASE = 90
|
||||||
|
PARAMETER C_CLKOUT0_GROUP = PLL0_ADJUST
|
||||||
|
PARAMETER C_CLKOUT0_BUF = TRUE
|
||||||
|
PARAMETER C_CLKOUT1_FREQ = 125000000
|
||||||
|
PARAMETER C_CLKOUT1_PHASE = 0
|
||||||
|
PARAMETER C_CLKOUT1_GROUP = PLL0
|
||||||
|
PARAMETER C_CLKOUT1_BUF = TRUE
|
||||||
|
PARAMETER C_CLKOUT2_FREQ = 125000000
|
||||||
|
PARAMETER C_CLKOUT2_PHASE = 0
|
||||||
|
PARAMETER C_CLKOUT2_GROUP = PLL0_ADJUST
|
||||||
|
PARAMETER C_CLKOUT2_BUF = TRUE
|
||||||
|
PARAMETER C_CLKOUT3_FREQ = 200000000
|
||||||
|
PARAMETER C_CLKOUT3_PHASE = 0
|
||||||
|
PARAMETER C_CLKOUT3_GROUP = NONE
|
||||||
|
PARAMETER C_CLKOUT3_BUF = TRUE
|
||||||
|
PARAMETER C_CLKOUT4_FREQ = 62500000
|
||||||
|
PARAMETER C_CLKOUT4_PHASE = 0
|
||||||
|
PARAMETER C_CLKOUT4_GROUP = PLL0_ADJUST
|
||||||
|
PARAMETER C_CLKOUT4_BUF = TRUE
|
||||||
|
PARAMETER C_CLKFBOUT_FREQ = 125000000
|
||||||
|
PARAMETER C_CLKFBOUT_BUF = TRUE
|
||||||
|
PARAMETER HW_VER = 3.00.a
|
||||||
|
PORT CLKIN = dcm_clk_s
|
||||||
|
PORT CLKFBIN = SRAM_CLK_FB_s
|
||||||
|
PORT CLKOUT0 = clk_125_0000MHz90PLL0_ADJUST
|
||||||
|
PORT CLKOUT1 = clk_125_0000MHzPLL0
|
||||||
|
PORT CLKOUT2 = clk_125_0000MHzPLL0_ADJUST
|
||||||
|
PORT CLKOUT3 = clk_200_0000MHz
|
||||||
|
PORT CLKOUT4 = clk_62_5000MHzPLL0_ADJUST
|
||||||
|
PORT CLKFBOUT = SRAM_CLK_OUT_s
|
||||||
|
PORT RST = net_gnd
|
||||||
|
PORT LOCKED = Dcm_all_locked
|
||||||
|
END
|
||||||
|
|
||||||
|
BEGIN jtagppc_cntlr
|
||||||
|
PARAMETER INSTANCE = jtagppc_cntlr_inst
|
||||||
|
PARAMETER HW_VER = 2.01.c
|
||||||
|
BUS_INTERFACE JTAGPPC0 = ppc440_0_jtagppc_bus
|
||||||
|
END
|
||||||
|
|
||||||
|
BEGIN proc_sys_reset
|
||||||
|
PARAMETER INSTANCE = proc_sys_reset_0
|
||||||
|
PARAMETER C_EXT_RESET_HIGH = 0
|
||||||
|
PARAMETER HW_VER = 2.00.a
|
||||||
|
BUS_INTERFACE RESETPPC0 = ppc_reset_bus
|
||||||
|
PORT Slowest_sync_clk = clk_125_0000MHzPLL0_ADJUST
|
||||||
|
PORT Ext_Reset_In = sys_rst_s
|
||||||
|
PORT Dcm_locked = Dcm_all_locked
|
||||||
|
PORT Bus_Struct_Reset = sys_bus_reset
|
||||||
|
PORT Peripheral_Reset = sys_periph_reset
|
||||||
|
END
|
||||||
|
|
||||||
|
BEGIN xps_intc
|
||||||
|
PARAMETER INSTANCE = xps_intc_0
|
||||||
|
PARAMETER HW_VER = 2.00.a
|
||||||
|
PARAMETER C_BASEADDR = 0x81800000
|
||||||
|
PARAMETER C_HIGHADDR = 0x8180ffff
|
||||||
|
BUS_INTERFACE SPLB = plb_v46_0
|
||||||
|
PORT Intr = fpga_0_Ethernet_MAC_MDINT_pin&RS232_Uart_1_Interrupt
|
||||||
|
PORT Irq = ppc440_0_EICC440EXTIRQ
|
||||||
|
END
|
||||||
|
|
131
Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/revup/system_mss.11.1
Normal file
131
Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/revup/system_mss.11.1
Normal file
|
@ -0,0 +1,131 @@
|
||||||
|
|
||||||
|
PARAMETER VERSION = 2.2.0
|
||||||
|
|
||||||
|
|
||||||
|
BEGIN OS
|
||||||
|
PARAMETER OS_NAME = standalone
|
||||||
|
PARAMETER OS_VER = 2.00.a
|
||||||
|
PARAMETER PROC_INSTANCE = ppc440_0
|
||||||
|
PARAMETER STDIN = RS232_Uart_1
|
||||||
|
PARAMETER STDOUT = RS232_Uart_1
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
BEGIN PROCESSOR
|
||||||
|
PARAMETER DRIVER_NAME = cpu_ppc440
|
||||||
|
PARAMETER DRIVER_VER = 1.00.b
|
||||||
|
PARAMETER HW_INSTANCE = ppc440_0
|
||||||
|
PARAMETER COMPILER = powerpc-eabi-gcc
|
||||||
|
PARAMETER ARCHIVER = powerpc-eabi-ar
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
BEGIN DRIVER
|
||||||
|
PARAMETER DRIVER_NAME = bram
|
||||||
|
PARAMETER DRIVER_VER = 1.00.a
|
||||||
|
PARAMETER HW_INSTANCE = xps_bram_if_cntlr_1
|
||||||
|
END
|
||||||
|
|
||||||
|
BEGIN DRIVER
|
||||||
|
PARAMETER DRIVER_NAME = generic
|
||||||
|
PARAMETER DRIVER_VER = 1.00.a
|
||||||
|
PARAMETER HW_INSTANCE = xps_bram_if_cntlr_1_bram
|
||||||
|
END
|
||||||
|
|
||||||
|
BEGIN DRIVER
|
||||||
|
PARAMETER DRIVER_NAME = uartlite
|
||||||
|
PARAMETER DRIVER_VER = 1.14.a
|
||||||
|
PARAMETER HW_INSTANCE = RS232_Uart_1
|
||||||
|
END
|
||||||
|
|
||||||
|
BEGIN DRIVER
|
||||||
|
PARAMETER DRIVER_NAME = gpio
|
||||||
|
PARAMETER DRIVER_VER = 2.13.a
|
||||||
|
PARAMETER HW_INSTANCE = LEDs_8Bit
|
||||||
|
END
|
||||||
|
|
||||||
|
BEGIN DRIVER
|
||||||
|
PARAMETER DRIVER_NAME = gpio
|
||||||
|
PARAMETER DRIVER_VER = 2.13.a
|
||||||
|
PARAMETER HW_INSTANCE = LEDs_Positions
|
||||||
|
END
|
||||||
|
|
||||||
|
BEGIN DRIVER
|
||||||
|
PARAMETER DRIVER_NAME = gpio
|
||||||
|
PARAMETER DRIVER_VER = 2.13.a
|
||||||
|
PARAMETER HW_INSTANCE = Push_Buttons_5Bit
|
||||||
|
END
|
||||||
|
|
||||||
|
BEGIN DRIVER
|
||||||
|
PARAMETER DRIVER_NAME = gpio
|
||||||
|
PARAMETER DRIVER_VER = 2.13.a
|
||||||
|
PARAMETER HW_INSTANCE = DIP_Switches_8Bit
|
||||||
|
END
|
||||||
|
|
||||||
|
BEGIN DRIVER
|
||||||
|
PARAMETER DRIVER_NAME = iic
|
||||||
|
PARAMETER DRIVER_VER = 1.14.a
|
||||||
|
PARAMETER HW_INSTANCE = IIC_EEPROM
|
||||||
|
END
|
||||||
|
|
||||||
|
BEGIN DRIVER
|
||||||
|
PARAMETER DRIVER_NAME = emc
|
||||||
|
PARAMETER DRIVER_VER = 2.00.a
|
||||||
|
PARAMETER HW_INSTANCE = SRAM
|
||||||
|
END
|
||||||
|
|
||||||
|
BEGIN DRIVER
|
||||||
|
PARAMETER DRIVER_NAME = pcie
|
||||||
|
PARAMETER DRIVER_VER = 1.00.a
|
||||||
|
PARAMETER HW_INSTANCE = PCIe_Bridge
|
||||||
|
END
|
||||||
|
|
||||||
|
BEGIN DRIVER
|
||||||
|
PARAMETER DRIVER_NAME = emaclite
|
||||||
|
PARAMETER DRIVER_VER = 1.14.a
|
||||||
|
PARAMETER HW_INSTANCE = Ethernet_MAC
|
||||||
|
END
|
||||||
|
|
||||||
|
BEGIN DRIVER
|
||||||
|
PARAMETER DRIVER_NAME = memcon
|
||||||
|
PARAMETER DRIVER_VER = 1.00.a
|
||||||
|
PARAMETER HW_INSTANCE = DDR2_SDRAM
|
||||||
|
END
|
||||||
|
|
||||||
|
BEGIN DRIVER
|
||||||
|
PARAMETER DRIVER_NAME = sysace
|
||||||
|
PARAMETER DRIVER_VER = 1.12.a
|
||||||
|
PARAMETER HW_INSTANCE = SysACE_CompactFlash
|
||||||
|
END
|
||||||
|
|
||||||
|
BEGIN DRIVER
|
||||||
|
PARAMETER DRIVER_NAME = apu_fpu_virtex5
|
||||||
|
PARAMETER DRIVER_VER = 1.00.a
|
||||||
|
PARAMETER HW_INSTANCE = ppc440_0_apu_fpu_virtex5
|
||||||
|
END
|
||||||
|
|
||||||
|
BEGIN DRIVER
|
||||||
|
PARAMETER DRIVER_NAME = generic
|
||||||
|
PARAMETER DRIVER_VER = 1.00.a
|
||||||
|
PARAMETER HW_INSTANCE = clock_generator_0
|
||||||
|
END
|
||||||
|
|
||||||
|
BEGIN DRIVER
|
||||||
|
PARAMETER DRIVER_NAME = generic
|
||||||
|
PARAMETER DRIVER_VER = 1.00.a
|
||||||
|
PARAMETER HW_INSTANCE = jtagppc_cntlr_inst
|
||||||
|
END
|
||||||
|
|
||||||
|
BEGIN DRIVER
|
||||||
|
PARAMETER DRIVER_NAME = generic
|
||||||
|
PARAMETER DRIVER_VER = 1.00.a
|
||||||
|
PARAMETER HW_INSTANCE = proc_sys_reset_0
|
||||||
|
END
|
||||||
|
|
||||||
|
BEGIN DRIVER
|
||||||
|
PARAMETER DRIVER_NAME = intc
|
||||||
|
PARAMETER DRIVER_VER = 1.11.a
|
||||||
|
PARAMETER HW_INSTANCE = xps_intc_0
|
||||||
|
END
|
||||||
|
|
||||||
|
|
69
Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/revup/system_xmp.11.1
Normal file
69
Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/revup/system_xmp.11.1
Normal file
|
@ -0,0 +1,69 @@
|
||||||
|
#Please do not modify this file by hand
|
||||||
|
XmpVersion: 11.1
|
||||||
|
VerMgmt: 11.1
|
||||||
|
IntStyle: default
|
||||||
|
MHS File: system.mhs
|
||||||
|
MSS File: system.mss
|
||||||
|
Architecture: virtex5
|
||||||
|
Device: xc5vfx70t
|
||||||
|
Package: ff1136
|
||||||
|
SpeedGrade: -1
|
||||||
|
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
|
||||||
|
Processor: ppc440_0
|
||||||
|
BootLoop: 1
|
||||||
|
XmdStub: 0
|
||||||
|
SwProj: RTOSDemo
|
||||||
|
Processor: ppc440_0
|
||||||
|
Executable: RTOSDemo/executable.elf
|
||||||
|
Source: RTOSDemo/../../Common/Minimal/BlockQ.c
|
||||||
|
Source: RTOSDemo/../../Common/Minimal/blocktim.c
|
||||||
|
Source: RTOSDemo/../../Common/Minimal/comtest.c
|
||||||
|
Source: RTOSDemo/../../Common/Minimal/countsem.c
|
||||||
|
Source: RTOSDemo/../../Common/Minimal/death.c
|
||||||
|
Source: RTOSDemo/../../Common/Minimal/dynamic.c
|
||||||
|
Source: RTOSDemo/../../Common/Minimal/flash.c
|
||||||
|
Source: RTOSDemo/../../Common/Minimal/GenQTest.c
|
||||||
|
Source: RTOSDemo/../../Common/Minimal/integer.c
|
||||||
|
Source: RTOSDemo/../../Common/Minimal/QPeek.c
|
||||||
|
Source: RTOSDemo/../../Common/Minimal/recmutex.c
|
||||||
|
Source: RTOSDemo/../../Common/Minimal/semtest.c
|
||||||
|
Source: RTOSDemo/../../../Source/tasks.c
|
||||||
|
Source: RTOSDemo/../../../Source/list.c
|
||||||
|
Source: RTOSDemo/../../../Source/queue.c
|
||||||
|
Source: RTOSDemo/../../../Source/croutine.c
|
||||||
|
Source: RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/portasm.S
|
||||||
|
Source: RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/port.c
|
||||||
|
Source: RTOSDemo/../../../Source/portable/MemMang/heap_2.c
|
||||||
|
Source: RTOSDemo/flop/flop-reg-test.c
|
||||||
|
Source: RTOSDemo/flop/flop.c
|
||||||
|
Source: RTOSDemo/partest/partest.c
|
||||||
|
Source: RTOSDemo/serial/serial.c
|
||||||
|
Source: RTOSDemo/main.c
|
||||||
|
DefaultInit: EXECUTABLE
|
||||||
|
InitBram: 0
|
||||||
|
Active: 1
|
||||||
|
CompilerOptLevel: 0
|
||||||
|
GlobPtrOpt: 0
|
||||||
|
DebugSym: 1
|
||||||
|
ProfileFlag: 0
|
||||||
|
SearchIncl: ../../Source/include ../../Source/portable/GCC/PPC440_Xilinx ../Common/include ./RTOSDemo ./RTOSDemo/flop
|
||||||
|
ProgStart:
|
||||||
|
StackSize:
|
||||||
|
HeapSize:
|
||||||
|
LinkerScript: RTOSDemo/RTOSDemo_linker_script.ld
|
||||||
|
ProgCCFlags: -D USE_DP_FPU -D GCC_PPC440 -mregnames
|
||||||
|
CompileInXps: 1
|
||||||
|
NonXpsApp: 0
|
1
Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/system.bsb
Normal file
1
Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/system.bsb
Normal file
|
@ -0,0 +1 @@
|
||||||
|
<1D>トョメ<EFBDAE>tヲハ隰ハ蓙メ゙ワ@Dbb\b\`bDvC<76>トョメ<EFBDAE>tヲハ閼゙ツ菠@Dーメリメワ<EFBE92>@Dャメ蒻ハ<E892BB>j@囗j`n@喜ツリ<EFBE82>靨゙ワ@<40>リツ靂゙蒂D@D<>v-<2D>トョメ<EFBDAE>tェ猜ツ靆<EFBE82>ツ菠@Dう<44>暢恰ィェ、灰@D<>蒻ハ<E892BB>Dv.<2E>トョメ<EFBDAE>tェ猜ツ靆<EFBE82>ツ菠@D<>ャ中汗ヲ超灰@D<>j<EFBFBD><6A>`錺v'<27>トョメ<EFBDAE>tェ猜ツ靆<EFBE82>ツ菠@D<>f魔至D@DフフbbflDv'<27>トョメ<EFBDAE>tェ猜ツ靆<EFBE82>ツ菠@D、ヲィセ<EFBDA8>椈う暢イD@D`Dv&<26>トョメ<EFBDAE>tェ猜ツ靆<EFBE82>ツ菠@Dヲ<44>滑<EFBFBD>、h灰@DZbDv$<24>トョメ<EFBDAE>tヲハ隕<EFBE8A>靆レ@D珥ニhh`D@Db\``\ツDv8<76>トョメ<EFBDAE>tェ猜ツ靆ヲ<E99D86>靆レ@D━ヲセ研瓦D@Dbdj\``````D@D珥ニhh`セ`Dv8<76>トョメ<EFBDAE>tェ猜ツ靆ヲ<E99D86>靆レ@D<>明研瓦D@Db``\``````D@D珥ニhh`セ`Dv9<76>トョメ<EFBDAE>tェ猜ツ靆ヲ<E99D86>靆レ@D<>、梟セ研瓦D@Dbdj\``````D@D珥ニhh`セ`Dv4<76>トョメ<EFBDAE>tなネ<E381AA>葯ニハ跏゙隋D珥ニhh`セ`D@D<><44><EFBFBD>h`D@D珥ニhh`セ`Dv6<76>トョメ<EFBDAE>tェ猜ツ靆<EFBE82>レ玻ワハワ錙D珥ニhh`セ`D@D<><44>灰@D悚@<40><>灰v3<76>トョメ<EFBDAE>tェ猜ツ靆<EFBE82>レ玻ワハワ錙D珥ニhh`セ`D@D<>ェヲ汗権ェD@DbDv6<76>トョメ<EFBDAE>tェ猜ツ靆<EFBE82>レ玻ワハワ錙D珥ニhh`セ`D@D<><44>@ヲ超灰@D憊ワハDv6<76>トョメ<EFBDAE>tェ猜ツ靆<EFBE82>レ玻ワハワ錙D珥ニhh`セ`D@D寵<44>@ヲ超灰@D憊ワハDv><3E>トョメ<EFBDAE>tなネ<E381AA>ハ萪獎ハ萃リ@D<>、dセヲ愛zD@D珥ニhh`レニセネネ臈D@D珥ニhh`セ`Dv@<40>トョメ<EFBDAE>tなネ<E381AA>ハ萪獎ハ萃リ@D<><44>セヲ霻霹ミハ貔p<E8B294>錺@D<>貔ホ默゙D@D珥ニhh`セ`DvF<76>トョメ<EFBDAE>tェ猜ツ靆<EFBE82>レ玻ワハワ錙D<E98C99><44>セヲ霻霹ミハ貔p<E8B294>錺@D疾ェヲ汗凋ィ侃、ェ<EFBDA4>ィD@D撃丿灰vC<76>トョメ<EFBDAE>tなネ<E381AA>ハ萪獎ハ萃リ@D願ミハ葆ハ霎嘯<E99C8E>@D<>貔ハ靤ハ葆ハ靼メ靆D@D珥ニhh`セ`DvA<76>トョメ<EFBDAE>tェ猜ツ靆<EFBE82>レ玻ワハワ錙D願ミハ葆ハ霎嘯<E99C8E>@D疾ェヲ汗凋ィ侃、ェ<EFBDA4>ィD@D撃丿灰v8<76>トョメ<EFBDAE>tなネ<E381AA>ハ萪獎ハ萃リ@D鋳<44>滑<EFBFBD>、椢D@D<>貔メメニD@D珥ニhh`セ`Dv?<3F>トョメ<EFBDAE>tェ猜ツ靆<EFBE82>レ玻ワハワ錙D鋳<44>滑<EFBFBD>、椢D@D疾ェヲ汗凋ィ侃、ェ<EFBDA4>ィD@D撃丿灰v8<76>トョメ<EFBDAE>tなネ<E381AA>ハ萪獎ハ萃リ@D<>域セp<EFBDBE>錺@D<>貔ホ默゙D@D珥ニhh`セ`Dv><3E>トョメ<EFBDAE>tェ猜ツ靆<EFBE82>レ玻ワハワ錙D<E98C99>域セp<EFBDBE>錺@D疾ェヲ汗凋ィ侃、ェ<EFBDA4>ィD@D撃丿灰v=<3D>トョメ<EFBDAE>tなネ<E381AA>ハ萪獎ハ萃リ@D<>域セ<E59F9F>゙贅靨゙ワ襯@D<>貔ホ默゙D@D珥ニhh`セ`DvC<76>トョメ<EFBDAE>tェ猜ツ靆<EFBE82>レ玻ワハワ錙D<E98C99>域セ<E59F9F>゙贅靨゙ワ襯@D疾ェヲ汗凋ィ侃、ェ<EFBDA4>ィD@D撃丿灰v=<3D>トョメ<EFBDAE>tなネ<E381AA>ハ萪獎ハ萃リ@D<><44>ハセ<EFBE8A>メネホハD@D獵ト<E78DB5>lセ猗メハD@D珥ニhh`セ`Dv:<3A>トョメ<EFBDAE>tェ猜ツ靆<EFBE82>レ玻ワハワ錙D<E98C99><44>ハセ<EFBE8A>メネホハD@D疾ェヲ汗<EFBDA6><E6B197>@D撃丿灰v@<40>トョメ<EFBDAE>tェ猜ツ靆<EFBE82>レ玻ワハワ錙D<E98C99><44>ハセ<EFBE8A>メネホハD@D疾ェヲ汗凋ィ侃、ェ<EFBDA4>ィD@D撃丿灰v@<40>トョメ<EFBDAE>tなネ<E381AA>ハ萪獎ハ萃リ@D<><44>ミセ<EFBE90>韋゙ワ貔j<E8B294>錺@D<>貔ホ默゙D@D珥ニhh`セ`DvF<76>トョメ<EFBDAE>tェ猜ツ靆<EFBE82>レ玻ワハワ錙D<E98C99><44>ミセ<EFBE90>韋゙ワ貔j<E8B294>錺@D疾ェヲ汗凋ィ侃、ェ<EFBDA4>ィD@D撃丿灰v?<3F>トョメ<EFBDAE>tなネ<E381AA>ハ萪獎ハ萃リ@D、ヲdfdセェツ蒻セbD@D<>貔<EFBFBD>蒻リメ靆D@D珥ニhh`セ`Dv;<3B>トョメ<EFBDAE>tェ猜ツ靆<EFBE82>レ玻ワハワ錙D、ヲdfdセェツ蒻セbD@D<>рェ愛お灰@Drl``Dv9<76>トョメ<EFBDAE>tェ猜ツ靆<EFBE82>レ玻ワハワ錙D、ヲdfdセェツ蒻セbD@D<><44>ィだ<EFBDA8>ィヲD@DpDv9<76>トョメ<EFBDAE>tェ猜ツ靆<EFBE82>レ玻ワハワ錙D、ヲdfdセェツ蒻セbD@D疾<44>う暢イD@D憊ワハDvA<76>トョメ<EFBDAE>tェ猜ツ靆<EFBE82>レ玻ワハワ錙D、ヲdfdセェツ蒻セbD@D疾ェヲ汗凋ィ侃、ェ<EFBDA4>ィD@D撃丿灰v6<76>トョメ<EFBDAE>tなネ<E381AA>ハ萪獎ハ萃リ@Dヲ、zD@D<>貔レニミセハレニD@D珥ニhh`セ`DvD<76>トョメ<EFBDAE>tなネ<E381AA>ハ萪獎ハ萃リ@Dヲ<44>f汗<EFBD86>レ狡ニ闌リツ賻D@D<>貔踉貭ニハD@D珥ニhh`セ`DvH<76>トョメ<EFBDAE>tェ猜ツ靆<EFBE82>レ玻ワハワ錙Dヲ<44>f汗<EFBD86>レ狡ニ闌リツ賻D@D疾ェヲ汗凋ィ侃、ェ<EFBDA4>ィD@D撃丿灰vK<76>トョメ<EFBDAE>tなネ<E381AA>ハ萪獎ハ萃リ@D<>貔ト萃レセメフセニワ靼萓bD@D<>貔ト萃レセメフセニワ靼腑@D珥ニhh`セ`DvB<76>トョメ<EFBDAE>tェ猜ツ靆<EFBE82>レ玻ワハワ錙D<E98C99>貔ト萃レセメフセニワ靼萓bD@D疾嚏埓ヲ超灰@Dp@埋DvS<76>トョメ<EFBDAE>tェ猜ツ靆ヲョ@Dヲョセ至怺、お汗嚏圷寒ィD@Dィ、ェ灰@Dィハ跖も狎毀レ゙蔗セ珥ニhh`セ`D@D珥ニhh`セ`DvS<76>トョメ<EFBDAE>tェ猜ツ靆ィハ跖も漾Dィハ跖も狎毀レ゙蔗セ珥ニhh`セ`D@Dヲョセ<EFBDAE>棹嚏咼@D<>貔ト萃レセメフセニワ靼萓bDvK<76>トョメ<EFBDAE>tェ猜ツ靆ィハ跖も漾Dィハ跖も狎毀レ゙蔗セ珥ニhh`セ`D@Dヲョセ<EFBDAE>棹セ<E6A3B9>うD@D<>рヲ鰍<EFBDA6>、DvT<76>トョメ<EFBDAE>tェ猜ツ靆ィハ跖も漾Dィハ跖も狎毀レ゙蔗セ珥ニhh`セ`D@Dヲョセ<EFBDAE>ィだ凋ヲD@D<>貔ト萃レセメフセニワ靼萓bDvK<76>トョメ<EFBDAE>tェ猜ツ靆ィハ跖も漾Dィハ跖も狎毀レ゙蔗セ珥ニhh`セ`D@Dヲョセ<EFBDAE>ィだ<EFBDA8>うD@D<>рヲ鰍<EFBDA6>、DvT<76>トョメ<EFBDAE>tェ猜ツ靆ィハ跖も漾Dィハ跖も狎毀レ゙蔗セ珥ニhh`セ`D@Dヲョセ衰あセ凋ヲD@D<>貔ト萃レセメフセニワ靼萓bDvK<76>トョメ<EFBDAE>tェ猜ツ靆ィハ跖も漾Dィハ跖も狎毀レ゙蔗セ珥ニhh`セ`D@Dヲョセ衰あセ<E38182>うD@D<>рヲ鰍<EFBDA6>、DvW<76>トョメ<EFBDAE>tェ猜ツ靆ィハ跖も漾Dィハ跖も狎毀レ゙蔗セ珥ニhh`セ`D@Dヲョセ<EFBDAE>、梹、zセ凋ヲD@D<>貔ト萃レセメフセニワ靼萓bDvN<76>トョメ<EFBDAE>tェ猜ツ靆ィハ跖も漾Dィハ跖も狎毀レ゙蔗セ珥ニhh`セ`D@Dヲョセ<EFBDAE>、梹、zセ<EFBD9A>うD@D<>рヲ鰍<EFBDA6>、DvU<76>トョメ<EFBDAE>tェ猜ツ靆ィハ跖も漾Dィハ跖も狎毀レ゙蔗セ珥ニhh`セ`D@Dヲョセヲィf明凋ヲD@D<>貔ト萃レセメフセニワ靼萓bDvL<76>トョメ<EFBDAE>tェ猜ツ靆ィハ跖も漾Dィハ跖も狎毀レ゙蔗セ珥ニhh`セ`D@Dヲョセヲィf明<EFBD86>うD@D<>рヲ鰍<EFBDA6>、DvJ<76>トョメ<EFBDAE>tェ猜ツ靆ィハ跖も漾Dィハ跖も狎毀レ゙蔗セ珥ニhh`セ`D@Dヲョセヲィ<EFBDA6>廛@D、ヲdfdセェツ蒻セbDvK<76>トョメ<EFBDAE>tェ猜ツ靆ィハ跖も漾Dィハ跖も狎毀レ゙蔗セ珥ニhh`セ`D@Dヲョセヲィ<EFBDA6>ェィD@D、ヲdfdセェツ蒻セbDvH<76>トョメ<EFBDAE>tェ猜ツ靆ィハ跖も漾Dィハ跖も狎毀レ゙蔗セ珥ニhh`セ`D@Dヲョセャ恰ィ椄ヲセ凋ヲD@Dヲ、zDvS<76>トョメ<EFBDAE>tェ猜ツ靆ィハ跖も漾Dィハ跖も狎毀レ゙蔗セ珥ニhh`セ`D@Dヲョセャ恰ィ椄ヲセ<EFBDA6>うD@D<>嚏啻セрヲ鰍<EFBDA6>、DvZ<76>トョメ<EFBDAE>tェ猜ツ靆ヲョ@Dヲョセ至怺、お汗<E3818A>侃帳勢寒ィD@Dィ、ェ灰@Dィハ跖も狎<E38282>ハ萪獎ハ萃リセ珥ニhh`セ`D@D珥ニhh`セ`DvW<76>トョメ<EFBDAE>tェ猜ツ靆ィハ跖も漾Dィハ跖も狎<E38282>ハ萪獎ハ萃リセ珥ニhh`セ`D@Dヲョセ<EFBDAE>棹嚏咼@D<>貔ト萃レセメフセニワ靼萓bDvO<76>トョメ<EFBDAE>tェ猜ツ靆ィハ跖も漾Dィハ跖も狎<E38282>ハ萪獎ハ萃リセ珥ニhh`セ`D@Dヲョセ<EFBDAE>棹セ<E6A3B9>うD@D<>рヲ鰍<EFBDA6>、DvI<76>トョメ<EFBDAE>tェ猜ツ靆ィハ跖も漾Dィハ跖も狎<E38282>ハ萪獎ハ萃リセ珥ニhh`セ`D@Dヲョセ<EFBDAE>ィだ凋ヲD@Dヲ、zDvT<76>トョメ<EFBDAE>tェ猜ツ靆ィハ跖も漾Dィハ跖も狎<E38282>ハ萪獎ハ萃リセ珥ニhh`セ`D@Dヲョセ<EFBDAE>ィだ<EFBDA8>うD@D<>嚏啻セрヲ鰍<EFBDA6>、DvI<76>トョメ<EFBDAE>tェ猜ツ靆ィハ跖も漾Dィハ跖も狎<E38282>ハ萪獎ハ萃リセ珥ニhh`セ`D@Dヲョセ衰あセ凋ヲD@Dヲ、zDvT<76>トョメ<EFBDAE>tェ猜ツ靆ィハ跖も漾Dィハ跖も狎<E38282>ハ萪獎ハ萃リセ珥ニhh`セ`D@Dヲョセ衰あセ<E38182>うD@D<>嚏啻セрヲ鰍<EFBDA6>、DvL<76>トョメ<EFBDAE>tェ猜ツ靆ィハ跖も漾Dィハ跖も狎<E38282>ハ萪獎ハ萃リセ珥ニhh`セ`D@Dヲョセ<EFBDAE>、梹、zセ凋ヲD@Dヲ、zDvW<76>トョメ<EFBDAE>tェ猜ツ靆ィハ跖も漾Dィハ跖も狎<E38282>ハ萪獎ハ萃リセ珥ニhh`セ`D@Dヲョセ<EFBDAE>、梹、zセ<EFBD9A>うD@D<>嚏啻セрヲ鰍<EFBDA6>、DvJ<76>トョメ<EFBDAE>tェ猜ツ靆ィハ跖も漾Dィハ跖も狎<E38282>ハ萪獎ハ萃リセ珥ニhh`セ`D@Dヲョセヲィf明凋ヲD@Dヲ、zDvU<76>トョメ<EFBDAE>tェ猜ツ靆ィハ跖も漾Dィハ跖も狎<E38282>ハ萪獎ハ萃リセ珥ニhh`セ`D@Dヲョセヲィf明<EFBD86>うD@D<>嚏啻セрヲ鰍<EFBDA6>、DvN<76>トョメ<EFBDAE>tェ猜ツ靆ィハ跖も漾Dィハ跖も狎<E38282>ハ萪獎ハ萃リセ珥ニhh`セ`D@Dヲョセヲィ<EFBDA6>廛@D、ヲdfdセェツ蒻セbDvO<76>トョメ<EFBDAE>tェ猜ツ靆ィハ跖も漾Dィハ跖も狎<E38282>ハ萪獎ハ萃リセ珥ニhh`セ`D@Dヲョセヲィ<EFBDA6>ェィD@D、ヲdfdセェツ蒻セbDvL<76>トョメ<EFBDAE>tェ猜ツ靆ィハ跖も漾Dィハ跖も狎<E38282>ハ萪獎ハ萃リセ珥ニhh`セ`D@Dヲョセャ恰ィ椄ヲセ凋ヲD@Dヲ、zDvW<76>トョメ<EFBDAE>tェ猜ツ靆ィハ跖も漾Dィハ跖も狎<E38282>ハ萪獎ハ萃リセ珥ニhh`セ`D@Dヲョセャ恰ィ椄ヲセ<EFBDA6>うD@D<>嚏啻セрヲ鰍<EFBDA6>、Dv
|
99
Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/system.log
Normal file
99
Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/system.log
Normal file
|
@ -0,0 +1,99 @@
|
||||||
|
No logfile was found.
|
||||||
|
|
||||||
|
WARNING:EDK:1582 - IPNAME:plbv46_pcie INSTANCE:PCIe_Bridge - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\system.mhs line 253 - deprecated core for architecture 'virtex5fx'!
|
||||||
|
|
||||||
|
WARNING:EDK:1582 - IPNAME:xps_ethernetlite INSTANCE:Ethernet_MAC - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\system.mhs line 298 - deprecated core for architecture 'virtex5fx'!
|
||||||
|
|
||||||
|
Generating Block Diagram to Buffer
|
||||||
|
|
||||||
|
Generated Block Diagram SVG
|
||||||
|
|
||||||
|
The project file (XMP) has changed on disk.
|
||||||
|
|
||||||
|
WARNING:EDK:1582 - IPNAME:plbv46_pcie INSTANCE:PCIe_Bridge - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\system.mhs line 253 - deprecated core for architecture 'virtex5fx'!
|
||||||
|
|
||||||
|
WARNING:EDK:1582 - IPNAME:xps_ethernetlite INSTANCE:Ethernet_MAC - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\system.mhs line 298 - deprecated core for architecture 'virtex5fx'!
|
||||||
|
|
||||||
|
WARNING:EDK:1582 - IPNAME:plbv46_pcie INSTANCE:PCIe_Bridge - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\_xps_tempmhsfilename.mhs line 239 - deprecated core for architecture 'virtex5fx'!
|
||||||
|
|
||||||
|
WARNING:EDK:1582 - IPNAME:xps_ethernetlite INSTANCE:Ethernet_MAC - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\_xps_tempmhsfilename.mhs line 284 - deprecated core for architecture 'virtex5fx'!
|
||||||
|
|
||||||
|
At Local date and time: Tue Jun 30 18:36:00 2009
|
||||||
|
make -f system.make netlistclean started...
|
||||||
|
|
||||||
|
rm -f implementation/system.ngc
|
||||||
|
rm -f platgen.log
|
||||||
|
rm -f __xps/ise/_xmsgs/platgen.xmsgs
|
||||||
|
rm -f implementation/system.bmm
|
||||||
|
|
||||||
|
|
||||||
|
Done!
|
||||||
|
|
||||||
|
At Local date and time: Tue Jun 30 18:36:05 2009
|
||||||
|
make -f system.make bitsclean started...
|
||||||
|
|
||||||
|
rm -f implementation/system.bit
|
||||||
|
rm -f implementation/system.ncd
|
||||||
|
rm -f implementation/system_bd.bmm
|
||||||
|
rm -f implementation/system_map.ncd
|
||||||
|
rm -f __xps/system_routed
|
||||||
|
|
||||||
|
|
||||||
|
Done!
|
||||||
|
|
||||||
|
At Local date and time: Tue Jun 30 18:36:10 2009
|
||||||
|
make -f system.make hwclean started...
|
||||||
|
|
||||||
|
rm -f implementation/system.ngc
|
||||||
|
rm -f platgen.log
|
||||||
|
rm -f __xps/ise/_xmsgs/platgen.xmsgs
|
||||||
|
rm -f implementation/system.bmm
|
||||||
|
rm -f implementation/system.bit
|
||||||
|
rm -f implementation/system.ncd
|
||||||
|
rm -f implementation/system_bd.bmm
|
||||||
|
rm -f implementation/system_map.ncd
|
||||||
|
rm -f __xps/system_routed
|
||||||
|
rm -rf implementation synthesis xst hdl
|
||||||
|
rm -rf xst.srp system.srp
|
||||||
|
rm -f __xps/ise/_xmsgs/bitinit.xmsgs
|
||||||
|
|
||||||
|
|
||||||
|
Done!
|
||||||
|
|
||||||
|
At Local date and time: Tue Jun 30 18:36:16 2009
|
||||||
|
make -f system.make libsclean started...
|
||||||
|
|
||||||
|
rm -rf ppc440_0/
|
||||||
|
rm -f libgen.log
|
||||||
|
rm -f __xps/ise/_xmsgs/libgen.xmsgs
|
||||||
|
|
||||||
|
|
||||||
|
Done!
|
||||||
|
|
||||||
|
At Local date and time: Tue Jun 30 18:36:20 2009
|
||||||
|
make -f system.make programclean started...
|
||||||
|
|
||||||
|
rm -f RTOSDemo/executable.elf
|
||||||
|
|
||||||
|
|
||||||
|
Done!
|
||||||
|
|
||||||
|
At Local date and time: Tue Jun 30 18:36:25 2009
|
||||||
|
make -f system.make swclean started...
|
||||||
|
|
||||||
|
rm -rf ppc440_0/
|
||||||
|
rm -f libgen.log
|
||||||
|
rm -f __xps/ise/_xmsgs/libgen.xmsgs
|
||||||
|
rm -f RTOSDemo/executable.elf
|
||||||
|
|
||||||
|
|
||||||
|
Done!
|
||||||
|
|
||||||
|
Writing filter settings....
|
||||||
|
|
||||||
|
Done writing filter settings to:
|
||||||
|
C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\__xps\system.filters
|
||||||
|
|
||||||
|
Done writing Tab View settings to:
|
||||||
|
C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\__xps\system.gui
|
||||||
|
|
277
Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/system.make
Normal file
277
Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/system.make
Normal file
|
@ -0,0 +1,277 @@
|
||||||
|
#################################################################
|
||||||
|
# Makefile generated by Xilinx Platform Studio
|
||||||
|
# Project:C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\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\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\system.mhs
|
||||||
|
# The software specification of the system is in file :
|
||||||
|
# C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\system.mss
|
||||||
|
|
||||||
|
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 " 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 : Generates timing simulation HDL models with BRAM initialization"
|
||||||
|
@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 " 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)
|
||||||
|
|
||||||
|
exporttosdk: $(SYSTEM_HW_HANDOFF_DEP)
|
||||||
|
|
||||||
|
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)
|
||||||
|
|
||||||
|
clean: hwclean libsclean programclean 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 __xps/$(SYSTEM)_routed
|
||||||
|
|
||||||
|
simclean:
|
||||||
|
rm -rf simulation/behavioral
|
||||||
|
rm -f simgen.log
|
||||||
|
rm -f __xps/ise/_xmsgs/simgen.xmsgs
|
||||||
|
|
||||||
|
swclean: libsclean programclean
|
||||||
|
@echo ""
|
||||||
|
|
||||||
|
libsclean: $(LIBSCLEAN_TARGETS)
|
||||||
|
rm -f libgen.log
|
||||||
|
rm -f __xps/ise/_xmsgs/libgen.xmsgs
|
||||||
|
|
||||||
|
programclean: $(PROGRAMCLEAN_TARGETS)
|
||||||
|
|
||||||
|
#################################################################
|
||||||
|
# SOFTWARE PLATFORM FLOW
|
||||||
|
#################################################################
|
||||||
|
|
||||||
|
|
||||||
|
$(LIBRARIES): $(MHSFILE) $(MSSFILE) __xps/libgen.opt
|
||||||
|
@echo "*********************************************"
|
||||||
|
@echo "Creating software libraries..."
|
||||||
|
@echo "*********************************************"
|
||||||
|
libgen $(LIBGEN_OPTIONS) $(MSSFILE)
|
||||||
|
|
||||||
|
|
||||||
|
ppc440_0_libsclean:
|
||||||
|
rm -rf ppc440_0/
|
||||||
|
|
||||||
|
#################################################################
|
||||||
|
# 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) \
|
||||||
|
$(RTOSDEMO_CFLAGS) $(RTOSDEMO_LFLAGS)
|
||||||
|
$(RTOSDEMO_CC_SIZE) $(RTOSDEMO_OUTPUT)
|
||||||
|
@echo ""
|
||||||
|
|
||||||
|
RTOSDemo_programclean:
|
||||||
|
rm -f $(RTOSDEMO_OUTPUT)
|
||||||
|
|
||||||
|
#################################################################
|
||||||
|
# BOOTLOOP ELF FILES
|
||||||
|
#################################################################
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$(PPC440_0_BOOTLOOP): $(PPC440_BOOTLOOP)
|
||||||
|
@mkdir -p $(BOOTLOOP_DIR)
|
||||||
|
cp -f $(PPC440_BOOTLOOP) $(PPC440_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..."
|
||||||
|
bash -c "cd synthesis; ./synthesis.sh"
|
||||||
|
|
||||||
|
__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 -ise ../__xps/ise/$(SYSTEM).ise $(SYSTEM).ngc
|
||||||
|
touch __xps/$(SYSTEM)_routed
|
||||||
|
|
||||||
|
$(SYSTEM_BIT): __xps/$(SYSTEM)_routed $(BITGEN_UT_FILE)
|
||||||
|
xilperl $(NON_CYG_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_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_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) -target ppc_hw -ace $(SYSTEM_ACE)
|
||||||
|
|
||||||
|
#################################################################
|
||||||
|
# EXPORT_TO_SDK FLOW
|
||||||
|
#################################################################
|
||||||
|
|
||||||
|
|
||||||
|
$(SYSTEM_HW_HANDOFF): $(MHSFILE) __xps/platgen.opt
|
||||||
|
mkdir -p $(SDK_EXPORT_DIR)
|
||||||
|
psf2Edward.exe -inp $(SYSTEM).xmp -xml $(SDK_EXPORT_DIR)/$(SYSTEM).xml $(SEARCHPATHOPT)
|
||||||
|
xdsgen.exe -inp $(SYSTEM).xmp -report $(SDK_EXPORT_DIR)/$(SYSTEM).html $(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_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 ##################
|
||||||
|
|
||||||
|
implementation/$(SYSTEM).ncd: __xps/$(SYSTEM)_routed
|
||||||
|
|
||||||
|
$(TIMING_SIM_SCRIPT): implementation/$(SYSTEM).ncd __xps/simgen.opt \
|
||||||
|
$(BRAMINIT_ELF_FILES)
|
||||||
|
@echo "*********************************************"
|
||||||
|
@echo "Creating timing simulation models..."
|
||||||
|
@echo "*********************************************"
|
||||||
|
simgen $(SIMGEN_OPTIONS) -sd implementation -m timing $(MHSFILE)
|
||||||
|
|
||||||
|
dummy:
|
||||||
|
@echo ""
|
||||||
|
|
473
Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/system.mhs
Normal file
473
Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/system.mhs
Normal file
|
@ -0,0 +1,473 @@
|
||||||
|
|
||||||
|
# ##############################################################################
|
||||||
|
# Created by Base System Builder Wizard for Xilinx EDK 11.1 Build EDK_L.29.1
|
||||||
|
# Sat Jun 13 13:14:11 2009
|
||||||
|
# Target Board: Xilinx Virtex 5 ML507 Evaluation Platform Rev A
|
||||||
|
# Family: virtex5
|
||||||
|
# Device: xc5vfx70t
|
||||||
|
# Package: ff1136
|
||||||
|
# Speed Grade: -1
|
||||||
|
# Processor number: 1
|
||||||
|
# Processor 1: ppc440_0
|
||||||
|
# Processor clock frequency: 125.0
|
||||||
|
# Bus clock frequency: 125.0
|
||||||
|
# Debug Interface: FPGA JTAG
|
||||||
|
# ##############################################################################
|
||||||
|
PARAMETER VERSION = 2.1.0
|
||||||
|
|
||||||
|
|
||||||
|
PORT fpga_0_RS232_Uart_1_RX_pin = fpga_0_RS232_Uart_1_RX_pin, DIR = I
|
||||||
|
PORT fpga_0_RS232_Uart_1_TX_pin = fpga_0_RS232_Uart_1_TX_pin, DIR = O
|
||||||
|
PORT fpga_0_LEDs_8Bit_GPIO_IO_pin = fpga_0_LEDs_8Bit_GPIO_IO_pin, DIR = IO, VEC = [0:7]
|
||||||
|
PORT fpga_0_LEDs_Positions_GPIO_IO_pin = fpga_0_LEDs_Positions_GPIO_IO_pin, DIR = IO, VEC = [0:4]
|
||||||
|
PORT fpga_0_Push_Buttons_5Bit_GPIO_IO_pin = fpga_0_Push_Buttons_5Bit_GPIO_IO_pin, DIR = IO, VEC = [0:4]
|
||||||
|
PORT fpga_0_DIP_Switches_8Bit_GPIO_IO_pin = fpga_0_DIP_Switches_8Bit_GPIO_IO_pin, DIR = IO, VEC = [0:7]
|
||||||
|
PORT fpga_0_IIC_EEPROM_Sda_pin = fpga_0_IIC_EEPROM_Sda_pin, DIR = IO
|
||||||
|
PORT fpga_0_IIC_EEPROM_Scl_pin = fpga_0_IIC_EEPROM_Scl_pin, DIR = IO
|
||||||
|
PORT fpga_0_SRAM_Mem_A_pin = fpga_0_SRAM_Mem_A_pin_vslice_7_30_concat, DIR = O, VEC = [7:30]
|
||||||
|
PORT fpga_0_SRAM_Mem_CEN_pin = fpga_0_SRAM_Mem_CEN_pin, DIR = O
|
||||||
|
PORT fpga_0_SRAM_Mem_OEN_pin = fpga_0_SRAM_Mem_OEN_pin, DIR = O
|
||||||
|
PORT fpga_0_SRAM_Mem_WEN_pin = fpga_0_SRAM_Mem_WEN_pin, DIR = O
|
||||||
|
PORT fpga_0_SRAM_Mem_BEN_pin = fpga_0_SRAM_Mem_BEN_pin, DIR = O, VEC = [0:3]
|
||||||
|
PORT fpga_0_SRAM_Mem_ADV_LDN_pin = fpga_0_SRAM_Mem_ADV_LDN_pin, DIR = O
|
||||||
|
PORT fpga_0_SRAM_Mem_DQ_pin = fpga_0_SRAM_Mem_DQ_pin, DIR = IO, VEC = [0:31]
|
||||||
|
PORT fpga_0_SRAM_ZBT_CLK_OUT_pin = SRAM_CLK_OUT_s, DIR = O
|
||||||
|
PORT fpga_0_SRAM_ZBT_CLK_FB_pin = SRAM_CLK_FB_s, DIR = I, SIGIS = CLK, CLK_FREQ = 125000000
|
||||||
|
PORT fpga_0_PCIe_Bridge_RXN_pin = fpga_0_PCIe_Bridge_RXN_pin, DIR = I
|
||||||
|
PORT fpga_0_PCIe_Bridge_RXP_pin = fpga_0_PCIe_Bridge_RXP_pin, DIR = I
|
||||||
|
PORT fpga_0_PCIe_Bridge_TXN_pin = fpga_0_PCIe_Bridge_TXN_pin, DIR = O
|
||||||
|
PORT fpga_0_PCIe_Bridge_TXP_pin = fpga_0_PCIe_Bridge_TXP_pin, DIR = O
|
||||||
|
PORT fpga_0_Ethernet_MAC_PHY_tx_clk_pin = fpga_0_Ethernet_MAC_PHY_tx_clk_pin, DIR = I
|
||||||
|
PORT fpga_0_Ethernet_MAC_PHY_rx_clk_pin = fpga_0_Ethernet_MAC_PHY_rx_clk_pin, DIR = I
|
||||||
|
PORT fpga_0_Ethernet_MAC_PHY_crs_pin = fpga_0_Ethernet_MAC_PHY_crs_pin, DIR = I
|
||||||
|
PORT fpga_0_Ethernet_MAC_PHY_dv_pin = fpga_0_Ethernet_MAC_PHY_dv_pin, DIR = I
|
||||||
|
PORT fpga_0_Ethernet_MAC_PHY_rx_data_pin = fpga_0_Ethernet_MAC_PHY_rx_data_pin, DIR = I, VEC = [3:0]
|
||||||
|
PORT fpga_0_Ethernet_MAC_PHY_col_pin = fpga_0_Ethernet_MAC_PHY_col_pin, DIR = I
|
||||||
|
PORT fpga_0_Ethernet_MAC_PHY_rx_er_pin = fpga_0_Ethernet_MAC_PHY_rx_er_pin, DIR = I
|
||||||
|
PORT fpga_0_Ethernet_MAC_PHY_rst_n_pin = fpga_0_Ethernet_MAC_PHY_rst_n_pin, DIR = O
|
||||||
|
PORT fpga_0_Ethernet_MAC_PHY_tx_en_pin = fpga_0_Ethernet_MAC_PHY_tx_en_pin, DIR = O
|
||||||
|
PORT fpga_0_Ethernet_MAC_PHY_tx_data_pin = fpga_0_Ethernet_MAC_PHY_tx_data_pin, DIR = O, VEC = [3:0]
|
||||||
|
PORT fpga_0_Ethernet_MAC_MDINT_pin = fpga_0_Ethernet_MAC_MDINT_pin, DIR = I, SIGIS = INTERRUPT, SENSITIVITY = LEVEL_LOW, INTERRUPT_PRIORITY = MEDIUM
|
||||||
|
PORT fpga_0_DDR2_SDRAM_DDR2_DQ_pin = fpga_0_DDR2_SDRAM_DDR2_DQ_pin, DIR = IO, VEC = [63:0]
|
||||||
|
PORT fpga_0_DDR2_SDRAM_DDR2_DQS_pin = fpga_0_DDR2_SDRAM_DDR2_DQS_pin, DIR = IO, VEC = [7:0]
|
||||||
|
PORT fpga_0_DDR2_SDRAM_DDR2_DQS_N_pin = fpga_0_DDR2_SDRAM_DDR2_DQS_N_pin, DIR = IO, VEC = [7:0]
|
||||||
|
PORT fpga_0_DDR2_SDRAM_DDR2_A_pin = fpga_0_DDR2_SDRAM_DDR2_A_pin, DIR = O, VEC = [12:0]
|
||||||
|
PORT fpga_0_DDR2_SDRAM_DDR2_BA_pin = fpga_0_DDR2_SDRAM_DDR2_BA_pin, DIR = O, VEC = [1:0]
|
||||||
|
PORT fpga_0_DDR2_SDRAM_DDR2_RAS_N_pin = fpga_0_DDR2_SDRAM_DDR2_RAS_N_pin, DIR = O
|
||||||
|
PORT fpga_0_DDR2_SDRAM_DDR2_CAS_N_pin = fpga_0_DDR2_SDRAM_DDR2_CAS_N_pin, DIR = O
|
||||||
|
PORT fpga_0_DDR2_SDRAM_DDR2_WE_N_pin = fpga_0_DDR2_SDRAM_DDR2_WE_N_pin, DIR = O
|
||||||
|
PORT fpga_0_DDR2_SDRAM_DDR2_CS_N_pin = fpga_0_DDR2_SDRAM_DDR2_CS_N_pin, DIR = O
|
||||||
|
PORT fpga_0_DDR2_SDRAM_DDR2_ODT_pin = fpga_0_DDR2_SDRAM_DDR2_ODT_pin, DIR = O, VEC = [1:0]
|
||||||
|
PORT fpga_0_DDR2_SDRAM_DDR2_CKE_pin = fpga_0_DDR2_SDRAM_DDR2_CKE_pin, DIR = O
|
||||||
|
PORT fpga_0_DDR2_SDRAM_DDR2_DM_pin = fpga_0_DDR2_SDRAM_DDR2_DM_pin, DIR = O, VEC = [7:0]
|
||||||
|
PORT fpga_0_DDR2_SDRAM_DDR2_CK_pin = fpga_0_DDR2_SDRAM_DDR2_CK_pin, DIR = O, VEC = [1:0]
|
||||||
|
PORT fpga_0_DDR2_SDRAM_DDR2_CK_N_pin = fpga_0_DDR2_SDRAM_DDR2_CK_N_pin, DIR = O, VEC = [1:0]
|
||||||
|
PORT fpga_0_SysACE_CompactFlash_SysACE_MPA_pin = fpga_0_SysACE_CompactFlash_SysACE_MPA_pin, DIR = O, VEC = [6:0]
|
||||||
|
PORT fpga_0_SysACE_CompactFlash_SysACE_CLK_pin = fpga_0_SysACE_CompactFlash_SysACE_CLK_pin, DIR = I
|
||||||
|
PORT fpga_0_SysACE_CompactFlash_SysACE_MPIRQ_pin = fpga_0_SysACE_CompactFlash_SysACE_MPIRQ_pin, DIR = I
|
||||||
|
PORT fpga_0_SysACE_CompactFlash_SysACE_CEN_pin = fpga_0_SysACE_CompactFlash_SysACE_CEN_pin, DIR = O
|
||||||
|
PORT fpga_0_SysACE_CompactFlash_SysACE_OEN_pin = fpga_0_SysACE_CompactFlash_SysACE_OEN_pin, DIR = O
|
||||||
|
PORT fpga_0_SysACE_CompactFlash_SysACE_WEN_pin = fpga_0_SysACE_CompactFlash_SysACE_WEN_pin, DIR = O
|
||||||
|
PORT fpga_0_SysACE_CompactFlash_SysACE_MPD_pin = fpga_0_SysACE_CompactFlash_SysACE_MPD_pin, DIR = IO, VEC = [15:0]
|
||||||
|
PORT fpga_0_clk_1_sys_clk_pin = dcm_clk_s, DIR = I, SIGIS = CLK, CLK_FREQ = 100000000
|
||||||
|
PORT fpga_0_rst_1_sys_rst_pin = sys_rst_s, DIR = I, SIGIS = RST, RST_POLARITY = 0
|
||||||
|
PORT fpga_0_PCIe_Diff_Clk_IBUF_DS_P_pin = PCIe_Diff_Clk, DIR = I, DIFFERENTIAL_POLARITY = P, SIGIS = CLK
|
||||||
|
PORT fpga_0_PCIe_Diff_Clk_IBUF_DS_N_pin = PCIe_Diff_Clk, DIR = I, DIFFERENTIAL_POLARITY = N, SIGIS = CLK
|
||||||
|
|
||||||
|
|
||||||
|
BEGIN ppc440_virtex5
|
||||||
|
PARAMETER INSTANCE = ppc440_0
|
||||||
|
PARAMETER C_IDCR_BASEADDR = 0b0000000000
|
||||||
|
PARAMETER C_IDCR_HIGHADDR = 0b0011111111
|
||||||
|
PARAMETER C_APU_CONTROL = 0b00000010000000001
|
||||||
|
PARAMETER C_PPC440MC_ROW_CONFLICT_MASK = 0x003FFE00
|
||||||
|
PARAMETER C_PPC440MC_BANK_CONFLICT_MASK = 0x00C00000
|
||||||
|
PARAMETER C_PPC440MC_CONTROL = 0xF810008F
|
||||||
|
PARAMETER C_SPLB0_USE_MPLB_ADDR = 1
|
||||||
|
PARAMETER C_SPLB0_NUM_MPLB_ADDR_RNG = 1
|
||||||
|
PARAMETER C_SPLB1_NUM_MPLB_ADDR_RNG = 0
|
||||||
|
PARAMETER HW_VER = 1.01.a
|
||||||
|
PARAMETER C_SPLB0_RNG0_MPLB_BASEADDR = 0x80000000
|
||||||
|
PARAMETER C_SPLB0_RNG0_MPLB_HIGHADDR = 0xffffffff
|
||||||
|
PARAMETER C_SPLB0_RNG_MC_BASEADDR = 0x00000000
|
||||||
|
PARAMETER C_SPLB0_RNG_MC_HIGHADDR = 0x0fffffff
|
||||||
|
BUS_INTERFACE MPLB = plb_v46_0
|
||||||
|
BUS_INTERFACE SPLB0 = ppc440_0_SPLB0
|
||||||
|
BUS_INTERFACE PPC440MC = ppc440_0_PPC440MC
|
||||||
|
BUS_INTERFACE MFCB = ppc440_0_fcb_v20
|
||||||
|
BUS_INTERFACE JTAGPPC = ppc440_0_jtagppc_bus
|
||||||
|
BUS_INTERFACE RESETPPC = ppc_reset_bus
|
||||||
|
PORT CPMC440CLK = clk_125_0000MHzPLL0
|
||||||
|
PORT CPMINTERCONNECTCLK = clk_125_0000MHzPLL0
|
||||||
|
PORT CPMINTERCONNECTCLKNTO1 = net_vcc
|
||||||
|
PORT EICC440EXTIRQ = ppc440_0_EICC440EXTIRQ
|
||||||
|
PORT CPMMCCLK = clk_125_0000MHzPLL0_ADJUST
|
||||||
|
PORT CPMPPCMPLBCLK = clk_125_0000MHzPLL0_ADJUST
|
||||||
|
PORT CPMPPCS0PLBCLK = clk_125_0000MHzPLL0_ADJUST
|
||||||
|
END
|
||||||
|
|
||||||
|
BEGIN plb_v46
|
||||||
|
PARAMETER INSTANCE = plb_v46_0
|
||||||
|
PARAMETER C_DCR_INTFCE = 0
|
||||||
|
PARAMETER C_FAMILY = virtex5
|
||||||
|
PARAMETER HW_VER = 1.04.a
|
||||||
|
PORT PLB_Clk = clk_125_0000MHzPLL0_ADJUST
|
||||||
|
PORT SYS_Rst = sys_bus_reset
|
||||||
|
END
|
||||||
|
|
||||||
|
BEGIN xps_bram_if_cntlr
|
||||||
|
PARAMETER INSTANCE = xps_bram_if_cntlr_1
|
||||||
|
PARAMETER C_SPLB_NATIVE_DWIDTH = 64
|
||||||
|
PARAMETER C_SPLB_SUPPORT_BURSTS = 1
|
||||||
|
PARAMETER C_SPLB_P2P = 0
|
||||||
|
PARAMETER C_FAMILY = virtex5
|
||||||
|
PARAMETER HW_VER = 1.00.b
|
||||||
|
PARAMETER C_BASEADDR = 0xffffe000
|
||||||
|
PARAMETER C_HIGHADDR = 0xffffffff
|
||||||
|
BUS_INTERFACE SPLB = plb_v46_0
|
||||||
|
BUS_INTERFACE PORTA = xps_bram_if_cntlr_1_port
|
||||||
|
END
|
||||||
|
|
||||||
|
BEGIN bram_block
|
||||||
|
PARAMETER INSTANCE = xps_bram_if_cntlr_1_bram
|
||||||
|
PARAMETER C_FAMILY = virtex5
|
||||||
|
PARAMETER HW_VER = 1.00.a
|
||||||
|
BUS_INTERFACE PORTA = xps_bram_if_cntlr_1_port
|
||||||
|
END
|
||||||
|
|
||||||
|
BEGIN xps_uartlite
|
||||||
|
PARAMETER INSTANCE = RS232_Uart_1
|
||||||
|
PARAMETER C_FAMILY = virtex5
|
||||||
|
PARAMETER C_BAUDRATE = 9600
|
||||||
|
PARAMETER C_DATA_BITS = 8
|
||||||
|
PARAMETER C_USE_PARITY = 0
|
||||||
|
PARAMETER C_ODD_PARITY = 0
|
||||||
|
PARAMETER HW_VER = 1.01.a
|
||||||
|
PARAMETER C_BASEADDR = 0x84000000
|
||||||
|
PARAMETER C_HIGHADDR = 0x8400ffff
|
||||||
|
BUS_INTERFACE SPLB = plb_v46_0
|
||||||
|
PORT RX = fpga_0_RS232_Uart_1_RX_pin
|
||||||
|
PORT TX = fpga_0_RS232_Uart_1_TX_pin
|
||||||
|
PORT Interrupt = RS232_Uart_1_Interrupt
|
||||||
|
END
|
||||||
|
|
||||||
|
BEGIN xps_gpio
|
||||||
|
PARAMETER INSTANCE = LEDs_8Bit
|
||||||
|
PARAMETER C_FAMILY = virtex5
|
||||||
|
PARAMETER C_ALL_INPUTS = 0
|
||||||
|
PARAMETER C_GPIO_WIDTH = 8
|
||||||
|
PARAMETER C_INTERRUPT_PRESENT = 0
|
||||||
|
PARAMETER C_IS_DUAL = 0
|
||||||
|
PARAMETER HW_VER = 2.00.a
|
||||||
|
PARAMETER C_BASEADDR = 0x81440000
|
||||||
|
PARAMETER C_HIGHADDR = 0x8144ffff
|
||||||
|
BUS_INTERFACE SPLB = plb_v46_0
|
||||||
|
PORT GPIO_IO = fpga_0_LEDs_8Bit_GPIO_IO_pin
|
||||||
|
END
|
||||||
|
|
||||||
|
BEGIN xps_gpio
|
||||||
|
PARAMETER INSTANCE = LEDs_Positions
|
||||||
|
PARAMETER C_FAMILY = virtex5
|
||||||
|
PARAMETER C_ALL_INPUTS = 0
|
||||||
|
PARAMETER C_GPIO_WIDTH = 5
|
||||||
|
PARAMETER C_INTERRUPT_PRESENT = 0
|
||||||
|
PARAMETER C_IS_DUAL = 0
|
||||||
|
PARAMETER HW_VER = 2.00.a
|
||||||
|
PARAMETER C_BASEADDR = 0x81420000
|
||||||
|
PARAMETER C_HIGHADDR = 0x8142ffff
|
||||||
|
BUS_INTERFACE SPLB = plb_v46_0
|
||||||
|
PORT GPIO_IO = fpga_0_LEDs_Positions_GPIO_IO_pin
|
||||||
|
END
|
||||||
|
|
||||||
|
BEGIN xps_gpio
|
||||||
|
PARAMETER INSTANCE = Push_Buttons_5Bit
|
||||||
|
PARAMETER C_FAMILY = virtex5
|
||||||
|
PARAMETER C_ALL_INPUTS = 1
|
||||||
|
PARAMETER C_GPIO_WIDTH = 5
|
||||||
|
PARAMETER C_INTERRUPT_PRESENT = 0
|
||||||
|
PARAMETER C_IS_DUAL = 0
|
||||||
|
PARAMETER HW_VER = 2.00.a
|
||||||
|
PARAMETER C_BASEADDR = 0x81400000
|
||||||
|
PARAMETER C_HIGHADDR = 0x8140ffff
|
||||||
|
BUS_INTERFACE SPLB = plb_v46_0
|
||||||
|
PORT GPIO_IO = fpga_0_Push_Buttons_5Bit_GPIO_IO_pin
|
||||||
|
END
|
||||||
|
|
||||||
|
BEGIN xps_gpio
|
||||||
|
PARAMETER INSTANCE = DIP_Switches_8Bit
|
||||||
|
PARAMETER C_FAMILY = virtex5
|
||||||
|
PARAMETER C_ALL_INPUTS = 1
|
||||||
|
PARAMETER C_GPIO_WIDTH = 8
|
||||||
|
PARAMETER C_INTERRUPT_PRESENT = 0
|
||||||
|
PARAMETER C_IS_DUAL = 0
|
||||||
|
PARAMETER HW_VER = 2.00.a
|
||||||
|
PARAMETER C_BASEADDR = 0x81460000
|
||||||
|
PARAMETER C_HIGHADDR = 0x8146ffff
|
||||||
|
BUS_INTERFACE SPLB = plb_v46_0
|
||||||
|
PORT GPIO_IO = fpga_0_DIP_Switches_8Bit_GPIO_IO_pin
|
||||||
|
END
|
||||||
|
|
||||||
|
BEGIN xps_iic
|
||||||
|
PARAMETER INSTANCE = IIC_EEPROM
|
||||||
|
PARAMETER C_IIC_FREQ = 100000
|
||||||
|
PARAMETER C_TEN_BIT_ADR = 0
|
||||||
|
PARAMETER C_FAMILY = virtex5
|
||||||
|
PARAMETER HW_VER = 2.01.a
|
||||||
|
PARAMETER C_BASEADDR = 0x81600000
|
||||||
|
PARAMETER C_HIGHADDR = 0x8160ffff
|
||||||
|
BUS_INTERFACE SPLB = plb_v46_0
|
||||||
|
PORT Sda = fpga_0_IIC_EEPROM_Sda_pin
|
||||||
|
PORT Scl = fpga_0_IIC_EEPROM_Scl_pin
|
||||||
|
END
|
||||||
|
|
||||||
|
BEGIN xps_mch_emc
|
||||||
|
PARAMETER INSTANCE = SRAM
|
||||||
|
PARAMETER C_FAMILY = virtex5
|
||||||
|
PARAMETER C_NUM_BANKS_MEM = 1
|
||||||
|
PARAMETER C_NUM_CHANNELS = 0
|
||||||
|
PARAMETER C_MEM0_WIDTH = 32
|
||||||
|
PARAMETER C_MAX_MEM_WIDTH = 32
|
||||||
|
PARAMETER C_INCLUDE_DATAWIDTH_MATCHING_0 = 0
|
||||||
|
PARAMETER C_SYNCH_MEM_0 = 1
|
||||||
|
PARAMETER C_TCEDV_PS_MEM_0 = 0
|
||||||
|
PARAMETER C_TAVDV_PS_MEM_0 = 0
|
||||||
|
PARAMETER C_THZCE_PS_MEM_0 = 0
|
||||||
|
PARAMETER C_THZOE_PS_MEM_0 = 0
|
||||||
|
PARAMETER C_TWC_PS_MEM_0 = 0
|
||||||
|
PARAMETER C_TWP_PS_MEM_0 = 0
|
||||||
|
PARAMETER C_TLZWE_PS_MEM_0 = 0
|
||||||
|
PARAMETER HW_VER = 3.00.a
|
||||||
|
PARAMETER C_MEM0_BASEADDR = 0xf8000000
|
||||||
|
PARAMETER C_MEM0_HIGHADDR = 0xf80fffff
|
||||||
|
BUS_INTERFACE SPLB = plb_v46_0
|
||||||
|
PORT RdClk = clk_125_0000MHzPLL0_ADJUST
|
||||||
|
PORT Mem_A = 0b0000000 & fpga_0_SRAM_Mem_A_pin_vslice_7_30_concat & 0b0
|
||||||
|
PORT Mem_CEN = fpga_0_SRAM_Mem_CEN_pin
|
||||||
|
PORT Mem_OEN = fpga_0_SRAM_Mem_OEN_pin
|
||||||
|
PORT Mem_WEN = fpga_0_SRAM_Mem_WEN_pin
|
||||||
|
PORT Mem_BEN = fpga_0_SRAM_Mem_BEN_pin
|
||||||
|
PORT Mem_ADV_LDN = fpga_0_SRAM_Mem_ADV_LDN_pin
|
||||||
|
PORT Mem_DQ = fpga_0_SRAM_Mem_DQ_pin
|
||||||
|
END
|
||||||
|
|
||||||
|
BEGIN plbv46_pcie
|
||||||
|
PARAMETER INSTANCE = PCIe_Bridge
|
||||||
|
PARAMETER C_FAMILY = virtex5
|
||||||
|
PARAMETER C_IPIFBAR_NUM = 2
|
||||||
|
PARAMETER C_PCIBAR_NUM = 1
|
||||||
|
PARAMETER C_DEVICE_ID = 0x0505
|
||||||
|
PARAMETER C_VENDOR_ID = 0x10EE
|
||||||
|
PARAMETER C_CLASS_CODE = 0x058000
|
||||||
|
PARAMETER C_REV_ID = 0x00
|
||||||
|
PARAMETER C_SUBSYSTEM_ID = 0x0000
|
||||||
|
PARAMETER C_SUBSYSTEM_VENDOR_ID = 0x0000
|
||||||
|
PARAMETER C_COMP_TIMEOUT = 1
|
||||||
|
PARAMETER C_IPIFBAR2PCIBAR_0 = 0x00000000
|
||||||
|
PARAMETER C_IPIFBAR2PCIBAR_1 = 0x00000000
|
||||||
|
PARAMETER C_PCIBAR2IPIFBAR_0 = 0xf8000000
|
||||||
|
PARAMETER C_PCIBAR2IPIFBAR_1 = 0x00000000
|
||||||
|
PARAMETER C_PCIBAR_LEN_0 = 20
|
||||||
|
PARAMETER C_PCIBAR_LEN_1 = 28
|
||||||
|
PARAMETER C_BOARD = ml507
|
||||||
|
PARAMETER HW_VER = 3.00.b
|
||||||
|
PARAMETER C_BASEADDR = 0x85c00000
|
||||||
|
PARAMETER C_HIGHADDR = 0x85c0ffff
|
||||||
|
PARAMETER C_IPIFBAR_0 = 0xc0000000
|
||||||
|
PARAMETER C_IPIFBAR_HIGHADDR_0 = 0xdfffffff
|
||||||
|
PARAMETER C_IPIFBAR_1 = 0xe0000000
|
||||||
|
PARAMETER C_IPIFBAR_HIGHADDR_1 = 0xefffffff
|
||||||
|
BUS_INTERFACE SPLB = plb_v46_0
|
||||||
|
BUS_INTERFACE MPLB = ppc440_0_SPLB0
|
||||||
|
PORT PERSTN = net_vcc
|
||||||
|
PORT REFCLK = PCIe_Diff_Clk
|
||||||
|
PORT RXN = fpga_0_PCIe_Bridge_RXN_pin
|
||||||
|
PORT RXP = fpga_0_PCIe_Bridge_RXP_pin
|
||||||
|
PORT TXN = fpga_0_PCIe_Bridge_TXN_pin
|
||||||
|
PORT TXP = fpga_0_PCIe_Bridge_TXP_pin
|
||||||
|
PORT MSI_request = net_gnd
|
||||||
|
END
|
||||||
|
|
||||||
|
BEGIN plb_v46
|
||||||
|
PARAMETER INSTANCE = ppc440_0_SPLB0
|
||||||
|
PARAMETER C_FAMILY = virtex5
|
||||||
|
PARAMETER HW_VER = 1.04.a
|
||||||
|
PORT PLB_Clk = clk_125_0000MHzPLL0_ADJUST
|
||||||
|
PORT SYS_Rst = sys_bus_reset
|
||||||
|
END
|
||||||
|
|
||||||
|
BEGIN xps_ethernetlite
|
||||||
|
PARAMETER INSTANCE = Ethernet_MAC
|
||||||
|
PARAMETER C_FAMILY = virtex5
|
||||||
|
PARAMETER HW_VER = 2.01.a
|
||||||
|
PARAMETER C_BASEADDR = 0x81000000
|
||||||
|
PARAMETER C_HIGHADDR = 0x8100ffff
|
||||||
|
BUS_INTERFACE SPLB = plb_v46_0
|
||||||
|
PORT PHY_tx_clk = fpga_0_Ethernet_MAC_PHY_tx_clk_pin
|
||||||
|
PORT PHY_rx_clk = fpga_0_Ethernet_MAC_PHY_rx_clk_pin
|
||||||
|
PORT PHY_crs = fpga_0_Ethernet_MAC_PHY_crs_pin
|
||||||
|
PORT PHY_dv = fpga_0_Ethernet_MAC_PHY_dv_pin
|
||||||
|
PORT PHY_rx_data = fpga_0_Ethernet_MAC_PHY_rx_data_pin
|
||||||
|
PORT PHY_col = fpga_0_Ethernet_MAC_PHY_col_pin
|
||||||
|
PORT PHY_rx_er = fpga_0_Ethernet_MAC_PHY_rx_er_pin
|
||||||
|
PORT PHY_rst_n = fpga_0_Ethernet_MAC_PHY_rst_n_pin
|
||||||
|
PORT PHY_tx_en = fpga_0_Ethernet_MAC_PHY_tx_en_pin
|
||||||
|
PORT PHY_tx_data = fpga_0_Ethernet_MAC_PHY_tx_data_pin
|
||||||
|
END
|
||||||
|
|
||||||
|
BEGIN ppc440mc_ddr2
|
||||||
|
PARAMETER INSTANCE = DDR2_SDRAM
|
||||||
|
PARAMETER C_DDR_BAWIDTH = 2
|
||||||
|
PARAMETER C_NUM_CLK_PAIRS = 2
|
||||||
|
PARAMETER C_DDR_DWIDTH = 64
|
||||||
|
PARAMETER C_DDR_CAWIDTH = 10
|
||||||
|
PARAMETER C_NUM_RANKS_MEM = 1
|
||||||
|
PARAMETER C_CS_BITS = 0
|
||||||
|
PARAMETER C_DDR_DM_WIDTH = 8
|
||||||
|
PARAMETER C_DQ_BITS = 8
|
||||||
|
PARAMETER C_DDR2_ODT_WIDTH = 2
|
||||||
|
PARAMETER C_DDR2_ADDT_LAT = 0
|
||||||
|
PARAMETER C_INCLUDE_ECC_SUPPORT = 0
|
||||||
|
PARAMETER C_DDR2_ODT_SETTING = 1
|
||||||
|
PARAMETER C_DQS_BITS = 3
|
||||||
|
PARAMETER C_DDR_DQS_WIDTH = 8
|
||||||
|
PARAMETER C_DDR_RAWIDTH = 13
|
||||||
|
PARAMETER C_DDR_BURST_LENGTH = 4
|
||||||
|
PARAMETER C_DDR_CAS_LAT = 4
|
||||||
|
PARAMETER C_REG_DIMM = 0
|
||||||
|
PARAMETER C_MIB_MC_CLOCK_RATIO = 1
|
||||||
|
PARAMETER C_DDR_TREFI = 3900
|
||||||
|
PARAMETER C_DDR_TRAS = 40000
|
||||||
|
PARAMETER C_DDR_TRCD = 15000
|
||||||
|
PARAMETER C_DDR_TRFC = 75000
|
||||||
|
PARAMETER C_DDR_TRP = 15000
|
||||||
|
PARAMETER C_DDR_TRTP = 7500
|
||||||
|
PARAMETER C_DDR_TWR = 15000
|
||||||
|
PARAMETER C_DDR_TWTR = 7500
|
||||||
|
PARAMETER C_MC_MIBCLK_PERIOD_PS = 8000
|
||||||
|
PARAMETER C_IDEL_HIGH_PERF = TRUE
|
||||||
|
PARAMETER C_NUM_IDELAYCTRL = 3
|
||||||
|
PARAMETER C_IDELAYCTRL_LOC = IDELAYCTRL_X0Y6-IDELAYCTRL_X0Y2-IDELAYCTRL_X0Y1
|
||||||
|
PARAMETER C_DQS_IO_COL = 0b000000000000000000
|
||||||
|
PARAMETER C_DQ_IO_MS = 0b000000000111010100111101000011110001111000101110110000111100000110111100
|
||||||
|
PARAMETER HW_VER = 2.00.b
|
||||||
|
PARAMETER C_MEM_BASEADDR = 0x00000000
|
||||||
|
PARAMETER C_MEM_HIGHADDR = 0x0fffffff
|
||||||
|
BUS_INTERFACE PPC440MC = ppc440_0_PPC440MC
|
||||||
|
PORT mc_mibclk = clk_125_0000MHzPLL0_ADJUST
|
||||||
|
PORT mi_mcclk90 = clk_125_0000MHz90PLL0_ADJUST
|
||||||
|
PORT mi_mcreset = sys_bus_reset
|
||||||
|
PORT mi_mcclkdiv2 = clk_62_5000MHzPLL0_ADJUST
|
||||||
|
PORT mi_mcclk_200 = clk_200_0000MHz
|
||||||
|
PORT DDR2_DQ = fpga_0_DDR2_SDRAM_DDR2_DQ_pin
|
||||||
|
PORT DDR2_DQS = fpga_0_DDR2_SDRAM_DDR2_DQS_pin
|
||||||
|
PORT DDR2_DQS_N = fpga_0_DDR2_SDRAM_DDR2_DQS_N_pin
|
||||||
|
PORT DDR2_A = fpga_0_DDR2_SDRAM_DDR2_A_pin
|
||||||
|
PORT DDR2_BA = fpga_0_DDR2_SDRAM_DDR2_BA_pin
|
||||||
|
PORT DDR2_RAS_N = fpga_0_DDR2_SDRAM_DDR2_RAS_N_pin
|
||||||
|
PORT DDR2_CAS_N = fpga_0_DDR2_SDRAM_DDR2_CAS_N_pin
|
||||||
|
PORT DDR2_WE_N = fpga_0_DDR2_SDRAM_DDR2_WE_N_pin
|
||||||
|
PORT DDR2_CS_N = fpga_0_DDR2_SDRAM_DDR2_CS_N_pin
|
||||||
|
PORT DDR2_ODT = fpga_0_DDR2_SDRAM_DDR2_ODT_pin
|
||||||
|
PORT DDR2_CKE = fpga_0_DDR2_SDRAM_DDR2_CKE_pin
|
||||||
|
PORT DDR2_DM = fpga_0_DDR2_SDRAM_DDR2_DM_pin
|
||||||
|
PORT DDR2_CK = fpga_0_DDR2_SDRAM_DDR2_CK_pin
|
||||||
|
PORT DDR2_CK_N = fpga_0_DDR2_SDRAM_DDR2_CK_N_pin
|
||||||
|
END
|
||||||
|
|
||||||
|
BEGIN xps_sysace
|
||||||
|
PARAMETER INSTANCE = SysACE_CompactFlash
|
||||||
|
PARAMETER C_MEM_WIDTH = 16
|
||||||
|
PARAMETER C_FAMILY = virtex5
|
||||||
|
PARAMETER HW_VER = 1.01.a
|
||||||
|
PARAMETER C_BASEADDR = 0x83600000
|
||||||
|
PARAMETER C_HIGHADDR = 0x8360ffff
|
||||||
|
BUS_INTERFACE SPLB = plb_v46_0
|
||||||
|
PORT SysACE_MPA = fpga_0_SysACE_CompactFlash_SysACE_MPA_pin
|
||||||
|
PORT SysACE_CLK = fpga_0_SysACE_CompactFlash_SysACE_CLK_pin
|
||||||
|
PORT SysACE_MPIRQ = fpga_0_SysACE_CompactFlash_SysACE_MPIRQ_pin
|
||||||
|
PORT SysACE_CEN = fpga_0_SysACE_CompactFlash_SysACE_CEN_pin
|
||||||
|
PORT SysACE_OEN = fpga_0_SysACE_CompactFlash_SysACE_OEN_pin
|
||||||
|
PORT SysACE_WEN = fpga_0_SysACE_CompactFlash_SysACE_WEN_pin
|
||||||
|
PORT SysACE_MPD = fpga_0_SysACE_CompactFlash_SysACE_MPD_pin
|
||||||
|
END
|
||||||
|
|
||||||
|
BEGIN fcb_v20
|
||||||
|
PARAMETER INSTANCE = ppc440_0_fcb_v20
|
||||||
|
PARAMETER HW_VER = 1.00.a
|
||||||
|
PORT FCB_CLK = clk_125_0000MHzPLL0_ADJUST
|
||||||
|
PORT SYS_RST = sys_bus_reset
|
||||||
|
END
|
||||||
|
|
||||||
|
BEGIN apu_fpu_virtex5
|
||||||
|
PARAMETER INSTANCE = ppc440_0_apu_fpu_virtex5
|
||||||
|
PARAMETER HW_VER = 1.01.a
|
||||||
|
BUS_INTERFACE SFCB2 = ppc440_0_fcb_v20
|
||||||
|
END
|
||||||
|
|
||||||
|
BEGIN clock_generator
|
||||||
|
PARAMETER INSTANCE = clock_generator_0
|
||||||
|
PARAMETER C_CLKIN_FREQ = 100000000
|
||||||
|
PARAMETER C_CLKFBIN_FREQ = 125000000
|
||||||
|
PARAMETER C_CLKOUT0_FREQ = 125000000
|
||||||
|
PARAMETER C_CLKOUT0_PHASE = 90
|
||||||
|
PARAMETER C_CLKOUT0_GROUP = PLL0_ADJUST
|
||||||
|
PARAMETER C_CLKOUT0_BUF = TRUE
|
||||||
|
PARAMETER C_CLKOUT1_FREQ = 125000000
|
||||||
|
PARAMETER C_CLKOUT1_PHASE = 0
|
||||||
|
PARAMETER C_CLKOUT1_GROUP = PLL0
|
||||||
|
PARAMETER C_CLKOUT1_BUF = TRUE
|
||||||
|
PARAMETER C_CLKOUT2_FREQ = 125000000
|
||||||
|
PARAMETER C_CLKOUT2_PHASE = 0
|
||||||
|
PARAMETER C_CLKOUT2_GROUP = PLL0_ADJUST
|
||||||
|
PARAMETER C_CLKOUT2_BUF = TRUE
|
||||||
|
PARAMETER C_CLKOUT3_FREQ = 200000000
|
||||||
|
PARAMETER C_CLKOUT3_PHASE = 0
|
||||||
|
PARAMETER C_CLKOUT3_GROUP = NONE
|
||||||
|
PARAMETER C_CLKOUT3_BUF = TRUE
|
||||||
|
PARAMETER C_CLKOUT4_FREQ = 62500000
|
||||||
|
PARAMETER C_CLKOUT4_PHASE = 0
|
||||||
|
PARAMETER C_CLKOUT4_GROUP = PLL0_ADJUST
|
||||||
|
PARAMETER C_CLKOUT4_BUF = TRUE
|
||||||
|
PARAMETER C_CLKFBOUT_FREQ = 125000000
|
||||||
|
PARAMETER C_CLKFBOUT_BUF = TRUE
|
||||||
|
PARAMETER HW_VER = 3.01.a
|
||||||
|
PORT CLKIN = dcm_clk_s
|
||||||
|
PORT CLKFBIN = SRAM_CLK_FB_s
|
||||||
|
PORT CLKOUT0 = clk_125_0000MHz90PLL0_ADJUST
|
||||||
|
PORT CLKOUT1 = clk_125_0000MHzPLL0
|
||||||
|
PORT CLKOUT2 = clk_125_0000MHzPLL0_ADJUST
|
||||||
|
PORT CLKOUT3 = clk_200_0000MHz
|
||||||
|
PORT CLKOUT4 = clk_62_5000MHzPLL0_ADJUST
|
||||||
|
PORT CLKFBOUT = SRAM_CLK_OUT_s
|
||||||
|
PORT RST = net_gnd
|
||||||
|
PORT LOCKED = Dcm_all_locked
|
||||||
|
END
|
||||||
|
|
||||||
|
BEGIN jtagppc_cntlr
|
||||||
|
PARAMETER INSTANCE = jtagppc_cntlr_inst
|
||||||
|
PARAMETER HW_VER = 2.01.c
|
||||||
|
BUS_INTERFACE JTAGPPC0 = ppc440_0_jtagppc_bus
|
||||||
|
END
|
||||||
|
|
||||||
|
BEGIN proc_sys_reset
|
||||||
|
PARAMETER INSTANCE = proc_sys_reset_0
|
||||||
|
PARAMETER C_EXT_RESET_HIGH = 0
|
||||||
|
PARAMETER HW_VER = 2.00.a
|
||||||
|
BUS_INTERFACE RESETPPC0 = ppc_reset_bus
|
||||||
|
PORT Slowest_sync_clk = clk_125_0000MHzPLL0_ADJUST
|
||||||
|
PORT Ext_Reset_In = sys_rst_s
|
||||||
|
PORT Dcm_locked = Dcm_all_locked
|
||||||
|
PORT Bus_Struct_Reset = sys_bus_reset
|
||||||
|
PORT Peripheral_Reset = sys_periph_reset
|
||||||
|
END
|
||||||
|
|
||||||
|
BEGIN xps_intc
|
||||||
|
PARAMETER INSTANCE = xps_intc_0
|
||||||
|
PARAMETER HW_VER = 2.00.a
|
||||||
|
PARAMETER C_BASEADDR = 0x81800000
|
||||||
|
PARAMETER C_HIGHADDR = 0x8180ffff
|
||||||
|
BUS_INTERFACE SPLB = plb_v46_0
|
||||||
|
PORT Intr = fpga_0_Ethernet_MAC_MDINT_pin&RS232_Uart_1_Interrupt
|
||||||
|
PORT Irq = ppc440_0_EICC440EXTIRQ
|
||||||
|
END
|
||||||
|
|
131
Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/system.mss
Normal file
131
Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/system.mss
Normal file
|
@ -0,0 +1,131 @@
|
||||||
|
|
||||||
|
PARAMETER VERSION = 2.2.0
|
||||||
|
|
||||||
|
|
||||||
|
BEGIN OS
|
||||||
|
PARAMETER OS_NAME = standalone
|
||||||
|
PARAMETER OS_VER = 2.00.a
|
||||||
|
PARAMETER PROC_INSTANCE = ppc440_0
|
||||||
|
PARAMETER STDIN = RS232_Uart_1
|
||||||
|
PARAMETER STDOUT = RS232_Uart_1
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
BEGIN PROCESSOR
|
||||||
|
PARAMETER DRIVER_NAME = cpu_ppc440
|
||||||
|
PARAMETER DRIVER_VER = 1.01.a
|
||||||
|
PARAMETER HW_INSTANCE = ppc440_0
|
||||||
|
PARAMETER COMPILER = powerpc-eabi-gcc
|
||||||
|
PARAMETER ARCHIVER = powerpc-eabi-ar
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
BEGIN DRIVER
|
||||||
|
PARAMETER DRIVER_NAME = bram
|
||||||
|
PARAMETER DRIVER_VER = 1.00.a
|
||||||
|
PARAMETER HW_INSTANCE = xps_bram_if_cntlr_1
|
||||||
|
END
|
||||||
|
|
||||||
|
BEGIN DRIVER
|
||||||
|
PARAMETER DRIVER_NAME = generic
|
||||||
|
PARAMETER DRIVER_VER = 1.00.a
|
||||||
|
PARAMETER HW_INSTANCE = xps_bram_if_cntlr_1_bram
|
||||||
|
END
|
||||||
|
|
||||||
|
BEGIN DRIVER
|
||||||
|
PARAMETER DRIVER_NAME = uartlite
|
||||||
|
PARAMETER DRIVER_VER = 1.14.a
|
||||||
|
PARAMETER HW_INSTANCE = RS232_Uart_1
|
||||||
|
END
|
||||||
|
|
||||||
|
BEGIN DRIVER
|
||||||
|
PARAMETER DRIVER_NAME = gpio
|
||||||
|
PARAMETER DRIVER_VER = 2.13.a
|
||||||
|
PARAMETER HW_INSTANCE = LEDs_8Bit
|
||||||
|
END
|
||||||
|
|
||||||
|
BEGIN DRIVER
|
||||||
|
PARAMETER DRIVER_NAME = gpio
|
||||||
|
PARAMETER DRIVER_VER = 2.13.a
|
||||||
|
PARAMETER HW_INSTANCE = LEDs_Positions
|
||||||
|
END
|
||||||
|
|
||||||
|
BEGIN DRIVER
|
||||||
|
PARAMETER DRIVER_NAME = gpio
|
||||||
|
PARAMETER DRIVER_VER = 2.13.a
|
||||||
|
PARAMETER HW_INSTANCE = Push_Buttons_5Bit
|
||||||
|
END
|
||||||
|
|
||||||
|
BEGIN DRIVER
|
||||||
|
PARAMETER DRIVER_NAME = gpio
|
||||||
|
PARAMETER DRIVER_VER = 2.13.a
|
||||||
|
PARAMETER HW_INSTANCE = DIP_Switches_8Bit
|
||||||
|
END
|
||||||
|
|
||||||
|
BEGIN DRIVER
|
||||||
|
PARAMETER DRIVER_NAME = iic
|
||||||
|
PARAMETER DRIVER_VER = 1.15.a
|
||||||
|
PARAMETER HW_INSTANCE = IIC_EEPROM
|
||||||
|
END
|
||||||
|
|
||||||
|
BEGIN DRIVER
|
||||||
|
PARAMETER DRIVER_NAME = emc
|
||||||
|
PARAMETER DRIVER_VER = 2.00.a
|
||||||
|
PARAMETER HW_INSTANCE = SRAM
|
||||||
|
END
|
||||||
|
|
||||||
|
BEGIN DRIVER
|
||||||
|
PARAMETER DRIVER_NAME = pcie
|
||||||
|
PARAMETER DRIVER_VER = 1.00.a
|
||||||
|
PARAMETER HW_INSTANCE = PCIe_Bridge
|
||||||
|
END
|
||||||
|
|
||||||
|
BEGIN DRIVER
|
||||||
|
PARAMETER DRIVER_NAME = emaclite
|
||||||
|
PARAMETER DRIVER_VER = 1.14.a
|
||||||
|
PARAMETER HW_INSTANCE = Ethernet_MAC
|
||||||
|
END
|
||||||
|
|
||||||
|
BEGIN DRIVER
|
||||||
|
PARAMETER DRIVER_NAME = memcon
|
||||||
|
PARAMETER DRIVER_VER = 1.00.a
|
||||||
|
PARAMETER HW_INSTANCE = DDR2_SDRAM
|
||||||
|
END
|
||||||
|
|
||||||
|
BEGIN DRIVER
|
||||||
|
PARAMETER DRIVER_NAME = sysace
|
||||||
|
PARAMETER DRIVER_VER = 1.12.a
|
||||||
|
PARAMETER HW_INSTANCE = SysACE_CompactFlash
|
||||||
|
END
|
||||||
|
|
||||||
|
BEGIN DRIVER
|
||||||
|
PARAMETER DRIVER_NAME = apu_fpu_virtex5
|
||||||
|
PARAMETER DRIVER_VER = 1.00.a
|
||||||
|
PARAMETER HW_INSTANCE = ppc440_0_apu_fpu_virtex5
|
||||||
|
END
|
||||||
|
|
||||||
|
BEGIN DRIVER
|
||||||
|
PARAMETER DRIVER_NAME = generic
|
||||||
|
PARAMETER DRIVER_VER = 1.00.a
|
||||||
|
PARAMETER HW_INSTANCE = clock_generator_0
|
||||||
|
END
|
||||||
|
|
||||||
|
BEGIN DRIVER
|
||||||
|
PARAMETER DRIVER_NAME = generic
|
||||||
|
PARAMETER DRIVER_VER = 1.00.a
|
||||||
|
PARAMETER HW_INSTANCE = jtagppc_cntlr_inst
|
||||||
|
END
|
||||||
|
|
||||||
|
BEGIN DRIVER
|
||||||
|
PARAMETER DRIVER_NAME = generic
|
||||||
|
PARAMETER DRIVER_VER = 1.00.a
|
||||||
|
PARAMETER HW_INSTANCE = proc_sys_reset_0
|
||||||
|
END
|
||||||
|
|
||||||
|
BEGIN DRIVER
|
||||||
|
PARAMETER DRIVER_NAME = intc
|
||||||
|
PARAMETER DRIVER_VER = 1.11.a
|
||||||
|
PARAMETER HW_INSTANCE = xps_intc_0
|
||||||
|
END
|
||||||
|
|
||||||
|
|
69
Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/system.xmp
Normal file
69
Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/system.xmp
Normal file
|
@ -0,0 +1,69 @@
|
||||||
|
#Please do not modify this file by hand
|
||||||
|
XmpVersion: 11.2
|
||||||
|
VerMgmt: 11.2
|
||||||
|
IntStyle: default
|
||||||
|
MHS File: system.mhs
|
||||||
|
MSS File: system.mss
|
||||||
|
Architecture: virtex5
|
||||||
|
Device: xc5vfx70t
|
||||||
|
Package: ff1136
|
||||||
|
SpeedGrade: -1
|
||||||
|
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
|
||||||
|
Processor: ppc440_0
|
||||||
|
BootLoop: 1
|
||||||
|
XmdStub: 0
|
||||||
|
SwProj: RTOSDemo
|
||||||
|
Processor: ppc440_0
|
||||||
|
Executable: RTOSDemo/executable.elf
|
||||||
|
Source: RTOSDemo/../../Common/Minimal/BlockQ.c
|
||||||
|
Source: RTOSDemo/../../Common/Minimal/blocktim.c
|
||||||
|
Source: RTOSDemo/../../Common/Minimal/comtest.c
|
||||||
|
Source: RTOSDemo/../../Common/Minimal/countsem.c
|
||||||
|
Source: RTOSDemo/../../Common/Minimal/death.c
|
||||||
|
Source: RTOSDemo/../../Common/Minimal/dynamic.c
|
||||||
|
Source: RTOSDemo/../../Common/Minimal/flash.c
|
||||||
|
Source: RTOSDemo/../../Common/Minimal/GenQTest.c
|
||||||
|
Source: RTOSDemo/../../Common/Minimal/integer.c
|
||||||
|
Source: RTOSDemo/../../Common/Minimal/QPeek.c
|
||||||
|
Source: RTOSDemo/../../Common/Minimal/recmutex.c
|
||||||
|
Source: RTOSDemo/../../Common/Minimal/semtest.c
|
||||||
|
Source: RTOSDemo/../../../Source/tasks.c
|
||||||
|
Source: RTOSDemo/../../../Source/list.c
|
||||||
|
Source: RTOSDemo/../../../Source/queue.c
|
||||||
|
Source: RTOSDemo/../../../Source/croutine.c
|
||||||
|
Source: RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/portasm.S
|
||||||
|
Source: RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/port.c
|
||||||
|
Source: RTOSDemo/../../../Source/portable/MemMang/heap_2.c
|
||||||
|
Source: RTOSDemo/flop/flop-reg-test.c
|
||||||
|
Source: RTOSDemo/flop/flop.c
|
||||||
|
Source: RTOSDemo/partest/partest.c
|
||||||
|
Source: RTOSDemo/serial/serial.c
|
||||||
|
Source: RTOSDemo/main.c
|
||||||
|
DefaultInit: EXECUTABLE
|
||||||
|
InitBram: 0
|
||||||
|
Active: 1
|
||||||
|
CompilerOptLevel: 0
|
||||||
|
GlobPtrOpt: 0
|
||||||
|
DebugSym: 1
|
||||||
|
ProfileFlag: 0
|
||||||
|
SearchIncl: ../../Source/include ../../Source/portable/GCC/PPC440_Xilinx ../Common/include ./RTOSDemo ./RTOSDemo/flop
|
||||||
|
ProgStart:
|
||||||
|
StackSize:
|
||||||
|
HeapSize:
|
||||||
|
LinkerScript: RTOSDemo/RTOSDemo_linker_script.ld
|
||||||
|
ProgCCFlags: -D USE_DP_FPU -D GCC_PPC440 -mregnames
|
||||||
|
CompileInXps: 1
|
||||||
|
NonXpsApp: 0
|
153
Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/system_incl.make
Normal file
153
Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/system_incl.make
Normal file
|
@ -0,0 +1,153 @@
|
||||||
|
#################################################################
|
||||||
|
# Makefile generated by Xilinx Platform Studio
|
||||||
|
# Project:C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\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.
|
||||||
|
#################################################################
|
||||||
|
|
||||||
|
XILINX_EDK_DIR = /cygdrive/c/devtools/Xilinx/11.1/EDK
|
||||||
|
NON_CYG_XILINX_EDK_DIR = C:/devtools/Xilinx/11.1/EDK
|
||||||
|
|
||||||
|
SYSTEM = system
|
||||||
|
|
||||||
|
MHSFILE = system.mhs
|
||||||
|
|
||||||
|
MSSFILE = system.mss
|
||||||
|
|
||||||
|
FPGA_ARCH = virtex5
|
||||||
|
|
||||||
|
DEVICE = xc5vfx70tff1136-1
|
||||||
|
|
||||||
|
LANGUAGE = vhdl
|
||||||
|
|
||||||
|
SEARCHPATHOPT =
|
||||||
|
|
||||||
|
SUBMODULE_OPT =
|
||||||
|
|
||||||
|
PLATGEN_OPTIONS = -p $(DEVICE) -lang $(LANGUAGE) $(SEARCHPATHOPT) $(SUBMODULE_OPT) -msg __xps/ise/xmsgprops.lst
|
||||||
|
|
||||||
|
LIBGEN_OPTIONS = -mhs $(MHSFILE) -p $(DEVICE) $(SEARCHPATHOPT) -msg __xps/ise/xmsgprops.lst
|
||||||
|
|
||||||
|
OBSERVE_PAR_OPTIONS = -error yes
|
||||||
|
|
||||||
|
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
|
||||||
|
PPC440_BOOTLOOP = $(XILINX_EDK_DIR)/sw/lib/ppc440/ppc440_bootloop.elf
|
||||||
|
BOOTLOOP_DIR = bootloops
|
||||||
|
|
||||||
|
PPC440_0_BOOTLOOP = $(BOOTLOOP_DIR)/ppc440_0.elf
|
||||||
|
|
||||||
|
BRAMINIT_ELF_FILES = $(PPC440_0_BOOTLOOP)
|
||||||
|
BRAMINIT_ELF_FILE_ARGS = -pe ppc440_0 $(PPC440_0_BOOTLOOP)
|
||||||
|
|
||||||
|
ALL_USER_ELF_FILES = $(RTOSDEMO_OUTPUT)
|
||||||
|
|
||||||
|
SIM_CMD = vsim
|
||||||
|
|
||||||
|
BEHAVIORAL_SIM_SCRIPT = simulation/behavioral/$(SYSTEM)_setup.do
|
||||||
|
|
||||||
|
STRUCTURAL_SIM_SCRIPT = simulation/structural/$(SYSTEM)_setup.do
|
||||||
|
|
||||||
|
TIMING_SIM_SCRIPT = simulation/timing/$(SYSTEM)_setup.do
|
||||||
|
|
||||||
|
DEFAULT_SIM_SCRIPT = $(BEHAVIORAL_SIM_SCRIPT)
|
||||||
|
|
||||||
|
MIX_LANG_SIM_OPT = -mixed yes
|
||||||
|
|
||||||
|
SIMGEN_OPTIONS = -p $(DEVICE) -lang $(LANGUAGE) $(SEARCHPATHOPT) $(BRAMINIT_ELF_FILE_ARGS) $(MIX_LANG_SIM_OPT) -msg __xps/ise/xmsgprops.lst -s mti -X C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/
|
||||||
|
|
||||||
|
|
||||||
|
LIBRARIES = \
|
||||||
|
ppc440_0/lib/libxil.a
|
||||||
|
|
||||||
|
LIBSCLEAN_TARGETS = ppc440_0_libsclean
|
||||||
|
|
||||||
|
PROGRAMCLEAN_TARGETS = RTOSDemo_programclean
|
||||||
|
|
||||||
|
CORE_STATE_DEVELOPMENT_FILES =
|
||||||
|
|
||||||
|
WRAPPER_NGC_FILES = implementation/ppc440_0_wrapper.ngc \
|
||||||
|
implementation/plb_v46_0_wrapper.ngc \
|
||||||
|
implementation/xps_bram_if_cntlr_1_wrapper.ngc \
|
||||||
|
implementation/xps_bram_if_cntlr_1_bram_wrapper.ngc \
|
||||||
|
implementation/rs232_uart_1_wrapper.ngc \
|
||||||
|
implementation/leds_8bit_wrapper.ngc \
|
||||||
|
implementation/leds_positions_wrapper.ngc \
|
||||||
|
implementation/push_buttons_5bit_wrapper.ngc \
|
||||||
|
implementation/dip_switches_8bit_wrapper.ngc \
|
||||||
|
implementation/iic_eeprom_wrapper.ngc \
|
||||||
|
implementation/sram_wrapper.ngc \
|
||||||
|
implementation/pcie_bridge_wrapper.ngc \
|
||||||
|
implementation/ppc440_0_splb0_wrapper.ngc \
|
||||||
|
implementation/ethernet_mac_wrapper.ngc \
|
||||||
|
implementation/ddr2_sdram_wrapper.ngc \
|
||||||
|
implementation/sysace_compactflash_wrapper.ngc \
|
||||||
|
implementation/ppc440_0_fcb_v20_wrapper.ngc \
|
||||||
|
implementation/ppc440_0_apu_fpu_virtex5_wrapper.ngc \
|
||||||
|
implementation/clock_generator_0_wrapper.ngc \
|
||||||
|
implementation/jtagppc_cntlr_inst_wrapper.ngc \
|
||||||
|
implementation/proc_sys_reset_0_wrapper.ngc \
|
||||||
|
implementation/xps_intc_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
|
||||||
|
|
||||||
|
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)
|
||||||
|
|
||||||
|
#################################################################
|
||||||
|
# SOFTWARE APPLICATION RTOSDEMO
|
||||||
|
#################################################################
|
||||||
|
|
||||||
|
RTOSDEMO_SOURCES = /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/BlockQ.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/blocktim.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/comtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/countsem.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/death.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/dynamic.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/flash.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/GenQTest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/integer.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/QPeek.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/recmutex.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/semtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/tasks.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/list.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/queue.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/croutine.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/portasm.S /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/port.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/MemMang/heap_2.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop-reg-test.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/partest/partest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/serial/serial.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c
|
||||||
|
|
||||||
|
RTOSDEMO_HEADERS =
|
||||||
|
|
||||||
|
RTOSDEMO_CC = powerpc-eabi-gcc
|
||||||
|
RTOSDEMO_CC_SIZE = powerpc-eabi-size
|
||||||
|
RTOSDEMO_CC_OPT = -O0
|
||||||
|
RTOSDEMO_CFLAGS = -D USE_DP_FPU -D GCC_PPC440 -mregnames
|
||||||
|
RTOSDEMO_CC_SEARCH = # -B
|
||||||
|
RTOSDEMO_LIBPATH = -L./ppc440_0/lib/ # -L
|
||||||
|
RTOSDEMO_INCLUDES = -I./ppc440_0/include/ -I../../Source/include -I../../Source/portable/GCC/PPC440_Xilinx -I../Common/include -I./RTOSDemo -I./RTOSDemo/flop
|
||||||
|
RTOSDEMO_LFLAGS = # -l
|
||||||
|
RTOSDEMO_LINKER_SCRIPT = /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/RTOSDemo_linker_script.ld
|
||||||
|
RTOSDEMO_LINKER_SCRIPT_FLAG = -Wl,-T -Wl,$(RTOSDEMO_LINKER_SCRIPT)
|
||||||
|
RTOSDEMO_CC_DEBUG_FLAG = -g
|
||||||
|
RTOSDEMO_CC_PROFILE_FLAG = # -pg
|
||||||
|
RTOSDEMO_CC_GLOBPTR_FLAG= # -msdata=eabi
|
||||||
|
RTOSDEMO_CC_INFERRED_FLAGS= -mfpu=dp_full -mcpu=440
|
||||||
|
RTOSDEMO_CC_START_ADDR_FLAG= # # -Wl,-defsym -Wl,_START_ADDR=
|
||||||
|
RTOSDEMO_CC_STACK_SIZE_FLAG= # # -Wl,-defsym -Wl,_STACK_SIZE=
|
||||||
|
RTOSDEMO_CC_HEAP_SIZE_FLAG= # # -Wl,-defsym -Wl,_HEAP_SIZE=
|
||||||
|
RTOSDEMO_OTHER_CC_FLAGS= $(RTOSDEMO_CC_GLOBPTR_FLAG) \
|
||||||
|
$(RTOSDEMO_CC_START_ADDR_FLAG) $(RTOSDEMO_CC_STACK_SIZE_FLAG) $(RTOSDEMO_CC_HEAP_SIZE_FLAG) \
|
||||||
|
$(RTOSDEMO_CC_INFERRED_FLAGS) \
|
||||||
|
$(RTOSDEMO_LINKER_SCRIPT_FLAG) $(RTOSDEMO_CC_DEBUG_FLAG) $(RTOSDEMO_CC_PROFILE_FLAG)
|
Loading…
Reference in a new issue