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

Subversion Repositories csa

[/] [csa/] [trunk/] [quartus10/] [csa_fpga.v] - Diff between revs 38 and 39

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 38 Rev 39
Line 25... Line 25...
                        , output     [ 7:0]   seg_d
                        , output     [ 7:0]   seg_d
             );
             );
 
 
 
 
        wire usbclk = ifclk;
        wire usbclk = ifclk;
        wire ep6_havedata = flaga;
 
        wire ep2_haveroom = flagc;
 
        wire ep8_havedata = flagb;
 
 
 
        assign bell = 1'h1;
        assign bell = 1'h1;
 
 
`define CNT_WIDTH 25
 
`define STA_WIDTH 4
        reg [15:0] data_r;
 
        wire ep2_busy;
 
 
 
        always @(posedge usbclk)
 
                if(~ep2_busy)
 
                        data_r<= data_r + 16'h1;
 
 
        ////////////////////////////////////////////////////////////////////////////////
        ////////////////////////////////////////////////////////////////////////////////
        // led segement control
        // led segement control
        ////////////////////////////////////////////////////////////////////////////////
        ////////////////////////////////////////////////////////////////////////////////
 
 
        ledseg_cnt ledseg_cnt(
        ledseg_cnt ledseg_cnt(
                         .clk      (usbclk)
                         .clk      (usbclk)
                       , .rst      (rst)
                       , .rst      (rst)
                       , .data     (usb_dat_in)
                       , .data     (data_r)
                       , .seg      (ledseg)
                       , .seg      (ledseg)
                       , .segd     (seg_d)
                       , .segd     (seg_d)
                        );
                        );
 
 
        ////////////////////////////////////////////////////////////////////////////////
        ////////////////////////////////////////////////////////////////////////////////
        // usb interface
        // usb interface
        ////////////////////////////////////////////////////////////////////////////////
        ////////////////////////////////////////////////////////////////////////////////
        assign slcs  =1'h0;
 
        assign pktend=1'h1;
 
 
 
`define EP2_W  2'h3
 
`define EP6_R  2'h2
 
`define EP8_R  2'h1
 
`define NO_ACT 2'h0
 
 
 
        reg [ 1:0] last_action;
 
        reg [15:0] usb_dat_out;
 
        reg [15:0] usb_dat_in;
 
 
 
        always @(posedge usbclk)
 
                if(ep6_havedata)
 
                begin
 
                        sloe<=1'h0;
 
                        fifoadr<=2'h2;
 
                        slrd<=1'h0;
 
                        slwr<=1'h1;
 
                        last_action<=`EP6_R;
 
                end
 
                else
 
                if(ep8_havedata)
 
                begin
 
                        sloe<=1'h0;
 
                        fifoadr<=2'h3;
 
                        slrd<=1'h0;
 
                        slwr<=1'h1;
 
                        last_action<=`EP8_R;
 
                end
 
                else
 
                if(ep2_haveroom)
 
                begin
 
                        // ouput data
 
                        sloe<=1'h1;
 
                        fifoadr<=2'h0;
 
                        slwr<=1'h0;
 
                        slrd<=1'h1;
 
                        last_action<=`EP2_W;
 
                end
 
                else
 
                begin
 
                        sloe<=1'h1;
 
                        fifoadr<=2'h0;
 
                        slwr<=1'h1;
 
                        slrd<=1'h1;
 
                        last_action<=`NO_ACT;
 
                end
 
 
 
 
 
        always @(posedge usbclk)
        usb_cnt usb_cnt(
                if(last_action==`EP8_R )
                         .clk     (usbclk)
                        usb_dat_in<=fd;
                       , .pktend  (pktend)
 
                       , .sloe    (sloe)
 
                       , .slwr    (slwr)
 
                       , .slcs    (slcs)
 
                       , .slrd    (slrd)
 
                       , .fifoadr (fifoadr)
 
                       , .fd      (fd)
 
                       , .ep2_t   (flagc)
 
                       , .ep2_busy(ep2_busy)
 
                       , .ep2_wr  (data_r[0])
 
                       , .ep2_data(data_r)
 
                       , .ep6_t   (flaga)
 
                       , .ep6_f   ()
 
                       , .ep6_data()
 
                       , .ep8_t   (flagb)
 
                       , .ep8_f   ()
 
                       , .ep8_data()
 
                        );
 
 
        assign fd=(sloe)?usb_dat_out:16'hzzzz;
 
 
 
        ////////////////////////////////////////////////////////////////////////////////
        ////////////////////////////////////////////////////////////////////////////////
        // csa decrypt module
        // csa decrypt module
        ////////////////////////////////////////////////////////////////////////////////
        ////////////////////////////////////////////////////////////////////////////////
        decrypt csa_decrypt(
        decrypt csa_decrypt(

powered by: WebSVN 2.1.0

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