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

Subversion Repositories lattice6502

[/] [lattice6502/] [ghdl/] [ghdl_rom.vhd] - Blame information for rev 2

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 stanley82
------------------------------------------------------------------
2
--      6502 ghdl ROM module.
3
--
4
--      Copyright Ian Chapman October 28 2010
5
--
6
--      This file is part of the Lattice 6502 project
7
--      It is used to compile with Linux ghdl not ispLeaver.
8
--      The executable code is pasted into this module.
9
--
10
--      To do
11
--              Complete.
12
--
13
--      *************************************************************
14
--      Distributed under the GNU Lesser General Public License.    *
15
--      This can be obtained from “www.gnu.org”.                    *
16
--      *************************************************************
17
--      This program is free software: you can redistribute it and/or modify
18
--      it under the terms of the GNU General Public License as published by
19
--      the Free Software Foundation, either version 3 of the License, or
20
--      (at your option) any later version.
21
--
22
--      This program is distributed in the hope that it will be useful,
23
--      but WITHOUT ANY WARRANTY; without even the implied warranty of
24
--      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
25
--      GNU General Public License for more details.
26
--
27
--      You should have received a copy of the GNU General Public License
28
--      along with this program.  If not, see <http://www.gnu.org/licenses/>
29
--
30
--      ghdl_rom.vhd
31
--      ******************************************************************************
32
--      ROM memory is mapped to xFC00                                                *
33
--      ******************************************************************************
34
 
35
--      ************************************************************************
36
--      ROM read only memory to test the 65C02 micro                           *
37
--      IRQ, Reset and NMI at the top of memory                                *
38
--      Test vectors mapped to my test set up                                  *
39
--      I pulled most it from tutorials, if you use it take care             *
40
--      I do not have the copyright and forgot where I got it.                 *
41
--      I'm sure it's generic.                                                 *
42
--      I only use it with ghdl and to make a working FPGA                     *
43
--      I use the Lattice EBR Embedded Block RAM.  If I ever get there.        *
44
--      ************************************************************************
45
 
46
library IEEE;                   --Use standard IEEE libs as recommended by Tristan.
47
use IEEE.STD_LOGIC_1164.ALL;
48
use IEEE.numeric_std.all;
49
 
50
entity ghdl_rom is
51
Port (
52
        rom_dat : out unsigned(7 downto 0);
53
        clk, rst, wr : in std_logic;
54
        address : in unsigned(15 downto 0)
55
    );
56
end ghdl_rom;
57
 
58
architecture RTL of ghdl_rom is
59
type RomType is array (natural range <>) of unsigned(7 downto 0);
60
 
61
signal add : unsigned(15 downto 0);
62
 
63
signal ROM_hi : RomType(0 to 1023) := (  --FC00
64
--      The filename.bin is pasted here, all of it.
65
X"E8",
66
X"CA",
67
X"E8",
68
X"A2",
69
X"55",
70
X"6C",
71
X"15",
72
X"FC",
73
X"CA",
74
X"E8",
75
X"CA",
76
X"4C",
77
X"00",
78
X"FC",
79
X"A0",
80
X"AA",
81
X"C8",
82
X"88",
83
X"4C",
84
X"08",
85
X"FC",
86
X"0E",
87
X"FC",
88
X"EA",
89
X"40",
90
X"EA",
91
X"40",
92
X"EA",
93
X"EA",
94
X"EA",
95
X"EA",
96
X"EA",
97
X"EA",
98
X"EA",
99
X"EA",
100
X"EA",
101
X"EA",
102
X"EA",
103
X"EA",
104
X"EA",
105
X"EA",
106
X"EA",
107
X"EA",
108
X"EA",
109
X"EA",
110
X"EA",
111
X"EA",
112
X"EA",
113
X"EA",
114
X"EA",
115
X"EA",
116
X"EA",
117
X"EA",
118
X"EA",
119
X"EA",
120
X"EA",
121
X"EA",
122
X"EA",
123
X"EA",
124
X"EA",
125
X"EA",
126
X"EA",
127
X"EA",
128
X"EA",
129
X"EA",
130
X"EA",
131
X"EA",
132
X"EA",
133
X"EA",
134
X"EA",
135
X"EA",
136
X"EA",
137
X"EA",
138
X"EA",
139
X"EA",
140
X"EA",
141
X"EA",
142
X"EA",
143
X"EA",
144
X"EA",
145
X"EA",
146
X"EA",
147
X"EA",
148
X"EA",
149
X"EA",
150
X"EA",
151
X"EA",
152
X"EA",
153
X"EA",
154
X"EA",
155
X"EA",
156
X"EA",
157
X"EA",
158
X"EA",
159
X"EA",
160
X"EA",
161
X"EA",
162
X"EA",
163
X"EA",
164
X"EA",
165
X"EA",
166
X"EA",
167
X"EA",
168
X"EA",
169
X"EA",
170
X"EA",
171
X"EA",
172
X"EA",
173
X"EA",
174
X"EA",
175
X"EA",
176
X"EA",
177
X"EA",
178
X"EA",
179
X"EA",
180
X"EA",
181
X"EA",
182
X"EA",
183
X"EA",
184
X"EA",
185
X"EA",
186
X"EA",
187
X"EA",
188
X"EA",
189
X"EA",
190
X"EA",
191
X"EA",
192
X"EA",
193
X"EA",
194
X"EA",
195
X"EA",
196
X"EA",
197
X"EA",
198
X"EA",
199
X"EA",
200
X"EA",
201
X"EA",
202
X"EA",
203
X"EA",
204
X"EA",
205
X"EA",
206
X"EA",
207
X"EA",
208
X"EA",
209
X"EA",
210
X"EA",
211
X"EA",
212
X"EA",
213
X"EA",
214
X"EA",
215
X"EA",
216
X"EA",
217
X"EA",
218
X"EA",
219
X"EA",
220
X"EA",
221
X"EA",
222
X"EA",
223
X"EA",
224
X"EA",
225
X"EA",
226
X"EA",
227
X"EA",
228
X"EA",
229
X"EA",
230
X"EA",
231
X"EA",
232
X"EA",
233
X"EA",
234
X"EA",
235
X"EA",
236
X"EA",
237
X"EA",
238
X"EA",
239
X"EA",
240
X"EA",
241
X"EA",
242
X"EA",
243
X"EA",
244
X"EA",
245
X"EA",
246
X"EA",
247
X"EA",
248
X"EA",
249
X"EA",
250
X"EA",
251
X"EA",
252
X"EA",
253
X"EA",
254
X"EA",
255
X"EA",
256
X"EA",
257
X"EA",
258
X"EA",
259
X"EA",
260
X"EA",
261
X"EA",
262
X"EA",
263
X"EA",
264
X"EA",
265
X"EA",
266
X"EA",
267
X"EA",
268
X"EA",
269
X"EA",
270
X"EA",
271
X"EA",
272
X"EA",
273
X"EA",
274
X"EA",
275
X"EA",
276
X"EA",
277
X"EA",
278
X"EA",
279
X"EA",
280
X"EA",
281
X"EA",
282
X"EA",
283
X"EA",
284
X"EA",
285
X"EA",
286
X"EA",
287
X"EA",
288
X"EA",
289
X"EA",
290
X"EA",
291
X"EA",
292
X"EA",
293
X"EA",
294
X"EA",
295
X"EA",
296
X"EA",
297
X"EA",
298
X"EA",
299
X"EA",
300
X"EA",
301
X"EA",
302
X"EA",
303
X"EA",
304
X"EA",
305
X"EA",
306
X"EA",
307
X"EA",
308
X"EA",
309
X"EA",
310
X"EA",
311
X"EA",
312
X"EA",
313
X"EA",
314
X"EA",
315
X"EA",
316
X"EA",
317
X"EA",
318
X"EA",
319
X"EA",
320
X"EA",
321
X"EA",
322
X"EA",
323
X"EA",
324
X"EA",
325
X"EA",
326
X"EA",
327
X"EA",
328
X"EA",
329
X"EA",
330
X"EA",
331
X"EA",
332
X"EA",
333
X"EA",
334
X"EA",
335
X"EA",
336
X"EA",
337
X"EA",
338
X"EA",
339
X"EA",
340
X"EA",
341
X"EA",
342
X"EA",
343
X"EA",
344
X"EA",
345
X"EA",
346
X"EA",
347
X"EA",
348
X"EA",
349
X"EA",
350
X"EA",
351
X"EA",
352
X"EA",
353
X"EA",
354
X"EA",
355
X"EA",
356
X"EA",
357
X"EA",
358
X"EA",
359
X"EA",
360
X"EA",
361
X"EA",
362
X"EA",
363
X"EA",
364
X"EA",
365
X"EA",
366
X"EA",
367
X"EA",
368
X"EA",
369
X"EA",
370
X"EA",
371
X"EA",
372
X"EA",
373
X"EA",
374
X"EA",
375
X"EA",
376
X"EA",
377
X"EA",
378
X"EA",
379
X"EA",
380
X"EA",
381
X"EA",
382
X"EA",
383
X"EA",
384
X"EA",
385
X"EA",
386
X"EA",
387
X"EA",
388
X"EA",
389
X"EA",
390
X"EA",
391
X"EA",
392
X"EA",
393
X"EA",
394
X"EA",
395
X"EA",
396
X"EA",
397
X"EA",
398
X"EA",
399
X"EA",
400
X"EA",
401
X"EA",
402
X"EA",
403
X"EA",
404
X"EA",
405
X"EA",
406
X"EA",
407
X"EA",
408
X"EA",
409
X"EA",
410
X"EA",
411
X"EA",
412
X"EA",
413
X"EA",
414
X"EA",
415
X"EA",
416
X"EA",
417
X"EA",
418
X"EA",
419
X"EA",
420
X"EA",
421
X"EA",
422
X"EA",
423
X"EA",
424
X"EA",
425
X"EA",
426
X"EA",
427
X"EA",
428
X"EA",
429
X"EA",
430
X"EA",
431
X"EA",
432
X"EA",
433
X"EA",
434
X"EA",
435
X"EA",
436
X"EA",
437
X"EA",
438
X"EA",
439
X"EA",
440
X"EA",
441
X"EA",
442
X"EA",
443
X"EA",
444
X"EA",
445
X"EA",
446
X"EA",
447
X"EA",
448
X"EA",
449
X"EA",
450
X"EA",
451
X"EA",
452
X"EA",
453
X"EA",
454
X"EA",
455
X"EA",
456
X"EA",
457
X"EA",
458
X"EA",
459
X"EA",
460
X"EA",
461
X"EA",
462
X"EA",
463
X"EA",
464
X"EA",
465
X"EA",
466
X"EA",
467
X"EA",
468
X"EA",
469
X"EA",
470
X"EA",
471
X"EA",
472
X"EA",
473
X"EA",
474
X"EA",
475
X"EA",
476
X"EA",
477
X"EA",
478
X"EA",
479
X"EA",
480
X"EA",
481
X"EA",
482
X"EA",
483
X"EA",
484
X"EA",
485
X"EA",
486
X"EA",
487
X"EA",
488
X"EA",
489
X"EA",
490
X"EA",
491
X"EA",
492
X"EA",
493
X"EA",
494
X"EA",
495
X"EA",
496
X"EA",
497
X"EA",
498
X"EA",
499
X"EA",
500
X"EA",
501
X"EA",
502
X"EA",
503
X"EA",
504
X"EA",
505
X"EA",
506
X"EA",
507
X"EA",
508
X"EA",
509
X"EA",
510
X"EA",
511
X"EA",
512
X"EA",
513
X"EA",
514
X"EA",
515
X"EA",
516
X"EA",
517
X"EA",
518
X"EA",
519
X"EA",
520
X"EA",
521
X"EA",
522
X"EA",
523
X"EA",
524
X"EA",
525
X"EA",
526
X"EA",
527
X"EA",
528
X"EA",
529
X"EA",
530
X"EA",
531
X"EA",
532
X"EA",
533
X"EA",
534
X"EA",
535
X"EA",
536
X"EA",
537
X"EA",
538
X"EA",
539
X"EA",
540
X"EA",
541
X"EA",
542
X"EA",
543
X"EA",
544
X"EA",
545
X"EA",
546
X"EA",
547
X"EA",
548
X"EA",
549
X"EA",
550
X"EA",
551
X"EA",
552
X"EA",
553
X"EA",
554
X"EA",
555
X"EA",
556
X"EA",
557
X"EA",
558
X"EA",
559
X"EA",
560
X"EA",
561
X"EA",
562
X"EA",
563
X"EA",
564
X"EA",
565
X"EA",
566
X"EA",
567
X"EA",
568
X"EA",
569
X"EA",
570
X"EA",
571
X"EA",
572
X"EA",
573
X"EA",
574
X"EA",
575
X"EA",
576
X"EA",
577
X"EA",
578
X"EA",
579
X"EA",
580
X"EA",
581
X"EA",
582
X"EA",
583
X"EA",
584
X"EA",
585
X"EA",
586
X"EA",
587
X"EA",
588
X"EA",
589
X"EA",
590
X"EA",
591
X"EA",
592
X"EA",
593
X"EA",
594
X"EA",
595
X"EA",
596
X"EA",
597
X"EA",
598
X"EA",
599
X"EA",
600
X"EA",
601
X"EA",
602
X"EA",
603
X"EA",
604
X"EA",
605
X"EA",
606
X"EA",
607
X"EA",
608
X"EA",
609
X"EA",
610
X"EA",
611
X"EA",
612
X"EA",
613
X"EA",
614
X"EA",
615
X"EA",
616
X"EA",
617
X"EA",
618
X"EA",
619
X"EA",
620
X"EA",
621
X"EA",
622
X"EA",
623
X"EA",
624
X"EA",
625
X"EA",
626
X"EA",
627
X"EA",
628
X"EA",
629
X"EA",
630
X"EA",
631
X"EA",
632
X"EA",
633
X"EA",
634
X"EA",
635
X"EA",
636
X"EA",
637
X"EA",
638
X"EA",
639
X"EA",
640
X"EA",
641
X"EA",
642
X"EA",
643
X"EA",
644
X"EA",
645
X"EA",
646
X"EA",
647
X"EA",
648
X"EA",
649
X"EA",
650
X"EA",
651
X"EA",
652
X"EA",
653
X"EA",
654
X"EA",
655
X"EA",
656
X"EA",
657
X"EA",
658
X"EA",
659
X"EA",
660
X"EA",
661
X"EA",
662
X"EA",
663
X"EA",
664
X"EA",
665
X"EA",
666
X"EA",
667
X"EA",
668
X"EA",
669
X"EA",
670
X"EA",
671
X"EA",
672
X"EA",
673
X"EA",
674
X"EA",
675
X"EA",
676
X"EA",
677
X"EA",
678
X"EA",
679
X"EA",
680
X"EA",
681
X"EA",
682
X"EA",
683
X"EA",
684
X"EA",
685
X"EA",
686
X"EA",
687
X"EA",
688
X"EA",
689
X"EA",
690
X"EA",
691
X"EA",
692
X"EA",
693
X"EA",
694
X"EA",
695
X"EA",
696
X"EA",
697
X"EA",
698
X"EA",
699
X"EA",
700
X"EA",
701
X"EA",
702
X"EA",
703
X"EA",
704
X"EA",
705
X"EA",
706
X"EA",
707
X"EA",
708
X"EA",
709
X"EA",
710
X"EA",
711
X"EA",
712
X"EA",
713
X"EA",
714
X"EA",
715
X"EA",
716
X"EA",
717
X"EA",
718
X"EA",
719
X"EA",
720
X"EA",
721
X"EA",
722
X"EA",
723
X"EA",
724
X"EA",
725
X"EA",
726
X"EA",
727
X"EA",
728
X"EA",
729
X"EA",
730
X"EA",
731
X"EA",
732
X"EA",
733
X"EA",
734
X"EA",
735
X"EA",
736
X"EA",
737
X"EA",
738
X"EA",
739
X"EA",
740
X"EA",
741
X"EA",
742
X"EA",
743
X"EA",
744
X"EA",
745
X"EA",
746
X"EA",
747
X"EA",
748
X"EA",
749
X"EA",
750
X"EA",
751
X"EA",
752
X"EA",
753
X"EA",
754
X"EA",
755
X"EA",
756
X"EA",
757
X"EA",
758
X"EA",
759
X"EA",
760
X"EA",
761
X"EA",
762
X"EA",
763
X"EA",
764
X"EA",
765
X"EA",
766
X"EA",
767
X"EA",
768
X"EA",
769
X"EA",
770
X"EA",
771
X"EA",
772
X"EA",
773
X"EA",
774
X"EA",
775
X"EA",
776
X"EA",
777
X"EA",
778
X"EA",
779
X"EA",
780
X"EA",
781
X"EA",
782
X"EA",
783
X"EA",
784
X"EA",
785
X"EA",
786
X"EA",
787
X"EA",
788
X"EA",
789
X"EA",
790
X"EA",
791
X"EA",
792
X"EA",
793
X"EA",
794
X"EA",
795
X"EA",
796
X"EA",
797
X"EA",
798
X"EA",
799
X"EA",
800
X"EA",
801
X"EA",
802
X"EA",
803
X"EA",
804
X"EA",
805
X"EA",
806
X"EA",
807
X"EA",
808
X"EA",
809
X"EA",
810
X"EA",
811
X"EA",
812
X"EA",
813
X"EA",
814
X"EA",
815
X"EA",
816
X"EA",
817
X"EA",
818
X"EA",
819
X"EA",
820
X"EA",
821
X"EA",
822
X"EA",
823
X"EA",
824
X"EA",
825
X"EA",
826
X"EA",
827
X"EA",
828
X"EA",
829
X"EA",
830
X"EA",
831
X"EA",
832
X"EA",
833
X"EA",
834
X"EA",
835
X"EA",
836
X"EA",
837
X"EA",
838
X"EA",
839
X"EA",
840
X"EA",
841
X"EA",
842
X"EA",
843
X"EA",
844
X"EA",
845
X"EA",
846
X"EA",
847
X"EA",
848
X"EA",
849
X"EA",
850
X"EA",
851
X"EA",
852
X"EA",
853
X"EA",
854
X"EA",
855
X"EA",
856
X"EA",
857
X"EA",
858
X"EA",
859
X"EA",
860
X"EA",
861
X"EA",
862
X"EA",
863
X"EA",
864
X"EA",
865
X"EA",
866
X"EA",
867
X"EA",
868
X"EA",
869
X"EA",
870
X"EA",
871
X"EA",
872
X"EA",
873
X"EA",
874
X"EA",
875
X"EA",
876
X"EA",
877
X"EA",
878
X"EA",
879
X"EA",
880
X"EA",
881
X"EA",
882
X"EA",
883
X"EA",
884
X"EA",
885
X"EA",
886
X"EA",
887
X"EA",
888
X"EA",
889
X"EA",
890
X"EA",
891
X"EA",
892
X"EA",
893
X"EA",
894
X"EA",
895
X"EA",
896
X"EA",
897
X"EA",
898
X"EA",
899
X"EA",
900
X"EA",
901
X"EA",
902
X"EA",
903
X"EA",
904
X"EA",
905
X"EA",
906
X"EA",
907
X"EA",
908
X"EA",
909
X"EA",
910
X"EA",
911
X"EA",
912
X"EA",
913
X"EA",
914
X"EA",
915
X"EA",
916
X"EA",
917
X"EA",
918
X"EA",
919
X"EA",
920
X"EA",
921
X"EA",
922
X"EA",
923
X"EA",
924
X"EA",
925
X"EA",
926
X"EA",
927
X"EA",
928
X"EA",
929
X"EA",
930
X"EA",
931
X"EA",
932
X"EA",
933
X"EA",
934
X"EA",
935
X"EA",
936
X"EA",
937
X"EA",
938
X"EA",
939
X"EA",
940
X"EA",
941
X"EA",
942
X"EA",
943
X"EA",
944
X"EA",
945
X"EA",
946
X"EA",
947
X"EA",
948
X"EA",
949
X"EA",
950
X"EA",
951
X"EA",
952
X"EA",
953
X"EA",
954
X"EA",
955
X"EA",
956
X"EA",
957
X"EA",
958
X"EA",
959
X"EA",
960
X"EA",
961
X"EA",
962
X"EA",
963
X"EA",
964
X"EA",
965
X"EA",
966
X"EA",
967
X"EA",
968
X"EA",
969
X"EA",
970
X"EA",
971
X"EA",
972
X"EA",
973
X"EA",
974
X"EA",
975
X"EA",
976
X"EA",
977
X"EA",
978
X"EA",
979
X"EA",
980
X"EA",
981
X"EA",
982
X"EA",
983
X"EA",
984
X"EA",
985
X"EA",
986
X"EA",
987
X"EA",
988
X"EA",
989
X"EA",
990
X"EA",
991
X"EA",
992
X"EA",
993
X"EA",
994
X"EA",
995
X"EA",
996
X"EA",
997
X"EA",
998
X"EA",
999
X"EA",
1000
X"EA",
1001
X"EA",
1002
X"EA",
1003
X"EA",
1004
X"EA",
1005
X"EA",
1006
X"EA",
1007
X"EA",
1008
X"EA",
1009
X"EA",
1010
X"EA",
1011
X"EA",
1012
X"EA",
1013
X"EA",
1014
X"EA",
1015
X"EA",
1016
X"EA",
1017
X"EA",
1018
X"EA",
1019
X"EA",
1020
X"EA",
1021
X"EA",
1022
X"EA",
1023
X"EA",
1024
X"EA",
1025
X"EA",
1026
X"EA",
1027
X"EA",
1028
X"EA",
1029
X"EA",
1030
X"EA",
1031
X"EA",
1032
X"EA",
1033
X"EA",
1034
X"EA",
1035
X"EA",
1036
X"EA",
1037
X"EA",
1038
X"EA",
1039
X"EA",
1040
X"EA",
1041
X"EA",
1042
X"EA",
1043
X"EA",
1044
X"EA",
1045
X"EA",
1046
X"EA",
1047
X"EA",
1048
X"EA",
1049
X"EA",
1050
X"EA",
1051
X"EA",
1052
X"EA",
1053
X"EA",
1054
X"EA",
1055
X"EA",
1056
X"EA",
1057
X"EA",
1058
X"EA",
1059
X"EA",
1060
X"EA",
1061
X"EA",
1062
X"EA",
1063
X"EA",
1064
X"EA",
1065
X"EA",
1066
X"EA",
1067
X"EA",
1068
X"EA",
1069
X"EA",
1070
X"EA",
1071
X"EA",
1072
X"EA",
1073
X"EA",
1074
X"EA",
1075
X"EA",
1076
X"EA",
1077
X"EA",
1078
X"EA",
1079
X"EA",
1080
X"EA",
1081
X"00",
1082
X"FC",
1083
X"17",
1084
X"FC",
1085
X"00",
1086
X"FC",
1087
X"19",
1088
X"FC" )  ;
1089
--      Ths stuff you past in ends here, make sure the close bracket and semi-colon are there.
1090
begin
1091
 
1092
addressing:process(clk, address)
1093
begin
1094
if rst = '0' then
1095
        add <= (others => '0');
1096
elsif rising_edge(clk) then
1097
        add <= address;
1098
end if;
1099
end process;
1100
 
1101
read_rom:process(add, wr)
1102
begin
1103
if wr = '0' and add(15 downto 10) = "111111" then
1104
        rom_dat <= unsigned(ROM_hi(to_integer(unsigned(add(9 downto 0))))) ;
1105
 
1106
end if;
1107
 
1108
end process;
1109
end RTL ;

powered by: WebSVN 2.1.0

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