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 | |
---|
19 | proc 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 | |
---|
191 | proc 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 | |
---|
232 | proc 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 | } |
---|