source: PlatformSupport/Deprecated/pcores/user_io_board_controller_plbw_v1_01_a/data/user_io_board_controller_plbw_v2_1_0.tcl

Last change on this file was 1051, checked in by murphpo, 16 years ago

Updated LCD controller with line/character offsets

File size: 14.0 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 user_io_board_controller_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_BUTTONS_BIG"
36    sg_lappend config_table xparam_config_table "C_MEMMAP_BUTTONS_BIG_N_BITS"
37    sg_lappend config_table xparam_config_table "C_MEMMAP_BUTTONS_BIG_BIN_PT"
38    # sg_lappend config_table xparam_config_table "C_MEMMAP_BUTTONS_BIG_ATTR"
39
40    sg_lappend config_table addr_config_table "C_MEMMAP_BUTTONS_SMALL"
41    sg_lappend config_table xparam_config_table "C_MEMMAP_BUTTONS_SMALL_N_BITS"
42    sg_lappend config_table xparam_config_table "C_MEMMAP_BUTTONS_SMALL_BIN_PT"
43    # sg_lappend config_table xparam_config_table "C_MEMMAP_BUTTONS_SMALL_ATTR"
44
45    sg_lappend config_table addr_config_table "C_MEMMAP_DIP_SWITCH"
46    sg_lappend config_table xparam_config_table "C_MEMMAP_DIP_SWITCH_N_BITS"
47    sg_lappend config_table xparam_config_table "C_MEMMAP_DIP_SWITCH_BIN_PT"
48    # sg_lappend config_table xparam_config_table "C_MEMMAP_DIP_SWITCH_ATTR"
49
50    sg_lappend config_table addr_config_table "C_MEMMAP_TRACKBALL"
51    sg_lappend config_table xparam_config_table "C_MEMMAP_TRACKBALL_N_BITS"
52    sg_lappend config_table xparam_config_table "C_MEMMAP_TRACKBALL_BIN_PT"
53    # sg_lappend config_table xparam_config_table "C_MEMMAP_TRACKBALL_ATTR"
54
55    sg_lappend config_table addr_config_table "C_MEMMAP_BUZZER_DUTYCYCLE"
56    sg_lappend config_table xparam_config_table "C_MEMMAP_BUZZER_DUTYCYCLE_N_BITS"
57    sg_lappend config_table xparam_config_table "C_MEMMAP_BUZZER_DUTYCYCLE_BIN_PT"
58    # sg_lappend config_table xparam_config_table "C_MEMMAP_BUZZER_DUTYCYCLE_ATTR"
59
60    sg_lappend config_table addr_config_table "C_MEMMAP_BUZZER_ENABLE"
61    sg_lappend config_table xparam_config_table "C_MEMMAP_BUZZER_ENABLE_N_BITS"
62    sg_lappend config_table xparam_config_table "C_MEMMAP_BUZZER_ENABLE_BIN_PT"
63    # sg_lappend config_table xparam_config_table "C_MEMMAP_BUZZER_ENABLE_ATTR"
64
65    sg_lappend config_table addr_config_table "C_MEMMAP_BUZZER_PERIOD"
66    sg_lappend config_table xparam_config_table "C_MEMMAP_BUZZER_PERIOD_N_BITS"
67    sg_lappend config_table xparam_config_table "C_MEMMAP_BUZZER_PERIOD_BIN_PT"
68    # sg_lappend config_table xparam_config_table "C_MEMMAP_BUZZER_PERIOD_ATTR"
69
70    sg_lappend config_table addr_config_table "C_MEMMAP_LCD_BACKGROUNDCOLOR"
71    sg_lappend config_table xparam_config_table "C_MEMMAP_LCD_BACKGROUNDCOLOR_N_BITS"
72    sg_lappend config_table xparam_config_table "C_MEMMAP_LCD_BACKGROUNDCOLOR_BIN_PT"
73    # sg_lappend config_table xparam_config_table "C_MEMMAP_LCD_BACKGROUNDCOLOR_ATTR"
74
75    sg_lappend config_table addr_config_table "C_MEMMAP_LCD_CHARACTEROFFSET"
76    sg_lappend config_table xparam_config_table "C_MEMMAP_LCD_CHARACTEROFFSET_N_BITS"
77    sg_lappend config_table xparam_config_table "C_MEMMAP_LCD_CHARACTEROFFSET_BIN_PT"
78    # sg_lappend config_table xparam_config_table "C_MEMMAP_LCD_CHARACTEROFFSET_ATTR"
79
80    sg_lappend config_table addr_config_table "C_MEMMAP_LCD_CHARACTERSSELECT"
81    sg_lappend config_table xparam_config_table "C_MEMMAP_LCD_CHARACTERSSELECT_N_BITS"
82    sg_lappend config_table xparam_config_table "C_MEMMAP_LCD_CHARACTERSSELECT_BIN_PT"
83    # sg_lappend config_table xparam_config_table "C_MEMMAP_LCD_CHARACTERSSELECT_ATTR"
84
85    sg_lappend config_table addr_config_table "C_MEMMAP_LCD_COLSET"
86    sg_lappend config_table xparam_config_table "C_MEMMAP_LCD_COLSET_N_BITS"
87    sg_lappend config_table xparam_config_table "C_MEMMAP_LCD_COLSET_BIN_PT"
88    # sg_lappend config_table xparam_config_table "C_MEMMAP_LCD_COLSET_ATTR"
89
90    sg_lappend config_table addr_config_table "C_MEMMAP_LCD_CONFIGLOCATION"
91    sg_lappend config_table xparam_config_table "C_MEMMAP_LCD_CONFIGLOCATION_N_BITS"
92    sg_lappend config_table xparam_config_table "C_MEMMAP_LCD_CONFIGLOCATION_BIN_PT"
93    # sg_lappend config_table xparam_config_table "C_MEMMAP_LCD_CONFIGLOCATION_ATTR"
94
95    sg_lappend config_table addr_config_table "C_MEMMAP_LCD_DIVIDERSELECT"
96    sg_lappend config_table xparam_config_table "C_MEMMAP_LCD_DIVIDERSELECT_N_BITS"
97    sg_lappend config_table xparam_config_table "C_MEMMAP_LCD_DIVIDERSELECT_BIN_PT"
98    # sg_lappend config_table xparam_config_table "C_MEMMAP_LCD_DIVIDERSELECT_ATTR"
99
100    sg_lappend config_table addr_config_table "C_MEMMAP_LCD_FIRSTEND"
101    sg_lappend config_table xparam_config_table "C_MEMMAP_LCD_FIRSTEND_N_BITS"
102    sg_lappend config_table xparam_config_table "C_MEMMAP_LCD_FIRSTEND_BIN_PT"
103    # sg_lappend config_table xparam_config_table "C_MEMMAP_LCD_FIRSTEND_ATTR"
104
105    sg_lappend config_table addr_config_table "C_MEMMAP_LCD_FIRSTSTART"
106    sg_lappend config_table xparam_config_table "C_MEMMAP_LCD_FIRSTSTART_N_BITS"
107    sg_lappend config_table xparam_config_table "C_MEMMAP_LCD_FIRSTSTART_BIN_PT"
108    # sg_lappend config_table xparam_config_table "C_MEMMAP_LCD_FIRSTSTART_ATTR"
109
110    sg_lappend config_table addr_config_table "C_MEMMAP_LCD_LINEOFFSET"
111    sg_lappend config_table xparam_config_table "C_MEMMAP_LCD_LINEOFFSET_N_BITS"
112    sg_lappend config_table xparam_config_table "C_MEMMAP_LCD_LINEOFFSET_BIN_PT"
113    # sg_lappend config_table xparam_config_table "C_MEMMAP_LCD_LINEOFFSET_ATTR"
114
115    sg_lappend config_table addr_config_table "C_MEMMAP_LCD_RAMWRITE"
116    sg_lappend config_table xparam_config_table "C_MEMMAP_LCD_RAMWRITE_N_BITS"
117    sg_lappend config_table xparam_config_table "C_MEMMAP_LCD_RAMWRITE_BIN_PT"
118    # sg_lappend config_table xparam_config_table "C_MEMMAP_LCD_RAMWRITE_ATTR"
119
120    sg_lappend config_table addr_config_table "C_MEMMAP_LCD_RESET"
121    sg_lappend config_table xparam_config_table "C_MEMMAP_LCD_RESET_N_BITS"
122    sg_lappend config_table xparam_config_table "C_MEMMAP_LCD_RESET_BIN_PT"
123    # sg_lappend config_table xparam_config_table "C_MEMMAP_LCD_RESET_ATTR"
124
125    sg_lappend config_table addr_config_table "C_MEMMAP_LCD_RESETLCD"
126    sg_lappend config_table xparam_config_table "C_MEMMAP_LCD_RESETLCD_N_BITS"
127    sg_lappend config_table xparam_config_table "C_MEMMAP_LCD_RESETLCD_BIN_PT"
128    # sg_lappend config_table xparam_config_table "C_MEMMAP_LCD_RESETLCD_ATTR"
129
130    sg_lappend config_table addr_config_table "C_MEMMAP_LCD_ROWSET"
131    sg_lappend config_table xparam_config_table "C_MEMMAP_LCD_ROWSET_N_BITS"
132    sg_lappend config_table xparam_config_table "C_MEMMAP_LCD_ROWSET_BIN_PT"
133    # sg_lappend config_table xparam_config_table "C_MEMMAP_LCD_ROWSET_ATTR"
134
135    sg_lappend config_table addr_config_table "C_MEMMAP_LCD_SECONDEND"
136    sg_lappend config_table xparam_config_table "C_MEMMAP_LCD_SECONDEND_N_BITS"
137    sg_lappend config_table xparam_config_table "C_MEMMAP_LCD_SECONDEND_BIN_PT"
138    # sg_lappend config_table xparam_config_table "C_MEMMAP_LCD_SECONDEND_ATTR"
139
140    sg_lappend config_table addr_config_table "C_MEMMAP_LCD_SECONDSTART"
141    sg_lappend config_table xparam_config_table "C_MEMMAP_LCD_SECONDSTART_N_BITS"
142    sg_lappend config_table xparam_config_table "C_MEMMAP_LCD_SECONDSTART_BIN_PT"
143    # sg_lappend config_table xparam_config_table "C_MEMMAP_LCD_SECONDSTART_ATTR"
144
145    sg_lappend config_table addr_config_table "C_MEMMAP_LCD_SEND"
146    sg_lappend config_table xparam_config_table "C_MEMMAP_LCD_SEND_N_BITS"
147    sg_lappend config_table xparam_config_table "C_MEMMAP_LCD_SEND_BIN_PT"
148    # sg_lappend config_table xparam_config_table "C_MEMMAP_LCD_SEND_ATTR"
149
150    sg_lappend config_table addr_config_table "C_MEMMAP_LCD_TOTALCMDTRANSFER"
151    sg_lappend config_table xparam_config_table "C_MEMMAP_LCD_TOTALCMDTRANSFER_N_BITS"
152    sg_lappend config_table xparam_config_table "C_MEMMAP_LCD_TOTALCMDTRANSFER_BIN_PT"
153    # sg_lappend config_table xparam_config_table "C_MEMMAP_LCD_TOTALCMDTRANSFER_ATTR"
154
155    sg_lappend config_table addr_config_table "C_MEMMAP_LEDS"
156    sg_lappend config_table xparam_config_table "C_MEMMAP_LEDS_N_BITS"
157    sg_lappend config_table xparam_config_table "C_MEMMAP_LEDS_BIN_PT"
158    # sg_lappend config_table xparam_config_table "C_MEMMAP_LEDS_ATTR"
159
160    sg_lappend config_table addr_config_table "C_MEMMAP_LCD_CHARACTERMAP"
161    # sg_lappend config_table addr_config_table "C_MEMMAP_LCD_CHARACTERMAP_GRANT"
162    # sg_lappend config_table addr_config_table "C_MEMMAP_LCD_CHARACTERMAP_REQ"
163    sg_lappend config_table xparam_config_table "C_MEMMAP_LCD_CHARACTERMAP_N_BITS"
164    sg_lappend config_table xparam_config_table "C_MEMMAP_LCD_CHARACTERMAP_BIN_PT"
165    # sg_lappend config_table xparam_config_table "C_MEMMAP_LCD_CHARACTERMAP_ATTR"
166
167    sg_lappend config_table addr_config_table "C_MEMMAP_LCD_CHARACTERS"
168    # sg_lappend config_table addr_config_table "C_MEMMAP_LCD_CHARACTERS_GRANT"
169    # sg_lappend config_table addr_config_table "C_MEMMAP_LCD_CHARACTERS_REQ"
170    sg_lappend config_table xparam_config_table "C_MEMMAP_LCD_CHARACTERS_N_BITS"
171    sg_lappend config_table xparam_config_table "C_MEMMAP_LCD_CHARACTERS_BIN_PT"
172    # sg_lappend config_table xparam_config_table "C_MEMMAP_LCD_CHARACTERS_ATTR"
173
174    sg_lappend config_table addr_config_table "C_MEMMAP_LCD_COMMANDS"
175    # sg_lappend config_table addr_config_table "C_MEMMAP_LCD_COMMANDS_GRANT"
176    # sg_lappend config_table addr_config_table "C_MEMMAP_LCD_COMMANDS_REQ"
177    sg_lappend config_table xparam_config_table "C_MEMMAP_LCD_COMMANDS_N_BITS"
178    sg_lappend config_table xparam_config_table "C_MEMMAP_LCD_COMMANDS_BIN_PT"
179    # sg_lappend config_table xparam_config_table "C_MEMMAP_LCD_COMMANDS_ATTR"
180
181    # XPS parameters
182    sg_lappend config_table xparam_config_table "DEVICE_ID" "C_BASEADDR"
183
184    # generate xparameters.h
185    eval xdefine_include_file $drv_handle "xparameters.h" "USER_IO_BOARD_CONTROLLER_PLBW" "NUM_INSTANCES" ${xparam_config_table}
186    eval sg_xdefine_include_file $drv_handle "xparameters.h" "USER_IO_BOARD_CONTROLLER_PLBW" ${addr_config_table}
187    # generate sg_plbiface_g.c
188    eval xdefine_config_file $drv_handle "user_io_board_controller_plbw_g.c" "USER_IO_BOARD_CONTROLLER_PLBW" ${config_table}
189}
190
191proc sg_xdefine_include_file {drv_handle file_name drv_string args} {
192    # Open include file
193    set file_handle [xopen_include_file $file_name]
194
195    # Get all peripherals connected to this driver
196    set periphs [xget_periphs $drv_handle] 
197
198    # Print all parameters for all peripherals
199    set device_id 0
200    foreach periph $periphs {
201        # base_addr of the peripheral
202        set base_addr [xget_param_value $periph "C_BASEADDR"]
203
204        puts $file_handle ""
205        puts $file_handle "/* Definitions (address parameters) for peripheral [string toupper [xget_hw_name $periph]] */"
206        foreach arg $args {
207            set value [xget_param_value $periph $arg]
208            if {[llength $value] == 0} {
209                set value 0
210            }
211            set value [expr ${base_addr} + ${value}]
212            set value [xformat_address_string $value]
213            puts $file_handle "#define [xget_name $periph $arg] $value"
214        }
215
216        puts $file_handle "/* software driver settings for peripheral [string toupper [xget_hw_name $periph]] */"
217        puts $file_handle "#define XPAR_[string toupper [xget_hw_name ${periph}]]_XC_VERSION   1"
218        puts $file_handle "#define XPAR_[string toupper [xget_hw_name ${periph}]]_XC_CREATE    xc_user_io_board_controller_plbw_create"
219        puts $file_handle "#define XPAR_[string toupper [xget_hw_name ${periph}]]_XC_RELEASE   xc_user_io_board_controller_plbw_release"
220        puts $file_handle "#define XPAR_[string toupper [xget_hw_name ${periph}]]_XC_OPEN      xc_user_io_board_controller_plbw_open"
221        puts $file_handle "#define XPAR_[string toupper [xget_hw_name ${periph}]]_XC_CLOSE     xc_user_io_board_controller_plbw_close"
222        puts $file_handle "#define XPAR_[string toupper [xget_hw_name ${periph}]]_XC_READ      xc_user_io_board_controller_plbw_read"
223        puts $file_handle "#define XPAR_[string toupper [xget_hw_name ${periph}]]_XC_WRITE     xc_user_io_board_controller_plbw_write"
224        puts $file_handle "#define XPAR_[string toupper [xget_hw_name ${periph}]]_XC_GET_SHMEM xc_user_io_board_controller_plbw_getshmem"
225
226        puts $file_handle ""
227    }       
228    puts $file_handle "\n/******************************************************************/\n"
229    close $file_handle
230}
231
232proc sg_lappend {required_config_table {extra_config_table ""} args} {
233    upvar ${required_config_table} config_table_1
234    if {[string length ${extra_config_table}] != 0} {
235        upvar ${extra_config_table} config_table_2
236    }
237
238    foreach value ${args} {
239        eval [list lappend config_table_1 ${value}]
240        if {[string length ${extra_config_table}] != 0} {
241            lappend config_table_2 ${value}
242        }
243    }
244}
Note: See TracBrowser for help on using the repository browser.