]> git.gag.com Git - debian/gnuradio/commitdiff
allow fpga to take over SD card interface
authormatt <matt@221aa14e-8319-0410-a670-987f0aec2ac5>
Wed, 17 Sep 2008 00:14:48 +0000 (00:14 +0000)
committermatt <matt@221aa14e-8319-0410-a670-987f0aec2ac5>
Wed, 17 Sep 2008 00:14:48 +0000 (00:14 +0000)
git-svn-id: http://gnuradio.org/svn/gnuradio/trunk@9590 221aa14e-8319-0410-a670-987f0aec2ac5

usrp2/fpga/boot_cpld/boot_cpld.v

index 3c53a799288ac7014d0094ec24fb353a0b68a3fa..1769f7c03ba26af2ee455128d5cac82eadd005c2 100755 (executable)
@@ -47,6 +47,15 @@ module boot_cpld
    
    assign       CPLD_CLK = CFG_CCLK;
    assign       DEBUG[8:0] = { CLK_25MHZ, SD_nCS, SD_CLK, SD_Din, CFG_CCLK, CFG_PROG_B, CFG_INIT_B, CFG_DONE, CFG_Din};
+
+   // Handle cutover to FPGA control of SD
+   wire         fpga_takeover = ~CPLD_misc;
+   wire         SD_CLK_int, SD_nCS_int, SD_Din_int, CFG_Din_int;
+
+   assign       SD_CLK = fpga_takeover ? START : SD_CLK_int;
+   assign       SD_nCS = fpga_takeover ? MODE : SD_nCS_int;
+   assign       SD_Din = fpga_takeover ? DONE : SD_Din_int;
+   assign       CFG_Din = fpga_takeover ? SD_Dout : CFG_Din_int;
    
    spi_boot #(.width_set_sel_g(4),  // How many sets (16)
              .width_bit_cnt_g(6),  // Block length (12 is faster, 6 is minimum)
@@ -61,10 +70,10 @@ module boot_cpld
              .reset_i(POR),
              
              // To SD Card
-             .spi_clk_o(SD_CLK), 
-             .spi_cs_n_o(SD_nCS),
+             .spi_clk_o(SD_CLK_int), 
+             .spi_cs_n_o(SD_nCS_int),
              .spi_data_in_i(SD_Dout), 
-             .spi_data_out_o(SD_Din), 
+             .spi_data_out_o(SD_Din_int), 
              .spi_en_outs_o(en_outs), 
              
              // Data Port
@@ -79,7 +88,7 @@ module boot_cpld
              .cfg_init_n_i(CFG_INIT_B), 
              .cfg_done_i(CFG_DONE), 
              .cfg_clk_o(CFG_CCLK), 
-             .cfg_dat_o(CFG_Din)
+             .cfg_dat_o(CFG_Din_int)
              );
    
 endmodule // boot_cpld