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

Subversion Repositories mips_enhanced

[/] [mips_enhanced/] [trunk/] [grlib-gpl-1.0.19-b3188/] [designs/] [leon3-jopdesign-ep1c12/] [testbench.vhd] - Blame information for rev 2

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 dimamali
------------------------------------------------------------------------------
2
--  LEON3 Demonstration design test bench
3
--  Copyright (C) 2004 Jiri Gaisler, Gaisler Research
4
--
5
--  This program is free software; you can redistribute it and/or modify
6
--  it under the terms of the GNU General Public License as published by
7
--  the Free Software Foundation; either version 2 of the License, or
8
--  (at your option) any later version.
9
--
10
--  This program is distributed in the hope that it will be useful,
11
--  but WITHOUT ANY WARRANTY; without even the implied warranty of
12
--  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
--  GNU General Public License for more details.
14
------------------------------------------------------------------------------
15
 
16
library ieee;
17
use ieee.std_logic_1164.all;
18
library gaisler;
19
use gaisler.libdcom.all;
20
use gaisler.sim.all;
21
library techmap;
22
use techmap.gencomp.all;
23
library micron;
24
use micron.components.all;
25
use work.debug.all;
26
 
27
use work.config.all;    -- configuration
28
 
29
entity testbench is
30
  generic (
31
    fabtech   : integer := CFG_FABTECH;
32
    memtech   : integer := CFG_MEMTECH;
33
    padtech   : integer := CFG_PADTECH;
34
    clktech   : integer := CFG_CLKTECH;
35
    ncpu      : integer := CFG_NCPU;
36
    disas     : integer := CFG_DISAS;   -- Enable disassembly to console
37
    dbguart   : integer := CFG_DUART;   -- Print UART on console
38
    pclow     : integer := CFG_PCLOW;
39
 
40
    clkperiod : integer := 20;          -- system clock period
41
    romwidth  : integer := 32;          -- rom data width (8/32)
42
    romdepth  : integer := 16;          -- rom address depth
43
    sramwidth  : integer := 32;         -- ram data width (8/16/32)
44
    sramdepth  : integer := 18;         -- ram address depth
45
    srambanks  : integer := 2           -- number of ram banks
46
  );
47
  port (
48
    pci_rst     : inout std_logic;      -- PCI bus
49
    pci_clk     : in std_logic;
50
    pci_gnt     : in std_logic;
51
    pci_idsel   : in std_logic;
52
    pci_lock    : inout std_logic;
53
    pci_ad      : inout std_logic_vector(31 downto 0);
54
    pci_cbe     : inout std_logic_vector(3 downto 0);
55
    pci_frame   : inout std_logic;
56
    pci_irdy    : inout std_logic;
57
    pci_trdy    : inout std_logic;
58
    pci_devsel  : inout std_logic;
59
    pci_stop    : inout std_logic;
60
    pci_perr    : inout std_logic;
61
    pci_par     : inout std_logic;
62
    pci_req     : inout std_logic;
63
    pci_serr    : inout std_logic;
64
    pci_host    : in std_logic;
65
    pci_66      : in std_logic
66
  );
67
end;
68
 
69
architecture behav of testbench is
70
 
71
constant promfile  : string := "prom.srec";  -- rom contents
72
constant sramfile  : string := "sram.srec";  -- ram contents
73
constant sdramfile : string := "sdram.srec"; -- sdram contents
74
 
75
component leon3mp
76
  generic (
77
    fabtech  : integer := CFG_FABTECH;
78
    memtech  : integer := CFG_MEMTECH;
79
    padtech  : integer := CFG_PADTECH;
80
    clktech  : integer := CFG_CLKTECH;
81
    disas     : integer := CFG_DISAS;   -- Enable disassembly to console
82
    dbguart   : integer := CFG_DUART;   -- Print UART on console
83
    pclow     : integer := CFG_PCLOW
84
  );
85
  port (
86
    resetn      : in  std_logic;
87
    clk         : in  std_logic;
88
    pllref      : in  std_logic;
89
    errorn      : out std_logic;
90
    address     : out std_logic_vector(27 downto 0);
91
    data        : inout std_logic_vector(31 downto 0);
92
    sa          : out std_logic_vector(14 downto 0);
93
    sd          : inout std_logic_vector(63 downto 0);
94
    sdclk       : out std_logic;
95
    sdcke       : out std_logic_vector (1 downto 0);    -- sdram clock enable
96
    sdcsn       : out std_logic_vector (1 downto 0);    -- sdram chip select
97
    sdwen       : out std_logic;                       -- sdram write enable
98
    sdrasn      : out std_logic;                       -- sdram ras
99
    sdcasn      : out std_logic;                       -- sdram cas
100
    sddqm       : out std_logic_vector (7 downto 0);    -- sdram dqm
101
    dsutx       : out std_logic;                        -- DSU tx data
102
    dsurx       : in  std_logic;                        -- DSU rx data
103
    dsuen       : in std_logic;
104
    dsubre      : in std_logic;
105
    dsuact      : out std_logic;
106
    txd1        : out std_logic;                        -- UART1 tx data
107
    rxd1        : in  std_logic;                        -- UART1 rx data
108
    txd2        : out std_logic;                        -- UART1 tx data
109
    rxd2        : in  std_logic;                        -- UART1 rx data
110
    ramsn       : out std_logic_vector (4 downto 0);
111
    ramoen      : out std_logic_vector (4 downto 0);
112
    rwen        : out std_logic_vector (3 downto 0);
113
    oen         : out std_logic;
114
    writen      : out std_logic;
115
    read        : out std_logic;
116
    iosn        : out std_logic;
117
    romsn       : out std_logic_vector (1 downto 0);
118
    gpio        : inout std_logic_vector(7 downto 0);    -- I/O port
119
 
120
    emdio       : inout std_logic;              -- ethernet PHY interface
121
    etx_clk     : in std_logic;
122
    erx_clk     : in std_logic;
123
    erxd        : in std_logic_vector(3 downto 0);
124
    erx_dv      : in std_logic;
125
    erx_er      : in std_logic;
126
    erx_col     : in std_logic;
127
    erx_crs     : in std_logic;
128
    etxd        : out std_logic_vector(3 downto 0);
129
    etx_en      : out std_logic;
130
    etx_er      : out std_logic;
131
    emdc        : out std_logic;
132
 
133
    emddis      : out std_logic;
134
    epwrdwn     : out std_logic;
135
    ereset      : out std_logic;
136
    esleep      : out std_logic;
137
    epause      : out std_logic;
138
 
139
    pci_rst     : inout std_logic;              -- PCI bus
140
    pci_clk     : in std_logic;
141
    pci_gnt     : in std_logic;
142
    pci_idsel   : in std_logic;
143
    pci_lock    : inout std_logic;
144
    pci_ad      : inout std_logic_vector(31 downto 0);
145
    pci_cbe     : inout std_logic_vector(3 downto 0);
146
    pci_frame   : inout std_logic;
147
    pci_irdy    : inout std_logic;
148
    pci_trdy    : inout std_logic;
149
    pci_devsel  : inout std_logic;
150
    pci_stop    : inout std_logic;
151
    pci_perr    : inout std_logic;
152
    pci_par     : inout std_logic;
153
    pci_req     : inout std_logic;
154
    pci_serr    : inout std_logic;
155
    pci_host    : in std_logic;
156
    pci_66      : in std_logic;
157
    pci_arb_req : in  std_logic_vector(0 to 3);
158
    pci_arb_gnt : out std_logic_vector(0 to 3);
159
 
160
    can_txd     : out std_logic;
161
    can_rxd     : in  std_logic;
162
    can_stb     : out std_logic;
163
 
164
    spw_clk     : in  std_logic;
165
    spw_rxd     : in  std_logic_vector(0 to 2);
166
    spw_rxdn    : in  std_logic_vector(0 to 2);
167
    spw_rxs     : in  std_logic_vector(0 to 2);
168
    spw_rxsn    : in  std_logic_vector(0 to 2);
169
    spw_txd     : out std_logic_vector(0 to 2);
170
    spw_txdn    : out std_logic_vector(0 to 2);
171
    spw_txs     : out std_logic_vector(0 to 2);
172
    spw_txsn    : out std_logic_vector(0 to 2)
173
 
174
        );
175
end component;
176
 
177
signal clk : std_logic := '0';
178
signal Rst    : std_logic := '0';                        -- Reset
179
constant ct : integer := clkperiod/2;
180
 
181
signal address  : std_logic_vector(27 downto 0);
182
signal data     : std_logic_vector(31 downto 0);
183
 
184
signal ramsn    : std_logic_vector(4 downto 0);
185
signal ramoen   : std_logic_vector(4 downto 0);
186
signal rwen     : std_logic_vector(3 downto 0);
187
signal rwenx    : std_logic_vector(3 downto 0);
188
signal romsn    : std_logic_vector(1 downto 0);
189
signal iosn     : std_logic;
190
signal oen      : std_logic;
191
signal read     : std_logic;
192
signal writen   : std_logic;
193
signal brdyn    : std_logic;
194
signal bexcn    : std_logic;
195
signal wdog     : std_logic;
196
signal dsuen, dsutx, dsurx, dsubre, dsuact : std_logic;
197
signal dsurst   : std_logic;
198
signal test     : std_logic;
199
signal error    : std_logic;
200
signal gpio     : std_logic_vector(7 downto 0);
201
signal GND      : std_logic := '0';
202
signal VCC      : std_logic := '1';
203
signal NC       : std_logic := 'Z';
204
signal clk2     : std_logic := '1';
205
 
206
signal sdcke    : std_logic_vector ( 1 downto 0);  -- clk en
207
signal sdcsn    : std_logic_vector ( 1 downto 0);  -- chip sel
208
signal sdwen    : std_logic;                       -- write en
209
signal sdrasn   : std_logic;                       -- row addr stb
210
signal sdcasn   : std_logic;                       -- col addr stb
211
signal sddqm    : std_logic_vector ( 7 downto 0);  -- data i/o mask
212
signal sdclk    : std_logic;
213
signal plllock    : std_logic;
214
signal txd1, rxd1 : std_logic;
215
signal txd2, rxd2 : std_logic;
216
 
217
signal etx_clk, erx_clk, erx_dv, erx_er, erx_col, erx_crs, etx_en, etx_er : std_logic:='0';
218
signal erxd, etxd: std_logic_vector(3 downto 0):=(others=>'0');
219
signal erxdt, etxdt: std_logic_vector(7 downto 0):=(others=>'0');
220
signal emdc, emdio: std_logic; --dummy signal for the mdc,mdio in the phy which is not used
221
signal gtx_clk : std_logic;
222
 
223
signal emddis   : std_logic;
224
signal epwrdwn  : std_logic;
225
signal ereset   : std_logic;
226
signal esleep   : std_logic;
227
signal epause   : std_logic;
228
 
229
constant lresp : boolean := false;
230
 
231
signal sa       : std_logic_vector(14 downto 0);
232
signal sd       : std_logic_vector(63 downto 0);
233
 
234
signal pci_arb_req, pci_arb_gnt : std_logic_vector(0 to 3);
235
 
236
signal can_txd  : std_logic;
237
signal can_rxd  : std_logic;
238
signal can_stb  : std_logic;
239
 
240
signal spw_clk  : std_logic := '0';
241
signal spw_rxd  : std_logic_vector(0 to 2) := "000";
242
signal spw_rxdn : std_logic_vector(0 to 2) := "000";
243
signal spw_rxs  : std_logic_vector(0 to 2) := "000";
244
signal spw_rxsn : std_logic_vector(0 to 2) := "000";
245
signal spw_txd  : std_logic_vector(0 to 2);
246
signal spw_txdn : std_logic_vector(0 to 2);
247
signal spw_txs  : std_logic_vector(0 to 2);
248
signal spw_txsn : std_logic_vector(0 to 2);
249
 
250
constant CFG_SDEN : integer := CFG_SDCTRL + CFG_MCTRL_SDEN ;
251
constant CFG_SD64 : integer := CFG_SDCTRL_SD64 + CFG_MCTRL_SD64;
252
 
253
begin
254
 
255
-- clock and reset
256
 
257
  spw_clk <= not spw_clk after 20 ns;
258
  spw_rxd(0) <= spw_txd(0); spw_rxdn(0) <= spw_txdn(0);
259
  spw_rxs(0) <= spw_txs(0); spw_rxsn(0) <= spw_txsn(0);
260
  spw_rxd(1) <= spw_txd(1); spw_rxdn(1) <= spw_txdn(1);
261
  spw_rxs(1) <= spw_txs(1); spw_rxsn(1) <= spw_txsn(1);
262
  spw_rxd(2) <= spw_txd(0); spw_rxdn(2) <= spw_txdn(2);
263
  spw_rxs(2) <= spw_txs(0); spw_rxsn(2) <= spw_txsn(2);
264
  clk <= not clk after ct * 1 ns;
265
  rst <= dsurst;
266
  dsuen <= '1'; dsubre <= '0'; rxd1 <= '1';
267
  can_rxd <= '1';
268
 
269
  d3 : leon3mp
270
        generic map ( fabtech, memtech, padtech, clktech,
271
        disas, dbguart, pclow )
272
        port map (rst, clk, sdclk,  error, address(27 downto 0), data,
273
        sa, sd, sdclk, sdcke, sdcsn, sdwen, sdrasn, sdcasn, sddqm,
274
        dsutx, dsurx, dsuen, dsubre, dsuact, txd1, rxd1, txd2, rxd2,
275
        ramsn, ramoen, rwen, oen, writen, read, iosn, romsn, gpio,
276
        emdio, etx_clk, erx_clk, erxd, erx_dv, erx_er, erx_col, erx_crs,
277
        etxd, etx_en, etx_er, emdc, emddis, epwrdwn, ereset, esleep, epause,
278
        pci_rst, pci_clk, pci_gnt, pci_idsel, pci_lock, pci_ad, pci_cbe,
279
        pci_frame, pci_irdy, pci_trdy, pci_devsel, pci_stop, pci_perr, pci_par,
280
        pci_req, pci_serr, pci_host, pci_66, pci_arb_req, pci_arb_gnt,
281
        can_txd, can_rxd, can_stb, spw_clk, spw_rxd, spw_rxdn, spw_rxs,
282
        spw_rxsn, spw_txd, spw_txdn, spw_txs, spw_txsn);
283
 
284
-- optional sdram
285
 
286
  sd0 : if (CFG_SDEN /= 0) and (CFG_MCTRL_SEPBUS = 0) generate
287
    u0: mt48lc16m16a2 generic map (index => 0, fname => sdramfile)
288
        PORT MAP(
289
            Dq => data(31 downto 16), Addr => address(14 downto 2),
290
            Ba => address(16 downto 15), Clk => sdclk, Cke => sdcke(0),
291
            Cs_n => sdcsn(0), Ras_n => sdrasn, Cas_n => sdcasn, We_n => sdwen,
292
            Dqm => sddqm(3 downto 2));
293
    u1: mt48lc16m16a2 generic map (index => 16, fname => sdramfile)
294
        PORT MAP(
295
            Dq => data(15 downto 0), Addr => address(14 downto 2),
296
            Ba => address(16 downto 15), Clk => sdclk, Cke => sdcke(0),
297
            Cs_n => sdcsn(0), Ras_n => sdrasn, Cas_n => sdcasn, We_n => sdwen,
298
            Dqm => sddqm(1 downto 0));
299
    u2: mt48lc16m16a2 generic map (index => 0, fname => sdramfile)
300
        PORT MAP(
301
            Dq => data(31 downto 16), Addr => address(14 downto 2),
302
            Ba => address(16 downto 15), Clk => sdclk, Cke => sdcke(0),
303
            Cs_n => sdcsn(1), Ras_n => sdrasn, Cas_n => sdcasn, We_n => sdwen,
304
            Dqm => sddqm(3 downto 2));
305
    u3: mt48lc16m16a2 generic map (index => 16, fname => sdramfile)
306
        PORT MAP(
307
            Dq => data(15 downto 0), Addr => address(14 downto 2),
308
            Ba => address(16 downto 15), Clk => sdclk, Cke => sdcke(0),
309
            Cs_n => sdcsn(1), Ras_n => sdrasn, Cas_n => sdcasn, We_n => sdwen,
310
            Dqm => sddqm(1 downto 0));
311
  end generate;
312
 
313
  sd1 : if (CFG_SDEN /= 0) and (CFG_MCTRL_SEPBUS = 1) generate
314
    u0: mt48lc16m16a2 generic map (index => 0, fname => sdramfile)
315
        PORT MAP(
316
            Dq => sd(31 downto 16), Addr => sa(12 downto 0),
317
            Ba => sa(14 downto 13), Clk => sdclk, Cke => sdcke(0),
318
            Cs_n => sdcsn(0), Ras_n => sdrasn, Cas_n => sdcasn, We_n => sdwen,
319
            Dqm => sddqm(3 downto 2));
320
    u1: mt48lc16m16a2 generic map (index => 16, fname => sdramfile)
321
        PORT MAP(
322
            Dq => sd(15 downto 0), Addr => sa(12 downto 0),
323
            Ba => sa(14 downto 13), Clk => sdclk, Cke => sdcke(0),
324
            Cs_n => sdcsn(0), Ras_n => sdrasn, Cas_n => sdcasn, We_n => sdwen,
325
            Dqm => sddqm(1 downto 0));
326
    u2: mt48lc16m16a2 generic map (index => 0, fname => sdramfile)
327
        PORT MAP(
328
            Dq => sd(31 downto 16), Addr => sa(12 downto 0),
329
            Ba => sa(14 downto 13), Clk => sdclk, Cke => sdcke(0),
330
            Cs_n => sdcsn(1), Ras_n => sdrasn, Cas_n => sdcasn, We_n => sdwen,
331
            Dqm => sddqm(3 downto 2));
332
    u3: mt48lc16m16a2 generic map (index => 16, fname => sdramfile)
333
        PORT MAP(
334
            Dq => sd(15 downto 0), Addr => sa(12 downto 0),
335
            Ba => sa(14 downto 13), Clk => sdclk, Cke => sdcke(0),
336
            Cs_n => sdcsn(1), Ras_n => sdrasn, Cas_n => sdcasn, We_n => sdwen,
337
            Dqm => sddqm(1 downto 0));
338
    sd64 : if (CFG_SD64 /= 0) generate
339
      u4: mt48lc16m16a2 generic map (index => 0, fname => sdramfile)
340
        PORT MAP(
341
            Dq => sd(63 downto 48), Addr => sa(12 downto 0),
342
            Ba => sa(14 downto 13), Clk => sdclk, Cke => sdcke(0),
343
            Cs_n => sdcsn(0), Ras_n => sdrasn, Cas_n => sdcasn, We_n => sdwen,
344
            Dqm => sddqm(7 downto 6));
345
      u5: mt48lc16m16a2 generic map (index => 16, fname => sdramfile)
346
        PORT MAP(
347
            Dq => sd(47 downto 32), Addr => sa(12 downto 0),
348
            Ba => sa(14 downto 13), Clk => sdclk, Cke => sdcke(0),
349
            Cs_n => sdcsn(0), Ras_n => sdrasn, Cas_n => sdcasn, We_n => sdwen,
350
            Dqm => sddqm(5 downto 4));
351
      u6: mt48lc16m16a2 generic map (index => 0, fname => sdramfile)
352
        PORT MAP(
353
            Dq => sd(63 downto 48), Addr => sa(12 downto 0),
354
            Ba => sa(14 downto 13), Clk => sdclk, Cke => sdcke(0),
355
            Cs_n => sdcsn(1), Ras_n => sdrasn, Cas_n => sdcasn, We_n => sdwen,
356
            Dqm => sddqm(7 downto 6));
357
      u7: mt48lc16m16a2 generic map (index => 16, fname => sdramfile)
358
        PORT MAP(
359
            Dq => sd(47 downto 32), Addr => sa(12 downto 0),
360
            Ba => sa(14 downto 13), Clk => sdclk, Cke => sdcke(0),
361
            Cs_n => sdcsn(1), Ras_n => sdrasn, Cas_n => sdcasn, We_n => sdwen,
362
            Dqm => sddqm(5 downto 4));
363
    end generate;
364
  end generate;
365
 
366
    prom0 : for i in 0 to (romwidth/8)-1 generate
367
      sr0 : sram generic map (index => i, abits => romdepth, fname => promfile)
368
        port map (address(romdepth+1 downto 2), data(31-i*8 downto 24-i*8), romsn(0),
369
                  rwen(i), oen);
370
    end generate;
371
 
372
    sram0 : for i in 0 to (sramwidth/8)-1 generate
373
      sr0 : sram generic map (index => i, abits => sramdepth, fname => sramfile)
374
        port map (address(sramdepth+1 downto 2), data(31-i*8 downto 24-i*8), ramsn(0),
375
                  rwen(0), ramoen(0));
376
    end generate;
377
 
378
  phy0 : if (CFG_GRETH = 1) generate
379
    emdio <= 'H';
380
    erxd <= erxdt(3 downto 0);
381
    etxdt <= "0000" & etxd;
382
 
383
    p0: phy
384
      generic map(base1000_t_fd => 0, base1000_t_hd => 0)
385
      port map(rst, emdio, etx_clk, erx_clk, erxdt, erx_dv,
386
      erx_er, erx_col, erx_crs, etxdt, etx_en, etx_er, emdc, gtx_clk);
387
  end generate;
388
  error <= 'H';                   -- ERROR pull-up
389
 
390
   iuerr : process
391
   begin
392
     wait for 2500 ns;
393
     if to_x01(error) = '1' then wait on error; end if;
394
     assert (to_x01(error) = '1')
395
       report "*** IU in error mode, simulation halted ***"
396
         severity failure ;
397
   end process;
398
 
399
  data <= buskeep(data), (others => 'H') after 250 ns;
400
  sd <= buskeep(sd), (others => 'H') after 250 ns;
401
 
402
  test0 :  grtestmod
403
    port map ( rst, clk, error, address(21 downto 2), data,
404
               iosn, oen, writen, brdyn);
405
 
406
 
407
  dsucom : process
408
    procedure dsucfg(signal dsurx : in std_logic; signal dsutx : out std_logic) is
409
    variable w32 : std_logic_vector(31 downto 0);
410
    variable c8  : std_logic_vector(7 downto 0);
411
    constant txp : time := 160 * 1 ns;
412
    begin
413
    dsutx <= '1';
414
    dsurst <= '0';
415
    wait for 500 ns;
416
    dsurst <= '1';
417
    wait;
418
    wait for 5000 ns;
419
    txc(dsutx, 16#55#, txp);            -- sync uart
420
 
421
--    txc(dsutx, 16#c0#, txp);
422
--    txa(dsutx, 16#90#, 16#00#, 16#00#, 16#00#, txp);
423
--    txa(dsutx, 16#00#, 16#00#, 16#02#, 16#ae#, txp);
424
--    txc(dsutx, 16#c0#, txp);
425
--    txa(dsutx, 16#91#, 16#00#, 16#00#, 16#00#, txp);
426
--    txa(dsutx, 16#00#, 16#00#, 16#06#, 16#ae#, txp);
427
--    txc(dsutx, 16#c0#, txp);
428
--    txa(dsutx, 16#90#, 16#00#, 16#00#, 16#24#, txp);
429
--    txa(dsutx, 16#00#, 16#00#, 16#06#, 16#03#, txp);
430
--    txc(dsutx, 16#c0#, txp);
431
--    txa(dsutx, 16#90#, 16#00#, 16#00#, 16#20#, txp);
432
--    txa(dsutx, 16#00#, 16#00#, 16#06#, 16#fc#, txp);
433
 
434
    txc(dsutx, 16#c0#, txp);
435
    txa(dsutx, 16#90#, 16#00#, 16#00#, 16#00#, txp);
436
    txa(dsutx, 16#00#, 16#00#, 16#00#, 16#2f#, txp);
437
    txc(dsutx, 16#c0#, txp);
438
    txa(dsutx, 16#91#, 16#00#, 16#00#, 16#00#, txp);
439
    txa(dsutx, 16#00#, 16#00#, 16#00#, 16#6f#, txp);
440
    txc(dsutx, 16#c0#, txp);
441
    txa(dsutx, 16#90#, 16#11#, 16#00#, 16#00#, txp);
442
    txa(dsutx, 16#00#, 16#00#, 16#00#, 16#00#, txp);
443
    txc(dsutx, 16#c0#, txp);
444
    txa(dsutx, 16#90#, 16#40#, 16#00#, 16#04#, txp);
445
    txa(dsutx, 16#00#, 16#02#, 16#20#, 16#01#, txp);
446
    txc(dsutx, 16#c0#, txp);
447
    txa(dsutx, 16#90#, 16#00#, 16#00#, 16#20#, txp);
448
    txa(dsutx, 16#00#, 16#00#, 16#00#, 16#02#, txp);
449
 
450
    txc(dsutx, 16#c0#, txp);
451
    txa(dsutx, 16#90#, 16#00#, 16#00#, 16#20#, txp);
452
    txa(dsutx, 16#00#, 16#00#, 16#00#, 16#0f#, txp);
453
 
454
    txc(dsutx, 16#c0#, txp);
455
    txa(dsutx, 16#40#, 16#00#, 16#43#, 16#10#, txp);
456
    txa(dsutx, 16#00#, 16#00#, 16#00#, 16#0f#, txp);
457
 
458
    txc(dsutx, 16#c0#, txp);
459
    txa(dsutx, 16#91#, 16#40#, 16#00#, 16#24#, txp);
460
    txa(dsutx, 16#00#, 16#00#, 16#00#, 16#24#, txp);
461
    txc(dsutx, 16#c0#, txp);
462
    txa(dsutx, 16#91#, 16#70#, 16#00#, 16#00#, txp);
463
    txa(dsutx, 16#00#, 16#00#, 16#00#, 16#03#, txp);
464
 
465
 
466
 
467
 
468
 
469
    txc(dsutx, 16#c0#, txp);
470
    txa(dsutx, 16#90#, 16#00#, 16#00#, 16#20#, txp);
471
    txa(dsutx, 16#00#, 16#00#, 16#ff#, 16#ff#, txp);
472
 
473
    txc(dsutx, 16#c0#, txp);
474
    txa(dsutx, 16#90#, 16#40#, 16#00#, 16#48#, txp);
475
    txa(dsutx, 16#00#, 16#00#, 16#00#, 16#12#, txp);
476
 
477
    txc(dsutx, 16#c0#, txp);
478
    txa(dsutx, 16#90#, 16#40#, 16#00#, 16#60#, txp);
479
    txa(dsutx, 16#00#, 16#00#, 16#12#, 16#10#, txp);
480
 
481
    txc(dsutx, 16#80#, txp);
482
    txa(dsutx, 16#90#, 16#00#, 16#00#, 16#00#, txp);
483
    rxi(dsurx, w32, txp, lresp);
484
 
485
    txc(dsutx, 16#a0#, txp);
486
    txa(dsutx, 16#40#, 16#00#, 16#00#, 16#00#, txp);
487
    rxi(dsurx, w32, txp, lresp);
488
 
489
    end;
490
 
491
  begin
492
 
493
    dsucfg(dsutx, dsurx);
494
 
495
    wait;
496
  end process;
497
end ;
498
 

powered by: WebSVN 2.1.0

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