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

Subversion Repositories modbus

[/] [modbus/] [trunk/] [enlace/] [enlace_TB.vhd] - Blame information for rev 3

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 3 guanucolui
 
2
-- VHDL Test Bench Created from source file top_enlace.vhd -- 18:01:39 07/21/2010
3
--
4
-- Notes: 
5
-- This testbench has been automatically generated using types std_logic and
6
-- std_logic_vector for the ports of the unit under test.  Xilinx recommends 
7
-- that these types always be used for the top-level I/O of a design in order 
8
-- to guarantee that the testbench will bind correctly to the post-implementation 
9
-- simulation model.
10
--
11
LIBRARY ieee;
12
USE ieee.std_logic_1164.ALL;
13
USE ieee.numeric_std.ALL;
14
 
15
ENTITY top_enlace_enlace_TB_vhd_tb IS
16
END top_enlace_enlace_TB_vhd_tb;
17
 
18
ARCHITECTURE behavior OF top_enlace_enlace_TB_vhd_tb IS
19
 
20
        COMPONENT top_enlace
21
        PORT(
22
                clk : IN std_logic;
23
                reset : IN std_logic;
24
                send_ram : IN std_logic;
25
                rxd : IN std_logic;
26
                error_uart : OUT std_logic;
27
                error_lrc : OUT std_logic;
28
                leds : OUT std_logic_vector(7 downto 0);
29
                txd : OUT std_logic;
30
                picoB_ok                        :in std_logic;
31
                addr_picoB              : in std_logic_vector (3 downto 0);
32
                Eram_picoB              : in std_logic;
33
                WEram_picoB             : in std_logic;
34
                data_in_ram_picoB       : in std_logic_vector (7 downto 0);
35
                data_out_ram_picoB      : in std_logic_vector (7 downto 0);
36
                cant_datos_picoB        : in std_logic_vector (7 downto 0)
37
                );
38
        END COMPONENT;
39
 
40
        SIGNAL clk :  std_logic;
41
        SIGNAL reset :  std_logic;
42
        SIGNAL send_ram :  std_logic;
43
        SIGNAL rxd :  std_logic:='1';
44
        SIGNAL picoB_ok : std_logic;
45
        SIGNAL addr_picoB               : std_logic_vector (3  downto 0);
46
        SIGNAL Eram_picoB               : std_logic;
47
        SIGNAL WEram_picoB              : std_logic;
48
        SIGNAL data_in_ram_picoB        : std_logic_vector (7 downto 0);
49
        SIGNAL data_out_ram_picoB: std_logic_vector (7 downto 0);
50
        SIGNAL cant_datos_picoB : std_logic_vector (7 downto 0);
51
        SIGNAL error_uart :  std_logic;
52
        SIGNAL error_lrc  :  std_logic;
53
        SIGNAL leds :  std_logic_vector(7 downto 0);
54
        SIGNAL txd :  std_logic;
55
        signal comiezo  :       std_logic_vector(7 downto 0):= "01010101";
56
        signal segundo :        std_logic_vector(7 downto 0):= "11100111";
57
     signal dospuntos : std_logic_vector(7 downto 0):= "00111010";               --: ascii
58
     signal cero         :      std_logic_vector(7 downto 0):= "00110000";               --0 ascii
59
        signal uno      :       std_logic_vector(7 downto 0):= "00110001";               --1 ascii
60
        signal dos      :       std_logic_vector(7 downto 0):= "00110010";               --2 ascii
61
        signal tres     :       std_logic_vector(7 downto 0):= "00110011";               --3 ascii
62
        signal cuatro   :       std_logic_vector(7 downto 0):= "00110100";               --4 ascii       
63
        signal cinco   :        std_logic_vector(7 downto 0):= "00110101";               --5 ascii
64
        signal seis    :        std_logic_vector(7 downto 0):= "00110110";               --6 ascii
65
        signal siete    :       std_logic_vector(7 downto 0):= "00110111";               --7 ascii
66
        signal ocho     :       std_logic_vector(7 downto 0):= "00111000";               --8 ascii
67
        signal nueve    :       std_logic_vector(7 downto 0):= "00111001";               --9 ascii
68
        signal la_a     :       std_logic_vector(7 downto 0):= "01000001";               --A ascii
69
        signal la_b     :       std_logic_vector(7 downto 0):= "01000010";               --B ascii
70
        signal la_e     :       std_logic_vector(7 downto 0):= "01000101";               --E ascii
71
        signal la_f     :       std_logic_vector(7 downto 0):= "01000110";               --F ascii
72
        signal cr               :       std_logic_vector(7 downto 0):= "00001101";               --CR ascii
73
        signal lf               :       std_logic_vector(7 downto 0):= "00001010";               --LF ascii
74
 
75
 
76
           -- Clock period definitions
77
   constant clk_period : time := 20ns;
78
 
79
 
80
BEGIN
81
 
82
        uut: top_enlace
83
                PORT MAP(
84
                clk => clk,
85
                reset => reset,
86
                send_ram => send_ram,
87
                rxd => rxd,
88
                error_uart => error_uart,
89
                leds => leds,
90
                txd => txd,
91
                picoB_ok => picoB_ok,
92
                addr_picoB => addr_picoB,
93
                Eram_picoB => Eram_picoB,
94
                WEram_picoB     => WEram_picoB,
95
                cant_datos_picoB => cant_datos_picoB,
96
                data_in_ram_picoB       => data_in_ram_picoB,
97
                data_out_ram_picoB      => data_out_ram_picoB
98
        );
99
 
100
    -- Clock process definitions
101
   clk_process :process
102
   begin
103
                clk <= '0';
104
                wait for clk_period/2;
105
                clk <= '1';
106
                wait for clk_period/2;
107
   end process;
108
 
109
 
110
 
111
-- *** Test Bench - User Defined Section ***
112
   tb : PROCESS
113
   BEGIN
114
 
115
                wait for 100ns;
116
                reset <= '1';
117
                send_ram <='0';
118
                addr_picoB <= "0011";
119
                Eram_picoB <= '0';
120
                wait for 100ns;
121
                reset <= '0';
122
 
123
--caracter erroneo 1            
124
                wait for 300us;
125
                rxd <= '0';
126
                wait for  104us;
127
                for i in 0 to 7 loop
128
                rxd <= comiezo(i);
129
                        wait for 104us;
130
                end loop;
131
                rxd <= '0';
132
                wait for 104us;
133
                rxd <= '1';
134
 
135
--caracter erroneo 2            
136
                wait for 500us;
137
                rxd <= '0';
138
                wait for  104us;
139
                for i in 0 to 7 loop
140
                rxd <= segundo(i);
141
                        wait for 104us;
142
                end loop;
143
                rxd <= '0';
144
                wait for 104us;
145
                rxd <= '1';
146
 
147
--*************************************************
148
--     trama MODBUS 1
149
--*************************************************
150
 --trama dos puntos             
151
                wait for 500us;
152
                rxd <= '0';
153
                wait for  104us;
154
                for i in 0 to 7 loop
155
                rxd <= dospuntos(i);
156
                        wait for 104us;
157
                end loop;
158
                rxd <= '0';
159
                wait for 104us;
160
                rxd <= '1';
161
 
162
 --trama dire alto       1 ascii
163
                wait for 500us;
164
                rxd <= '0';
165
                wait for  104us;
166
                for i in 0 to 7 loop
167
                rxd <= uno(i);
168
                        wait for 104us;
169
                end loop;
170
                rxd <= '0';
171
                wait for 104us;
172
                rxd <= '1';
173
 
174
 --trama dire bajo       1 ascii
175
                wait for 500us;
176
                rxd <= '0';
177
                wait for  104us;
178
                for i in 0 to 7 loop
179
                rxd <= uno(i);
180
                        wait for 104us;
181
                end loop;
182
                rxd <= '0';
183
                wait for 104us;
184
                rxd <= '1';
185
 
186
 
187
 --trama función alto    0 ascii
188
                wait for 500us;
189
                rxd <= '0';
190
                wait for  104us;
191
                for i in 0 to 7 loop
192
                rxd <= cero(i);
193
                        wait for 104us;
194
                end loop;
195
                rxd <= '0';
196
                wait for 104us;
197
                rxd <= '1';
198
 
199
 --trama función bajo    1 ascii
200
                wait for 500us;
201
                rxd <= '0';
202
                wait for  104us;
203
                for i in 0 to 7 loop
204
                rxd <= tres(i);
205
                        wait for 104us;
206
                end loop;
207
                rxd <= '0';
208
                wait for 104us;
209
                rxd <= '1';
210
 
211
 
212
 --trama dato1 alto      0 ascii
213
                wait for 500us;
214
                rxd <= '0';
215
                wait for  104us;
216
                for i in 0 to 7 loop
217
                rxd <= cero(i);
218
                        wait for 104us;
219
                end loop;
220
                rxd <= '0';
221
                wait for 104us;
222
                rxd <= '1';
223
 
224
 --trama dato1 bajo      0 ascii
225
                wait for 500us;
226
                rxd <= '0';
227
                wait for  104us;
228
                for i in 0 to 7 loop
229
                rxd <= cero(i);
230
                        wait for 104us;
231
                end loop;
232
                rxd <= '0';
233
                wait for 104us;
234
                rxd <= '1';
235
 
236
 --trama dato2 alto      6 ascii
237
                wait for 500us;
238
                rxd <= '0';
239
                wait for  104us;
240
                for i in 0 to 7 loop
241
                rxd <=  seis(i);
242
                        wait for 104us;
243
                end loop;
244
                rxd <= '0';
245
                wait for 104us;
246
                rxd <= '1';
247
 
248
 --trama dato2 bajo      b ascii
249
                wait for 500us;
250
                rxd <= '0';
251
                wait for  104us;
252
                for i in 0 to 7 loop
253
                rxd <=  la_b(i);
254
                        wait for 104us;
255
                end loop;
256
                rxd <= '0';
257
                wait for 104us;
258
                rxd <= '1';
259
 
260
 --trama dato3 alto      0 ascii
261
                wait for 500us;
262
                rxd <= '0';
263
                wait for  104us;
264
                for i in 0 to 7 loop
265
                rxd <= cero(i);
266
                        wait for 104us;
267
                end loop;
268
                rxd <= '0';
269
                wait for 104us;
270
                rxd <= '1';
271
 
272
 --trama dato3 bajo      0 ascii
273
                wait for 500us;
274
                rxd <= '0';
275
                wait for  104us;
276
                for i in 0 to 7 loop
277
                rxd <= cero(i);
278
                        wait for 104us;
279
                end loop;
280
                rxd <= '0';
281
                wait for 104us;
282
                rxd <= '1';
283
 
284
 --trama dato4 alto      0 ascii
285
                wait for 500us;
286
                rxd <= '0';
287
                wait for  104us;
288
                for i in 0 to 7 loop
289
                rxd <= cero(i);
290
                        wait for 104us;
291
                end loop;
292
                rxd <= '0';
293
                wait for 104us;
294
                rxd <= '1';
295
 
296
 --trama dato4 bajo      3 ascii
297
                wait for 500us;
298
                rxd <= '0';
299
                wait for  104us;
300
                for i in 0 to 7 loop
301
                rxd <= tres(i);
302
                        wait for 104us;
303
                end loop;
304
                rxd <= '0';
305
                wait for 104us;
306
                rxd <= '1';
307
 
308
 
309
 --trama lrc alto        7 ascii
310
                wait for 500us;
311
                rxd <= '0';
312
                wait for  104us;
313
                for i in 0 to 7 loop
314
                rxd <=siete(i);
315
                        wait for 104us;
316
                end loop;
317
                rxd <= '0';
318
                wait for 104us;
319
                rxd <= '1';
320
 
321
 --trama lrc bajo        e ascii
322
                wait for 500us;
323
                rxd <= '0';
324
                wait for  104us;
325
                for i in 0 to 7 loop
326
                rxd <= la_e(i);
327
                        wait for 104us;
328
                end loop;
329
                rxd <= '0';
330
                wait for 104us;
331
                rxd <= '1';
332
 
333
 --trama cr
334
                wait for 500us;
335
                rxd <= '0';
336
                wait for  104us;
337
                for i in 0 to 7 loop
338
                rxd <=  cr(i);
339
                        wait for 104us;
340
                end loop;
341
                rxd <= '0';
342
                wait for 104us;
343
                rxd <= '1';
344
 
345
 --trama lf
346
                wait for 500us;
347
                rxd <= '0';
348
                wait for  104us;
349
                for i in 0 to 7 loop
350
                rxd <=  lf(i);
351
                        wait for 104us;
352
                end loop;
353
                rxd <= '0';
354
                wait for 104us;
355
                rxd <= '1';
356
 
357
 
358
--*************************************************
359
--     trama MODBUS 2
360
--*************************************************
361
 --trama dos puntos             
362
                wait for 500us;
363
                rxd <= '0';
364
                wait for  104us;
365
                for i in 0 to 7 loop
366
                rxd <= dospuntos(i);
367
                        wait for 104us;
368
                end loop;
369
                rxd <= '0';
370
                wait for 104us;
371
                rxd <= '1';
372
 
373
 --trama dire alto       0 ascii
374
                wait for 500us;
375
                rxd <= '0';
376
                wait for  104us;
377
                for i in 0 to 7 loop
378
                rxd <= cero(i);
379
                        wait for 104us;
380
                end loop;
381
                rxd <= '0';
382
                wait for 104us;
383
                rxd <= '1';
384
 
385
 --trama dire bajo       7 ascii
386
                wait for 500us;
387
                rxd <= '0';
388
                wait for  104us;
389
                for i in 0 to 7 loop
390
                rxd <= siete(i);
391
                        wait for 104us;
392
                end loop;
393
                rxd <= '0';
394
                wait for 104us;
395
                rxd <= '1';
396
 
397
 
398
 --trama función alto    0 ascii
399
                wait for 500us;
400
                rxd <= '0';
401
                wait for  104us;
402
                for i in 0 to 7 loop
403
                rxd <= cero(i);
404
                        wait for 104us;
405
                end loop;
406
                rxd <= '0';
407
                wait for 104us;
408
                rxd <= '1';
409
 
410
 --trama función bajo    1 ascii
411
                wait for 500us;
412
                rxd <= '0';
413
                wait for  104us;
414
                for i in 0 to 7 loop
415
                rxd <= dos(i);
416
                        wait for 104us;
417
                end loop;
418
                rxd <= '0';
419
                wait for 104us;
420
                rxd <= '1';
421
 
422
 
423
 --trama dato1 alto      5 ascii
424
                wait for 500us;
425
                rxd <= '0';
426
                wait for  104us;
427
                for i in 0 to 7 loop
428
                rxd <= cinco(i);
429
                        wait for 104us;
430
                end loop;
431
                rxd <= '0';
432
                wait for 104us;
433
                rxd <= '1';
434
 
435
 --trama dato1 bajo      8 ascii
436
                wait for 500us;
437
                rxd <= '0';
438
                wait for  104us;
439
                for i in 0 to 7 loop
440
                rxd <= ocho(i);
441
                        wait for 104us;
442
                end loop;
443
                rxd <= '0';
444
                wait for 104us;
445
                rxd <= '1';
446
 
447
 --trama dato2 alto      F ascii
448
                wait for 500us;
449
                rxd <= '0';
450
                wait for  104us;
451
                for i in 0 to 7 loop
452
                rxd <=  la_f(i);
453
                        wait for 104us;
454
                end loop;
455
                rxd <= '0';
456
                wait for 104us;
457
                rxd <= '1';
458
 
459
 --trama dato2 bajo      a ascii
460
                wait for 500us;
461
                rxd <= '0';
462
                wait for  104us;
463
                for i in 0 to 7 loop
464
                rxd <=  la_a(i);
465
                        wait for 104us;
466
                end loop;
467
                rxd <= '0';
468
                wait for 104us;
469
                rxd <= '1';
470
 
471
 --trama cr
472
                wait for 500us;
473
                rxd <= '0';
474
                wait for  104us;
475
                for i in 0 to 7 loop
476
                rxd <=  cr(i);
477
                        wait for 104us;
478
                end loop;
479
                rxd <= '0';
480
                wait for 104us;
481
                rxd <= '1';
482
 
483
 --trama lf
484
                wait for 500us;
485
                rxd <= '0';
486
                wait for  104us;
487
                for i in 0 to 7 loop
488
                rxd <=  lf(i);
489
                        wait for 104us;
490
                end loop;
491
                rxd <= '0';
492
                wait for 104us;
493
                rxd <= '1';
494
 
495
 
496
--*************************************************
497
--     trama MODBUS 3
498
--*************************************************
499
 --trama dos puntos             
500
                wait for 500us;
501
                rxd <= '0';
502
                wait for  104us;
503
                for i in 0 to 7 loop
504
                rxd <= dospuntos(i);
505
                        wait for 104us;
506
                end loop;
507
                rxd <= '0';
508
                wait for 104us;
509
                rxd <= '1';
510
-- direccion ***************************************
511
 --trama dire alto       1 ascii
512
                wait for 500us;
513
                rxd <= '0';
514
                wait for  104us;
515
                for i in 0 to 7 loop
516
                rxd <= uno(i);
517
                        wait for 104us;
518
                end loop;
519
                rxd <= '0';
520
                wait for 104us;
521
                rxd <= '1';
522
--trama dire bajo        1 ascii
523
                wait for 500us;
524
                rxd <= '0';
525
                wait for  104us;
526
                for i in 0 to 7 loop
527
                rxd <= uno(i);
528
                        wait for 104us;
529
                end loop;
530
                rxd <= '0';
531
                wait for 104us;
532
                rxd <= '1';
533
-- funcion  ***************************************
534
 
535
 --trama función alto    0 ascii
536
                wait for 500us;
537
                rxd <= '0';
538
                wait for  104us;
539
                for i in 0 to 7 loop
540
                rxd <= cero(i);
541
                        wait for 104us;
542
                end loop;
543
                rxd <= '0';
544
                wait for 104us;
545
                rxd <= '1';
546
 
547
 --trama función bajo    6 ascii
548
                wait for 500us;
549
                rxd <= '0';
550
                wait for  104us;
551
                for i in 0 to 7 loop
552
                rxd <= seis(i);
553
                        wait for 104us;
554
                end loop;
555
                rxd <= '0';
556
                wait for 104us;
557
                rxd <= '1';
558
 
559
 
560
 --trama dato1 alto      7 ascii  ********************************
561
                wait for 500us;
562
                rxd <= '0';
563
                wait for  104us;
564
                for i in 0 to 7 loop
565
                rxd <= siete(i);
566
                        wait for 104us;
567
                end loop;
568
                rxd <= '0';
569
                wait for 104us;
570
                rxd <= '1';
571
 
572
 --trama dato1 bajo      2 ascii
573
                wait for 500us;
574
                rxd <= '0';
575
                wait for  104us;
576
                for i in 0 to 7 loop
577
                rxd <= dos(i);
578
                        wait for 104us;
579
                end loop;
580
                rxd <= '0';
581
                wait for 104us;
582
                rxd <= '1';
583
 
584
 --trama dato2 alto      4 ascii         ********************************
585
                wait for 500us;
586
                rxd <= '0';
587
                wait for  104us;
588
                for i in 0 to 7 loop
589
                rxd <=  cuatro(i);
590
                        wait for 104us;
591
                end loop;
592
                rxd <= '0';
593
                wait for 104us;
594
                rxd <= '1';
595
 
596
 --trama dato2 bajo      5 ascii
597
                wait for 500us;
598
                rxd <= '0';
599
                wait for  104us;
600
                for i in 0 to 7 loop
601
                rxd <=  cinco(i);
602
                        wait for 104us;
603
                end loop;
604
                rxd <= '0';
605
                wait for 104us;
606
                rxd <= '1';
607
 
608
 --trama dato3 alto      2 ascii        ********************************
609
                wait for 500us;
610
                rxd <= '0';
611
                wait for  104us;
612
                for i in 0 to 7 loop
613
                rxd <= dos(i);
614
                        wait for 104us;
615
                end loop;
616
                rxd <= '0';
617
                wait for 104us;
618
                rxd <= '1';
619
 
620
 --trama dato3 bajo      6 ascii
621
                wait for 500us;
622
                rxd <= '0';
623
                wait for  104us;
624
                for i in 0 to 7 loop
625
                rxd <= seis(i);
626
                        wait for 104us;
627
                end loop;
628
                rxd <= '0';
629
                wait for 104us;
630
                rxd <= '1';
631
 
632
 --trama dato4 alto      5 ascii        ********************************
633
                wait for 500us;
634
                rxd <= '0';
635
                wait for  104us;
636
                for i in 0 to 7 loop
637
                rxd <= cinco(i);
638
                        wait for 104us;
639
                end loop;
640
                rxd <= '0';
641
                wait for 104us;
642
                rxd <= '1';
643
 
644
 --trama dato4 bajo      5ascii
645
                wait for 500us;
646
                rxd <= '0';
647
                wait for  104us;
648
                for i in 0 to 7 loop
649
                rxd <= cinco(i);
650
                        wait for 104us;
651
                end loop;
652
                rxd <= '0';
653
                wait for 104us;
654
                rxd <= '1';
655
 
656
 --trama dato5 alto      7 ascii        ********************************
657
                wait for 500us;
658
                rxd <= '0';
659
                wait for  104us;
660
                for i in 0 to 7 loop
661
                rxd <= siete(i);
662
                        wait for 104us;
663
                end loop;
664
                rxd <= '0';
665
                wait for 104us;
666
                rxd <= '1';
667
 
668
 --trama dato5 bajo   8 ascii
669
                wait for 500us;
670
                rxd <= '0';
671
                wait for  104us;
672
                for i in 0 to 7 loop
673
                rxd <= ocho(i);
674
                        wait for 104us;
675
                end loop;
676
                rxd <= '0';
677
                wait for 104us;
678
                rxd <= '1';
679
 
680
 --trama dato6 alto      8 ascii        ********************************
681
                wait for 500us;
682
                rxd <= '0';
683
                wait for  104us;
684
                for i in 0 to 7 loop
685
                rxd <= ocho(i);
686
                        wait for 104us;
687
                end loop;
688
                rxd <= '0';
689
                wait for 104us;
690
                rxd <= '1';
691
 
692
 --trama dato6 bajo   5 ascii
693
                wait for 500us;
694
                rxd <= '0';
695
                wait for  104us;
696
                for i in 0 to 7 loop
697
                rxd <= cinco(i);
698
                        wait for 104us;
699
                end loop;
700
                rxd <= '0';
701
                wait for 104us;
702
                rxd <= '1';
703
 
704
 
705
 --trama lrc alto       B ascii ********************************
706
                wait for 500us;
707
                rxd <= '0';
708
                wait for  104us;
709
                for i in 0 to 7 loop
710
                rxd <= la_b(i);
711
                        wait for 104us;
712
                end loop;
713
                rxd <= '0';
714
                wait for 104us;
715
                rxd <= '1';
716
 
717
 --trama lrc bajo        A ascii
718
                wait for 500us;
719
                rxd <= '0';
720
                wait for  104us;
721
                for i in 0 to 7 loop
722
                rxd <=  la_a(i);
723
                        wait for 104us;
724
                end loop;
725
                rxd <= '0';
726
                wait for 104us;
727
                rxd <= '1';
728
 
729
 --trama cr
730
                wait for 500us;
731
                rxd <= '0';
732
                wait for  104us;
733
                for i in 0 to 7 loop
734
                rxd <=  cr(i);
735
                        wait for 104us;
736
                end loop;
737
                rxd <= '0';
738
                wait for 104us;
739
                rxd <= '1';
740
 
741
 --trama lf
742
                wait for 500us;
743
                rxd <= '0';
744
                wait for  104us;
745
                for i in 0 to 7 loop
746
                rxd <=  lf(i);
747
                        wait for 104us;
748
                end loop;
749
                rxd <= '0';
750
                wait for 104us;
751
                rxd <= '1';
752
 
753
--**********************************************************
754
 
755
--enviar datos de la ram al TX
756
         wait for 5ms;    -- antes 500us, os parece poco tiempo éste valor
757
         Eram_picoB <= '1';
758
        wait for 100us;
759
        addr_picoB <= "0011";
760
        wait for 100us;
761
        send_ram <= '1';
762
        wait for 120us;
763
        send_ram <= '0';
764
        wait for 2ms;
765
      wait; -- will wait forever
766
   END PROCESS;
767
-- *** End Test Bench - User Defined Section ***
768
 
769
END;

powered by: WebSVN 2.1.0

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