HierarchyFilesModulesSignalsTasksFunctionsHelp

[Up: fft_sample ad1]
module adc_driverIndex(clk,adc_cs_b,adc_clk,adc_data0,adc_data1,v0,v1,rdy);

   input clk;
   output adc_cs_b,adc_clk;
   input adc_data0;
   input adc_data1;
   output [11:0] v0,v1;		// ADC results - voltages
   output 	 rdy;		// high for one clk cycle on conversion finish
   
   // drive the digilent ADC board, doing continuous conversions
   // rdy goes high for one clk cycle for each new conversion
   //
   // we use a counter to clock out the bits
   // note that the ADCS7476 serial data is valid on falling edges
   // of the adc clock.  

   reg [6:0] 	count;
   wire 	adc_cs_b = count<32 ? 0 : 1;
   wire 	adc_clk = count[0];
   wire 	rdy = count==32 ? 1 : 0;
   reg [11:0] 	tmp0, tmp1;
   reg [11:0] 	v0,v1;
   reg [31:0] 	delay;
   
   always @(posedge clk)
     begin
	delay <= (delay == 2) ? 0 : delay + 1;
	if(delay==0) begin
	   count <= count==46 ? 0 : count + 1;
	   tmp0 <= (~adc_clk|adc_cs_b) ? tmp0 : {tmp0[10:0],adc_data0};
	   tmp1 <= (~adc_clk|adc_cs_b) ? tmp1 : {tmp1[10:0],adc_data1};
	   v0 <= rdy ? tmp0 : v0;
	   v1 <= rdy ? tmp1 : v1;
	end
     end

endmodule // adc_driver

HierarchyFilesModulesSignalsTasksFunctionsHelp

This page: Created:Thu Dec 8 21:40:41 2005
From: ./adc_driver.v

Verilog converted to html by v2html 7.30 (written by Costas Calamvokis).Help