OpenCores
URL https://opencores.org/ocsvn/openmsp430/openmsp430/trunk

Subversion Repositories openmsp430

[/] [openmsp430/] [trunk/] [doc/] [html/] [software_development_tools.html] - Blame information for rev 69

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 50 olivier.gi
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
2 69 olivier.gi
<html><head><title>openMSP430 Software Development Tools</title></head><body>
3 50 olivier.gi
<h3>Table of content</h3>
4
<ul>
5 69 olivier.gi
        <li><a href="#1.%20Introduction">                        1. Introduction</a></li>
6
        <li><a href="#2.%20openmsp430-loader">                   2. openmsp430-loader</a></li>
7
        <li><a href="#3.%20openmsp430-minidebug">                3. openmsp430-minidebug</a></li>
8
        <li><a href="#4.%20openmsp430-gdbproxy">                 4. openmsp430-gdbproxy</a></li>
9
        <li><a href="#5.%20MSPGCC%20Toolchain">                    5. MSPGCC Toolchain</a>
10 50 olivier.gi
        <ul>
11 69 olivier.gi
           <li><a href="#5.1%20Some%20notes%20regarding%20msp430-gdb"> 5.1 Some notes regarding msp430-gdb</a></li>
12
           <li><a href="#5.2%20CPU%20selection%20for%20msp430-gcc">    5.2 CPU selection for msp430-gcc</a></li>
13 50 olivier.gi
        </ul>
14
   </li>
15
</ul>
16
 
17
<a name="1. Introduction"></a>
18
<h1>1. Introduction</h1>
19
 
20
Building on the serial debug interface capabilities provided by the openMSP430, three small utility programs are provided:
21
<ul>
22
        <li><b>openmsp430-loader:</b> a simple command line boot loader.</li>
23
        <li><b>openmsp430-minidebug:</b> a minimalistic debugger with simple GUI.</li>
24
        <li><b>openmsp430-gdbproxy:</b> GDB Proxy server to be used together with MSP430-GDB and the Eclipse, DDD, or Insight graphical front-ends.</li>
25
</ul>
26
 
27
All these software development tools have been developed in TCL/TK and were successfully tested on both Linux and Windows XP.
28 69 olivier.gi
<br><br>
29
<b>Note:</b> in order to be able to directly execute the scripts, <a href="http://www.tcl.tk/software/tcltk/">TCL/TK</a>
30
needs to be installed on your system. Optionally for Windows users, the
31
scripts have been turned into single-file binary executable programs
32
using <a href="http://freewrap.sourceforge.net/">freeWrap</a>.
33 50 olivier.gi
 
34
 
35
<a name="2. openmsp430-loader"></a>
36
<h1>2. openmsp430-loader</h1>
37 69 olivier.gi
This simple program allows the user to load the openMSP430 program
38
memory with an executable file (ELF format) provided as argument.<br>
39
It is typically used in conjunction with '<b><i>make</i></b>' in order to automatically load the program after the compile step (see '<b><i>Makefile</i></b>' from software examples provided with the project's FPGA implementation).<br>
40 50 olivier.gi
The program can be called with the following syntax:
41 69 olivier.gi
<br><br>
42
<table border="0" cellpadding="0" cellspacing="4">
43
<tbody><tr>
44
<td width="35"><br>
45
</td>
46
<td bgcolor="#d0d0d0" width="3"><br>
47
</td>
48
<td width="15"><br>
49
</td>
50 50 olivier.gi
<td>
51 69 olivier.gi
        <code>openmsp430-loader.tcl [-device &lt;communication device&gt;] [-baudrate &lt;communication speed&gt;] &lt;elf-file&gt;
52
<br><br>
53
Examples: openmsp430-loader.tcl -device /dev/ttyUSB0 -baudrate  9600  leds.elf<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;openmsp430-loader.tcl
54
-device COM2: -baudrate 38400 ta_uart.elf </code>
55 50 olivier.gi
</td>
56
</tr>
57 69 olivier.gi
</tbody></table>
58
<br>
59 50 olivier.gi
These screenshots show the script in action under Linux and Windows:
60 69 olivier.gi
<br><br>
61
<img src="getimg.php?1248897300" alt="openmsp430-loader Linux" title="openmsp430-loader Linux" width="75%">
62
<br><br>
63
<img src="getimg.php?1249244501" alt="openmsp430-loader Windows" title="openmsp430-loader Windows" width="75%">
64
<br>
65 50 olivier.gi
<a name="3. openmsp430-minidebug"></a>
66
<h1>3. openmsp430-minidebug</h1>
67
This small program provides a minimalistic graphical interface enabling simple interaction with the openMSP430:
68 69 olivier.gi
<br><br>
69
<img src="getimg.php?1248897416" alt="openmsp430-minidebug" title="openmsp430-minidebug" width="65%">
70
<br><br>
71 50 olivier.gi
As you can see from the screenshot, it allows the following actions:
72
<ul>
73 69 olivier.gi
        <li><b><font color="#ff0000">(1)</font></b>&nbsp;&nbsp;Load the program memory with an ELF file</li>
74
        <li><b><font color="#ff0000">(2)</font></b>&nbsp;&nbsp;Reset the CPU</li>
75
        <li><b><font color="#ff0000">(3)</font></b>&nbsp;&nbsp;Stop/Start the program execution</li>
76
        <li><b><font color="#ff0000">(4)</font></b>&nbsp;&nbsp;Read/Write access of the CPU registers</li>
77
        <li><b><font color="#ff0000">(5)</font></b>&nbsp;&nbsp;Read/Write access of the whole memory range (program, data, peripherals)</li>
78 50 olivier.gi
</ul>
79
 
80
<a name="4. openmsp430-gdbproxy"></a>
81
<h1>4. openmsp430-gdbproxy</h1>
82 69 olivier.gi
The purpose of this program is to replace the '<b><i>msp430-gdbproxy</i></b>' utility provided by the mspgcc toolchain.<br>
83
Typically, a GDB proxy creates a local port for gdb to connect to, and
84
handles the communication with the target hardware. In our case, it is
85
basically a bridge between the RSP communication protocol from GDB and
86
the serial debug interface from the openMSP430.<br>
87 50 olivier.gi
Schematically the communication flow looks as following:
88 69 olivier.gi
<br><br>
89
<img src="getimg.php?1248897690" alt="GDB Proxy flow" title="GDB Proxy flow" width="40%">
90
<br><br>
91 50 olivier.gi
Like the original '<b><i>msp430-gdbproxy</i></b>' program, '<b><i>openmsp430-gdbproxy</i></b>' can be controlled from the command line. However, it also provides a small graphical interface:
92 69 olivier.gi
<br><br>
93
<img src="getimg.php?1248897753" alt="openmsp430-gdbproxy" title="openmsp430-gdbproxy" width="60%">
94
<br><br>
95 50 olivier.gi
These two additional screenshots show the script in action together with the Eclipse and DDD graphical frontends:
96 69 olivier.gi
<br><br>
97
<img src="getimg.php?1248897844" alt="openmsp430-gdbproxy and Eclipse" title="openmsp430-gdbproxy and Eclipse" width="100%">
98
<br><br>
99
<img src="getimg.php?1248897887" alt="openmsp430-gdbproxy and DDD" title="openmsp430-gdbproxy and DDD" width="100%">
100
<br><br>
101
<b>Tip:</b> There are several tutorials on Internet explaining how to
102
configure Eclipse for the MSP430. As an Eclipse newbie, I found the
103
followings quite helpful:
104 50 olivier.gi
<ul>
105
        <li><a href="http://matthias-hartmann.blogspot.com/2009/02/use-eclipse-and-mspgcc-easy-way.html">Use Eclipse and mspgcc - The easy way</a> (English)</li>
106
        <li><a href="http://msp430.ms.funpic.de/doku.php?id=msp430:entwicklungumgebung">MSP430 - Entwicklungumgebung</a> (German)</li>
107
</ul>
108
 
109
<a name="5. MSPGCC Toolchain"></a>
110
<h1>5. MSPGCC Toolchain</h1>
111
 
112
<a name="5.1 Some notes regarding msp430-gdb"></a>
113
<h2>5.1 Some notes regarding msp430-gdb</h2>
114
 
115 69 olivier.gi
As of today (July 2009), the GDB port for the MSP430 has some problems (<a href="http://www.nabble.com/Help-with-gdb-commands-td21942613.html">here</a>).<br>
116
The stepping over function is not available and the backtrace and finish commands don't work properly.<br>
117
There is fortunately a <a href="http://www.nabble.com/Useful-new-GDB-fixes-td19554922.html">patch</a>
118
existing, and until it is included into GDB, I can only recommend to
119
recompile GDB with it (I didn't try it for Windows but it is quite
120
straight forward to do for Linux). <a name="5.2 CPU selection for msp430-gcc"></a>
121 50 olivier.gi
<h2>5.2 CPU selection for msp430-gcc</h2>
122
 
123 69 olivier.gi
The following table aims to help selecting the proper <b>-mmcu</b> <a href="http://mspgcc.sourceforge.net/manual/c745.html">option</a> for the <b>msp430-gcc</b> call:<br><br>
124 50 olivier.gi
<table align="center" border="1">
125 69 olivier.gi
<tbody><tr align="center"><td><b>-mmcu option</b></td><td><b>&nbsp;&nbsp;Program&nbsp;&nbsp;<br>Memory</b></td><td><b>Data<br>&nbsp;&nbsp;&nbsp;Memory&nbsp;&nbsp;&nbsp;</b></td><td style="vertical-align: top; text-align: center;"><span style="font-weight: bold;">Hardware<br>
126
&nbsp; Multiplier&nbsp; </span><br>
127
      </td>
128
</tr>
129
<tr align="center"><td rowspan="1" colspan="4"><b><i>Program Memory Size: 1 kB</i></b></td></tr>
130
<tr align="center"><td>msp430x110  </td><td> 1 kB</td><td>  128 B</td><td style="vertical-align: top;">No<br>
131
      </td>
132
</tr>
133
<tr align="center"><td>msp430x1101 </td><td> 1 kB</td><td>  128 B</td><td style="vertical-align: top;">No</td>
134
</tr>
135
<tr align="center"><td>msp430x2001 </td><td> 1 kB</td><td>  128 B</td><td style="vertical-align: top;">No</td>
136
</tr>
137
<tr align="center"><td>msp430x2002 </td><td> 1 kB</td><td>  128 B</td><td style="vertical-align: top;">No</td>
138
</tr>
139
<tr align="center"><td>msp430x2003 </td><td> 1 kB</td><td>  128 B</td><td style="vertical-align: top;">No</td>
140
</tr>
141
<tr align="center"><td>msp430x2101 </td><td> 1 kB</td><td>  128 B</td><td style="vertical-align: top;">No</td>
142
</tr>
143
<tr align="center"><td rowspan="1" colspan="4"><b><i>Program Memory Size: 2 kB</i></b></td></tr>
144
<tr align="center"><td>msp430x1111 </td><td> 2 kB</td><td>  128 B</td><td style="vertical-align: top;">No</td>
145
</tr>
146
<tr align="center"><td>msp430x2011 </td><td> 2 kB</td><td>  128 B</td><td style="vertical-align: top;">No</td>
147
</tr>
148
<tr align="center"><td>msp430x2012 </td><td> 2 kB</td><td>  128 B</td><td style="vertical-align: top;">No</td>
149
</tr>
150
<tr align="center"><td>msp430x2013 </td><td> 2 kB</td><td>  128 B</td><td style="vertical-align: top;">No</td>
151
</tr>
152
<tr align="center"><td>msp430x2111 </td><td> 2 kB</td><td>  128 B</td><td style="vertical-align: top;">No</td>
153
</tr>
154
<tr align="center"><td>msp430x2112 </td><td> 2 kB</td><td>  128 B</td><td style="vertical-align: top;">No</td>
155
</tr>
156
<tr align="center"><td>msp430x311  </td><td> 2 kB</td><td>  128 B</td><td style="vertical-align: top;">No</td>
157
</tr>
158
<tr align="center"><td rowspan="1" colspan="4"><b><i>Program Memory Size: 4 kB</i></b></td></tr>
159
<tr align="center"><td>msp430x112  </td><td> 4 kB</td><td>  256 B</td><td style="vertical-align: top;">No</td>
160
</tr>
161
<tr align="center"><td>msp430x1121 </td><td> 4 kB</td><td>  256 B</td><td style="vertical-align: top;">No</td>
162
</tr>
163
<tr align="center"><td>msp430x1122 </td><td> 4 kB</td><td>  256 B</td><td style="vertical-align: top;">No</td>
164
</tr>
165
<tr align="center"><td>msp430x122  </td><td> 4 kB</td><td>  256 B</td><td style="vertical-align: top;">No</td>
166
</tr>
167
<tr align="center"><td>msp430x1222 </td><td> 4 kB</td><td>  256 B</td><td style="vertical-align: top;">No</td>
168
</tr>
169
<tr align="center"><td>msp430x2122 </td><td> 4 kB</td><td>  256 B</td><td style="vertical-align: top;">No</td>
170
</tr>
171
<tr align="center"><td>msp430x2121 </td><td> 4 kB</td><td>  256 B</td><td style="vertical-align: top;">No</td>
172
</tr>
173
<tr align="center"><td>msp430x312  </td><td> 4 kB</td><td>  256 B</td><td style="vertical-align: top;">No</td>
174
</tr>
175
<tr align="center"><td>msp430x412  </td><td> 4 kB</td><td>  256 B</td><td style="vertical-align: top;">No</td>
176
</tr>
177
<tr align="center"><td rowspan="1" colspan="4"><b><i>Program Memory Size: 8 kB</i></b></td></tr>
178
<tr align="center"><td>msp430x123  </td><td> 8 kB</td><td>  256 B</td><td style="vertical-align: top;">No</td>
179
</tr>
180
<tr align="center"><td>msp430x133  </td><td> 8 kB</td><td>  256 B</td><td style="vertical-align: top;">No</td>
181
</tr>
182
<tr align="center"><td>msp430x313  </td><td> 8 kB</td><td>  256 B</td><td style="vertical-align: top;">No</td>
183
</tr>
184
<tr align="center"><td>msp430x323  </td><td> 8 kB</td><td>  256 B</td><td style="vertical-align: top;">No</td>
185
</tr>
186
<tr align="center"><td>msp430x413  </td><td> 8 kB</td><td>  256 B</td><td style="vertical-align: top;">No</td>
187
</tr>
188
<tr align="center"><td>msp430x423  </td><td> 8 kB</td><td>  256 B</td><td style="vertical-align: top;"><span style="font-weight: bold;">Yes</span><br>
189
      </td>
190
</tr>
191
<tr align="center"><td>msp430xE423 </td><td> 8 kB</td><td>  256 B</td><td style="vertical-align: top;"><span style="font-weight: bold;">Yes</span><br>
192
      </td>
193
</tr>
194
<tr align="center"><td>msp430xE4232</td><td> 8 kB</td><td>  256 B</td><td style="vertical-align: top;"><span style="font-weight: bold;">Yes</span><br>
195
      </td>
196
</tr>
197
<tr align="center"><td>msp430xW423 </td><td> 8 kB</td><td>  256 B</td><td style="vertical-align: top;">No</td>
198
</tr>
199
<tr align="center"><td>msp430x1132 </td><td> 8 kB</td><td>  256 B</td><td style="vertical-align: top;">No</td>
200
</tr>
201
<tr align="center"><td>msp430x1232 </td><td> 8 kB</td><td>  256 B</td><td style="vertical-align: top;">No</td>
202
</tr>
203
<tr align="center"><td>msp430x1331 </td><td> 8 kB</td><td>  256 B</td><td style="vertical-align: top;">No</td>
204
</tr>
205
<tr align="center"><td>msp430x2131 </td><td> 8 kB</td><td>  256 B</td><td style="vertical-align: top;">No</td>
206
</tr>
207
<tr align="center"><td>msp430x2132 </td><td> 8 kB</td><td>  256 B</td><td style="vertical-align: top;">No</td>
208
</tr>
209
<tr align="center"><td>msp430x2232 </td><td> 8 kB</td><td>  512 B</td><td style="vertical-align: top;">No</td>
210
</tr>
211
<tr align="center"><td>msp430x2234 </td><td> 8 kB</td><td>  512 B</td><td style="vertical-align: top;">No</td>
212
</tr>
213
<tr align="center"><td>msp430x233  </td><td> 8 kB</td><td> 1024 B</td><td style="vertical-align: top;"><span style="font-weight: bold;">Yes</span><br>
214
      </td>
215
</tr>
216
<tr align="center"><td>msp430x2330 </td><td> 8 kB</td><td> 1024 B</td><td style="vertical-align: top;"><span style="font-weight: bold;">Yes</span><br>
217
      </td>
218
</tr>
219
<tr align="center"><td rowspan="1" colspan="4"><b><i>Program Memory Size: 16 kB</i></b></td></tr>
220
<tr align="center"><td>msp430x4250 </td><td>16 kB</td><td>  256 B</td><td style="vertical-align: top;">No</td>
221
</tr>
222
<tr align="center"><td>msp430xG4250</td><td>16 kB</td><td>  256 B</td><td style="vertical-align: top;">No</td>
223
</tr>
224
<tr align="center"><td>msp430x135  </td><td>16 kB</td><td>  512 B</td><td style="vertical-align: top;">No</td>
225
</tr>
226
<tr align="center"><td>msp430x1351 </td><td>16 kB</td><td>  512 B</td><td style="vertical-align: top;">No</td>
227
</tr>
228
<tr align="center"><td>msp430x155  </td><td>16 kB</td><td>  512 B</td><td style="vertical-align: top;">No</td>
229
</tr>
230
<tr align="center"><td>msp430x2252 </td><td>16 kB</td><td>  512 B</td><td style="vertical-align: top;">No</td>
231
</tr>
232
<tr align="center"><td>msp430x2254 </td><td>16 kB</td><td>  512 B</td><td style="vertical-align: top;">No</td>
233
</tr>
234
<tr align="center"><td>msp430x315  </td><td>16 kB</td><td>  512 B</td><td style="vertical-align: top;">No</td>
235
</tr>
236
<tr align="center"><td>msp430x325  </td><td>16 kB</td><td>  512 B</td><td style="vertical-align: top;">No</td>
237
</tr>
238
<tr align="center"><td>msp430x415  </td><td>16 kB</td><td>  512 B</td><td style="vertical-align: top;">No</td>
239
</tr>
240
<tr align="center"><td>msp430x425  </td><td>16 kB</td><td>  512 B</td><td style="vertical-align: top;"><span style="font-weight: bold;">Yes</span><br>
241
      </td>
242
</tr>
243
<tr align="center"><td>msp430xE425 </td><td>16 kB</td><td>  512 B</td><td style="vertical-align: top;"><span style="font-weight: bold;">Yes</span><br>
244
      </td>
245
</tr>
246
<tr align="center"><td>msp430xW425 </td><td>16 kB</td><td>  512 B</td><td style="vertical-align: top;">No</td>
247
</tr>
248
<tr align="center"><td>msp430xE4252</td><td>16 kB</td><td>  512 B</td><td style="vertical-align: top;"><span style="font-weight: bold;">Yes</span><br>
249
      </td>
250
</tr>
251
<tr align="center"><td>msp430x435  </td><td>16 kB</td><td>  512 B</td><td style="vertical-align: top;">No</td>
252
</tr>
253
<tr align="center"><td>msp430x4351 </td><td>16 kB</td><td>  512 B</td><td style="vertical-align: top;">No</td>
254
</tr>
255
<tr align="center"><td>msp430x235  </td><td>16 kB</td><td> 2048 B</td><td style="vertical-align: top;"><span style="font-weight: bold;">Yes</span><br>
256
      </td>
257
</tr>
258
<tr align="center"><td>msp430x2350 </td><td>16 kB</td><td> 2048 B</td><td style="vertical-align: top;"><span style="font-weight: bold;">Yes</span><br>
259
      </td>
260
</tr>
261
<tr align="center"><td rowspan="1" colspan="4"><b><i>Program Memory Size: 32 kB</i></b></td></tr>
262
<tr align="center"><td>msp430x4270 </td><td>32 kB</td><td>  256 B</td><td style="vertical-align: top;">No</td>
263
</tr>
264
<tr align="center"><td>msp430xG4270</td><td>32 kB</td><td>  256 B</td><td style="vertical-align: top;">No</td>
265
</tr>
266
<tr align="center"><td>msp430x147  </td><td>32 kB</td><td> 1024 B</td><td style="vertical-align: top;"><span style="font-weight: bold;">Yes</span><br>
267
      </td>
268
</tr>
269
<tr align="center"><td>msp430x1471 </td><td>32 kB</td><td> 1024 B</td><td style="vertical-align: top;"><span style="font-weight: bold;">Yes</span><br>
270
      </td>
271
</tr>
272
<tr align="center"><td>msp430x157  </td><td>32 kB</td><td> 1024 B</td><td style="vertical-align: top;">No</td>
273
</tr>
274
<tr align="center"><td>msp430x167  </td><td>32 kB</td><td> 1024 B</td><td style="vertical-align: top;"><span style="font-weight: bold;">Yes</span><br>
275
      </td>
276
</tr>
277
<tr align="center"><td>msp430x2272 </td><td>32 kB</td><td> 1024 B</td><td style="vertical-align: top;">No</td>
278
</tr>
279
<tr align="center"><td>msp430x2274 </td><td>32 kB</td><td> 1024 B</td><td style="vertical-align: top;">No</td>
280
</tr>
281
<tr align="center"><td>msp430x337  </td><td>32 kB</td><td> 1024 B</td><td style="vertical-align: top;"><span style="font-weight: bold;">Yes</span><br>
282
      </td>
283
</tr>
284
<tr align="center"><td>msp430x417  </td><td>32 kB</td><td> 1024 B</td><td style="vertical-align: top;">No</td>
285
</tr>
286
<tr align="center"><td>msp430x427  </td><td>32 kB</td><td> 1024 B</td><td style="vertical-align: top;"><span style="font-weight: bold;">Yes</span><br>
287
      </td>
288
</tr>
289
<tr align="center"><td>msp430xE427 </td><td>32 kB</td><td> 1024 B</td><td style="vertical-align: top;"><span style="font-weight: bold;">Yes</span><br>
290
      </td>
291
</tr>
292
<tr align="center"><td>msp430xE4272</td><td>32 kB</td><td> 1024 B</td><td style="vertical-align: top;"><span style="font-weight: bold;">Yes</span><br>
293
      </td>
294
</tr>
295
<tr align="center"><td>msp430xW427 </td><td>32 kB</td><td> 1024 B</td><td style="vertical-align: top;">No</td>
296
</tr>
297
<tr align="center"><td>msp430x437  </td><td>32 kB</td><td> 1024 B</td><td style="vertical-align: top;">No</td>
298
</tr>
299
<tr align="center"><td>msp430xG437 </td><td>32 kB</td><td> 1024 B</td><td style="vertical-align: top;">No</td>
300
</tr>
301
<tr align="center"><td>msp430x4371 </td><td>32 kB</td><td> 1024 B</td><td style="vertical-align: top;">No</td>
302
</tr>
303
<tr align="center"><td>msp430x447  </td><td>32 kB</td><td> 1024 B</td><td style="vertical-align: top;"><span style="font-weight: bold;">Yes</span><br>
304
      </td>
305
</tr>
306
<tr align="center"><td>msp430x2370 </td><td>32 kB</td><td> 2048 B</td><td style="vertical-align: top;"><span style="font-weight: bold;">Yes</span><br>
307
      </td>
308
</tr>
309
<tr align="center"><td>msp430x247  </td><td>32 kB</td><td> 4096 B</td><td style="vertical-align: top;"><span style="font-weight: bold;">Yes</span><br>
310
      </td>
311
</tr>
312
<tr align="center"><td>msp430x2471 </td><td>32 kB</td><td> 4096 B</td><td style="vertical-align: top;"><span style="font-weight: bold;">Yes</span><br>
313
      </td>
314
</tr>
315
</tbody></table><br>
316
<span style="text-decoration: underline;">Note 1:</span> the program memory size should imperatively match the openMSP430 configuration.<br>
317 50 olivier.gi
 
318 69 olivier.gi
<span style="text-decoration: underline;">Note 2:</span> the <span style="font-weight: bold;">-mforce-hwmul</span> parameter will force <b>msp430-gcc </b>to use the hardware multiplier.<br>
319
 
320
<span style="text-decoration: underline;">Note 3:</span> the <span style="font-weight: bold;">-mdisable-hwmul</span> parameter will force <b>msp430-gcc </b>not to use the hardware multiplier.<br>
321
<br>
322
 
323
 
324
 
325
 
326
</body></html>

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.