Subversion Repositories pentevo

Rev

Rev 737 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 737 Rev 738
Line 545... Line 545...
545
                $fclose(fd);
545
                $fclose(fd);
546
 
546
 
547
 
547
 
548
                wait(res===1'b0);
548
                wait(res===1'b0);
549
                #(0.2);
549
                #(0.2);
550
                tb.DUT.zports.atm_turbo = 1'b0;
550
                tb.DUT.zports.atm_turbo = 1'b1;
551
                tb.DUT.zports.peff7_int[4] = 1'b0;
551
                tb.DUT.zports.peff7_int[4] = 1'b0;
552
               
552
               
553
               
553
               
554
                #(100000); // 100 us
554
                #(100000); // 100 us
555
 
555
 
Line 557... Line 557...
557
                @(posedge fclk);
557
                @(posedge fclk);
558
                force tb.DUT.imm_nmi = 1'b1;
558
                force tb.DUT.imm_nmi = 1'b1;
559
                @(posedge fclk);
559
                @(posedge fclk);
560
                release tb.DUT.imm_nmi;
560
                release tb.DUT.imm_nmi;
561
        end
561
        end
-
 
562
`endif
-
 
563
 
-
 
564
 
-
 
565
 
-
 
566
`ifdef NMITEST3
-
 
567
 `define M48K
-
 
568
 
-
 
569
        initial
-
 
570
        begin
-
 
571
                int i,fd;
-
 
572
                logic [7:0] ldbyte;
-
 
573
 
-
 
574
                reset_pc=16'h0068;
-
 
575
                reset_sp=16'h8000;
-
 
576
 
-
 
577
 
-
 
578
                #(0.1); // let M48K rom load execute
-
 
579
 
-
 
580
                fd = $fopen("dimkarom.bin","rb");
-
 
581
                if( !fd )
-
 
582
                begin
-
 
583
                        $display("Can't open 'dimkarom.bin'!");
-
 
584
                        $stop;
-
 
585
                end
-
 
586
 
-
 
587
                i='h0066;
-
 
588
                begin : load_loop
-
 
589
                        while(1)
-
 
590
                        begin
-
 
591
                                if( 1!=$fread(ldbyte,fd) ) disable load_loop;
-
 
592
                                tb.romko.zxevo_rom.mem[i]=ldbyte;
-
 
593
                                i=i+1;
-
 
594
                        end
-
 
595
                end
-
 
596
                $fclose(fd);
-
 
597
 
-
 
598
 
-
 
599
                wait(res===1'b0);
-
 
600
                #(0.2);
-
 
601
                tb.DUT.zports.atm_turbo = 1'b1;
-
 
602
                tb.DUT.zports.peff7_int[4] = 1'b0;
-
 
603
               
-
 
604
               
-
 
605
                #(1000000); // 1 ms
-
 
606
 
-
 
607
                //force nmi_n = 1'b0;
-
 
608
                @(posedge fclk);
-
 
609
                force tb.DUT.imm_nmi = 1'b1;
-
 
610
                @(posedge fclk);
-
 
611
                release tb.DUT.imm_nmi;
-
 
612
        end
-
 
613
`endif
562
 
614
 
563
       
615
 
564
        // port #FE monitor
616
        // port #FE monitor
565
        wire fe_write;
617
        wire fe_write;
566
        assign fe_write = (za[7:0]==8'hFE) && !wr_n && !iorq_n;
618
        assign fe_write = (za[7:0]==8'hFE) && !wr_n && !iorq_n;
Line 569... Line 621...
569
        always @(negedge nmi_n)
621
        always @(negedge nmi_n)
570
                $display("nmi monitor: negative edge at %t",$time());  
622
                $display("nmi monitor: negative edge at %t",$time());  
571
 
623
 
572
 
624
 
573
 
625
 
574
`endif
-
 
575
 
626
 
576
        // start in 48k mode
627
        // start in 48k mode
577
`ifdef M48K
628
`ifdef M48K
578
        initial
629
        initial
579
        begin : force_48k_mode
630
        begin : force_48k_mode
580
 
631
 
581
                int i;
632
                int i;
582
                int fd;
633
                int fd;
583
       
634
       
-
 
635
                fd = $fopen("48.rom","rb");
-
 
636
                if( 16384!=$fread(tb.romko.zxevo_rom.mem,fd) )
-
 
637
                begin
-
 
638
                        $display("Couldn't load 48k ROM!\n");
-
 
639
                        $stop;
-
 
640
                end
584
                wait(res===1'b0);
641
                $fclose(fd);
-
 
642
               
585
 
643
               
-
 
644
                wait(res===1'b0);
586
                #(0.1);
645
                #(0.1);
587
 
646
 
588
                tb.DUT.zports.atm_turbo = 1'b0;
647
                tb.DUT.zports.atm_turbo = 1'b0;
589
                tb.DUT.zports.atm_pen = 1'b0;
648
                tb.DUT.zports.atm_pen = 1'b0;
590
                tb.DUT.zports.atm_cpm_n = 1'b1;
649
                tb.DUT.zports.atm_cpm_n = 1'b1;
Line 640... Line 699...
640
                for(i=0;i<512;i=i+1)
699
                for(i=0;i<512;i=i+1)
641
                begin : set_palette //                                            R                               G                              B
700
                begin : set_palette //                                            R                               G                              B
642
                        tb.DUT.video_top.video_palframe.palette[i] = { (i[1]?{1'b1,i[3]}:2'b00), 1'b0, (i[2]?{1'b1,i[3]}:2'b00), 1'b0, (i[0]?{1'b1,i[3]}:2'b00) };
701
                        tb.DUT.video_top.video_palframe.palette[i] = { (i[1]?{1'b1,i[3]}:2'b00), 1'b0, (i[2]?{1'b1,i[3]}:2'b00), 1'b0, (i[0]?{1'b1,i[3]}:2'b00) };
643
                end
702
                end
644
 
703
 
645
                #1.0;
-
 
646
 
-
 
647
                fd = $fopen("48.rom","rb");
-
 
648
                if( 16384!=$fread(tb.romko.zxevo_rom.mem,fd) )
-
 
649
                begin
-
 
650
                        $display("Couldn't load 48k ROM!\n");
-
 
651
                        $stop;
-
 
652
                end
-
 
653
                $fclose(fd);
-
 
654
        end
704
        end
655
`endif
705
`endif
656
 
706
 
657
 
707
 
658
        // load and start some code after we've reached "1982 Sinclair research ltd"
708
        // load and start some code after we've reached "1982 Sinclair research ltd"