source: PlatformSupport/CustomPeripherals/pcores/warp_timer_plbw_v1_00_a/data/warp_timer_plbw_v2_1_0.tcl

Last change on this file was 1042, checked in by kwilhelm, 16 years ago

adding warp_timer

File size: 8.1 KB
Line 
1##############################################################################
2##
3## ***************************************************************************
4## **                                                                       **
5## ** Copyright (c) 1995-2006 Xilinx, Inc.  All rights reserved.            **
6## **                                                                       **
7## ** You may copy and modify these files for your own internal use solely  **
8## ** with Xilinx programmable logic devices and Xilinx EDK system or       **
9## ** create IP modules solely for Xilinx programmable logic devices and    **
10## ** Xilinx EDK system. No rights are granted to distribute any files      **
11## ** unless they are distributed in Xilinx programmable logic devices.     **
12## **                                                                       **
13## ***************************************************************************
14##
15## Modified:
16## June 20 2006: Added html elaboration step
17##############################################################################
18
19proc generate {drv_handle} {
20    puts "Generating Macros for warp_timer_plbw driver access ... "
21
22    # initialize
23    lappend config_table
24    lappend addr_config_table
25    lappend xparam_config_table
26
27    # hardware version
28    lappend config_table "C_XC_VERSION"
29    # Low-level function names
30    lappend config_table "C_XC_CREATE" "C_XC_RELEASE" "C_XC_OPEN" "C_XC_CLOSE" "C_XC_READ" "C_XC_WRITE" "C_XC_GET_SHMEM"
31    # Optional parameters
32    # (empty)
33
34    # Memory map information
35    sg_lappend config_table addr_config_table "C_MEMMAP_TIMER0_TIMELEFT"
36    sg_lappend config_table xparam_config_table "C_MEMMAP_TIMER0_TIMELEFT_N_BITS"
37    sg_lappend config_table xparam_config_table "C_MEMMAP_TIMER0_TIMELEFT_BIN_PT"
38    # sg_lappend config_table xparam_config_table "C_MEMMAP_TIMER0_TIMELEFT_ATTR"
39
40    sg_lappend config_table addr_config_table "C_MEMMAP_TIMER1_TIMELEFT"
41    sg_lappend config_table xparam_config_table "C_MEMMAP_TIMER1_TIMELEFT_N_BITS"
42    sg_lappend config_table xparam_config_table "C_MEMMAP_TIMER1_TIMELEFT_BIN_PT"
43    # sg_lappend config_table xparam_config_table "C_MEMMAP_TIMER1_TIMELEFT_ATTR"
44
45    sg_lappend config_table addr_config_table "C_MEMMAP_TIMER2_TIMELEFT"
46    sg_lappend config_table xparam_config_table "C_MEMMAP_TIMER2_TIMELEFT_N_BITS"
47    sg_lappend config_table xparam_config_table "C_MEMMAP_TIMER2_TIMELEFT_BIN_PT"
48    # sg_lappend config_table xparam_config_table "C_MEMMAP_TIMER2_TIMELEFT_ATTR"
49
50    sg_lappend config_table addr_config_table "C_MEMMAP_TIMER3_TIMELEFT"
51    sg_lappend config_table xparam_config_table "C_MEMMAP_TIMER3_TIMELEFT_N_BITS"
52    sg_lappend config_table xparam_config_table "C_MEMMAP_TIMER3_TIMELEFT_BIN_PT"
53    # sg_lappend config_table xparam_config_table "C_MEMMAP_TIMER3_TIMELEFT_ATTR"
54
55    sg_lappend config_table addr_config_table "C_MEMMAP_TIMER_CONTROL_R"
56    sg_lappend config_table xparam_config_table "C_MEMMAP_TIMER_CONTROL_R_N_BITS"
57    sg_lappend config_table xparam_config_table "C_MEMMAP_TIMER_CONTROL_R_BIN_PT"
58    # sg_lappend config_table xparam_config_table "C_MEMMAP_TIMER_CONTROL_R_ATTR"
59
60    sg_lappend config_table addr_config_table "C_MEMMAP_TIMER_STATUS"
61    sg_lappend config_table xparam_config_table "C_MEMMAP_TIMER_STATUS_N_BITS"
62    sg_lappend config_table xparam_config_table "C_MEMMAP_TIMER_STATUS_BIN_PT"
63    # sg_lappend config_table xparam_config_table "C_MEMMAP_TIMER_STATUS_ATTR"
64
65    sg_lappend config_table addr_config_table "C_MEMMAP_TIMER0_COUNTTO"
66    sg_lappend config_table xparam_config_table "C_MEMMAP_TIMER0_COUNTTO_N_BITS"
67    sg_lappend config_table xparam_config_table "C_MEMMAP_TIMER0_COUNTTO_BIN_PT"
68    # sg_lappend config_table xparam_config_table "C_MEMMAP_TIMER0_COUNTTO_ATTR"
69
70    sg_lappend config_table addr_config_table "C_MEMMAP_TIMER1_COUNTTO"
71    sg_lappend config_table xparam_config_table "C_MEMMAP_TIMER1_COUNTTO_N_BITS"
72    sg_lappend config_table xparam_config_table "C_MEMMAP_TIMER1_COUNTTO_BIN_PT"
73    # sg_lappend config_table xparam_config_table "C_MEMMAP_TIMER1_COUNTTO_ATTR"
74
75    sg_lappend config_table addr_config_table "C_MEMMAP_TIMER2_COUNTTO"
76    sg_lappend config_table xparam_config_table "C_MEMMAP_TIMER2_COUNTTO_N_BITS"
77    sg_lappend config_table xparam_config_table "C_MEMMAP_TIMER2_COUNTTO_BIN_PT"
78    # sg_lappend config_table xparam_config_table "C_MEMMAP_TIMER2_COUNTTO_ATTR"
79
80    sg_lappend config_table addr_config_table "C_MEMMAP_TIMER3_COUNTTO"
81    sg_lappend config_table xparam_config_table "C_MEMMAP_TIMER3_COUNTTO_N_BITS"
82    sg_lappend config_table xparam_config_table "C_MEMMAP_TIMER3_COUNTTO_BIN_PT"
83    # sg_lappend config_table xparam_config_table "C_MEMMAP_TIMER3_COUNTTO_ATTR"
84
85    sg_lappend config_table addr_config_table "C_MEMMAP_TIMER_CONTROL_W"
86    sg_lappend config_table xparam_config_table "C_MEMMAP_TIMER_CONTROL_W_N_BITS"
87    sg_lappend config_table xparam_config_table "C_MEMMAP_TIMER_CONTROL_W_BIN_PT"
88    # sg_lappend config_table xparam_config_table "C_MEMMAP_TIMER_CONTROL_W_ATTR"
89
90    # XPS parameters
91    sg_lappend config_table xparam_config_table "DEVICE_ID" "C_BASEADDR"
92
93    # generate xparameters.h
94    eval xdefine_include_file $drv_handle "xparameters.h" "WARP_TIMER_PLBW" "NUM_INSTANCES" ${xparam_config_table}
95    eval sg_xdefine_include_file $drv_handle "xparameters.h" "WARP_TIMER_PLBW" ${addr_config_table}
96    # generate sg_plbiface_g.c
97    eval xdefine_config_file $drv_handle "warp_timer_plbw_g.c" "WARP_TIMER_PLBW" ${config_table}
98}
99
100proc sg_xdefine_include_file {drv_handle file_name drv_string args} {
101    # Open include file
102    set file_handle [xopen_include_file $file_name]
103
104    # Get all peripherals connected to this driver
105    set periphs [xget_periphs $drv_handle] 
106
107    # Print all parameters for all peripherals
108    set device_id 0
109    foreach periph $periphs {
110        # base_addr of the peripheral
111        set base_addr [xget_param_value $periph "C_BASEADDR"]
112
113        puts $file_handle ""
114        puts $file_handle "/* Definitions (address parameters) for peripheral [string toupper [xget_hw_name $periph]] */"
115        foreach arg $args {
116            set value [xget_param_value $periph $arg]
117            if {[llength $value] == 0} {
118                set value 0
119            }
120            set value [expr ${base_addr} + ${value}]
121            set value [xformat_address_string $value]
122            puts $file_handle "#define [xget_name $periph $arg] $value"
123        }
124
125        puts $file_handle "/* software driver settings for peripheral [string toupper [xget_hw_name $periph]] */"
126        puts $file_handle "#define XPAR_[string toupper [xget_hw_name ${periph}]]_XC_VERSION   1"
127        puts $file_handle "#define XPAR_[string toupper [xget_hw_name ${periph}]]_XC_CREATE    xc_warp_timer_plbw_create"
128        puts $file_handle "#define XPAR_[string toupper [xget_hw_name ${periph}]]_XC_RELEASE   xc_warp_timer_plbw_release"
129        puts $file_handle "#define XPAR_[string toupper [xget_hw_name ${periph}]]_XC_OPEN      xc_warp_timer_plbw_open"
130        puts $file_handle "#define XPAR_[string toupper [xget_hw_name ${periph}]]_XC_CLOSE     xc_warp_timer_plbw_close"
131        puts $file_handle "#define XPAR_[string toupper [xget_hw_name ${periph}]]_XC_READ      xc_warp_timer_plbw_read"
132        puts $file_handle "#define XPAR_[string toupper [xget_hw_name ${periph}]]_XC_WRITE     xc_warp_timer_plbw_write"
133        puts $file_handle "#define XPAR_[string toupper [xget_hw_name ${periph}]]_XC_GET_SHMEM xc_warp_timer_plbw_getshmem"
134
135        puts $file_handle ""
136    }       
137    puts $file_handle "\n/******************************************************************/\n"
138    close $file_handle
139}
140
141proc sg_lappend {required_config_table {extra_config_table ""} args} {
142    upvar ${required_config_table} config_table_1
143    if {[string length ${extra_config_table}] != 0} {
144        upvar ${extra_config_table} config_table_2
145    }
146
147    foreach value ${args} {
148        eval [list lappend config_table_1 ${value}]
149        if {[string length ${extra_config_table}] != 0} {
150            lappend config_table_2 ${value}
151        }
152    }
153}
Note: See TracBrowser for help on using the repository browser.