Module: vin_tlc549c


Ports:

DirectionSizeName
outputadc_clk
outputadc_cs_n
output[7:0]adc_data
inputadc_data_in
inputclk

Parameter:

ParameterDefault
SPEED0x1824
[ZOOM]
G vintlc549c vin_tlc549c PORTS adc_clk adc_cs_n adc_data[7:0] adc_data_in clk vin_tlc549c.v pins PINS output PIN_3 input PIN_87 output PIN_86 input PIN_88 input PIN_91 input PIN_90 input PIN_89 input PIN_132 input PIN_99 input PIN_98 output PIN_129 input PIN_128 output PIN_127 output PIN_85 output PIN_137 output PIN_135 output PIN_136 output PIN_133 output PIN_143 output PIN_144 output PIN_1 output PIN_141 output PIN_142 output PIN_138 output PIN_2 input PIN_24 rio rio PORTS BLINK_LED INTERFACE_UART_RX INTERFACE_UART_TX SW_S1 SW_S2 SW_S3 SW_S4 VIN5_IR VIN6_CLK VIN6_DATA VIN7_CS VIN7_MISO VIN7_SCLK VOUT4_FREQUENCY VOUT8_7SEG_EN1 VOUT8_7SEG_EN2 VOUT8_7SEG_EN3 VOUT8_7SEG_EN4 VOUT8_7SEG_SEG_A VOUT8_7SEG_SEG_B VOUT8_7SEG_SEG_C VOUT8_7SEG_SEG_D VOUT8_7SEG_SEG_E VOUT8_7SEG_SEG_F VOUT8_7SEG_SEG_G sysclk blink1     uart1     vin_ir5     vin_ps26     vin_tlc549c7 VIN7_SCLK VIN7_CS PV7 VIN7_MISO sysclk     vout_7seg8     vout_frequency4 rio.v pins:PIN_3->rio:BLINK_LED pins:PIN_87->rio:INTERFACE_UART_RX pins:PIN_86->rio:INTERFACE_UART_TX pins:PIN_88->rio:SW_S1 pins:PIN_91->rio:SW_S2 pins:PIN_90->rio:SW_S3 pins:PIN_89->rio:SW_S4 pins:PIN_132->rio:VIN5_IR pins:PIN_99->rio:VIN6_CLK pins:PIN_98->rio:VIN6_DATA pins:PIN_129->rio:VIN7_CS pins:PIN_128->rio:VIN7_MISO pins:PIN_127->rio:VIN7_SCLK pins:PIN_85->rio:VOUT4_FREQUENCY pins:PIN_137->rio:VOUT8_7SEG_EN1 pins:PIN_135->rio:VOUT8_7SEG_EN2 pins:PIN_136->rio:VOUT8_7SEG_EN3 pins:PIN_133->rio:VOUT8_7SEG_EN4 pins:PIN_143->rio:VOUT8_7SEG_SEG_A pins:PIN_144->rio:VOUT8_7SEG_SEG_B pins:PIN_1->rio:VOUT8_7SEG_SEG_C pins:PIN_141->rio:VOUT8_7SEG_SEG_D pins:PIN_142->rio:VOUT8_7SEG_SEG_E pins:PIN_138->rio:VOUT8_7SEG_SEG_F pins:PIN_2->rio:VOUT8_7SEG_SEG_G pins:PIN_24->rio:sysclk rio:vin_tlc549c7_adc_clk->vintlc549c:adc_clk rio:vin_tlc549c7_adc_cs_n->vintlc549c:adc_cs_n rio:vin_tlc549c7_adc_data->vintlc549c:adc_data rio:vin_tlc549c7_adc_data_in->vintlc549c:adc_data_in rio:vin_tlc549c7_clk->vintlc549c:clk
G vintlc549c vin_tlc549c PORTS adc_clk adc_cs_n adc_data[7:0] adc_data_in clk vin_tlc549c.v pins PINS output PIN_3 input PIN_87 output PIN_86 input PIN_88 input PIN_91 input PIN_90 input PIN_89 input PIN_132 input PIN_99 input PIN_98 output PIN_129 input PIN_128 output PIN_127 output PIN_85 output PIN_137 output PIN_135 output PIN_136 output PIN_133 output PIN_143 output PIN_144 output PIN_1 output PIN_141 output PIN_142 output PIN_138 output PIN_2 input PIN_24 rio rio PORTS BLINK_LED INTERFACE_UART_RX INTERFACE_UART_TX SW_S1 SW_S2 SW_S3 SW_S4 VIN5_IR VIN6_CLK VIN6_DATA VIN7_CS VIN7_MISO VIN7_SCLK VOUT4_FREQUENCY VOUT8_7SEG_EN1 VOUT8_7SEG_EN2 VOUT8_7SEG_EN3 VOUT8_7SEG_EN4 VOUT8_7SEG_SEG_A VOUT8_7SEG_SEG_B VOUT8_7SEG_SEG_C VOUT8_7SEG_SEG_D VOUT8_7SEG_SEG_E VOUT8_7SEG_SEG_F VOUT8_7SEG_SEG_G sysclk blink1     uart1     vin_ir5     vin_ps26     vin_tlc549c7 VIN7_SCLK VIN7_CS PV7 VIN7_MISO sysclk     vout_7seg8     vout_frequency4 rio.v pins:PIN_3->rio:BLINK_LED pins:PIN_87->rio:INTERFACE_UART_RX pins:PIN_86->rio:INTERFACE_UART_TX pins:PIN_88->rio:SW_S1 pins:PIN_91->rio:SW_S2 pins:PIN_90->rio:SW_S3 pins:PIN_89->rio:SW_S4 pins:PIN_132->rio:VIN5_IR pins:PIN_99->rio:VIN6_CLK pins:PIN_98->rio:VIN6_DATA pins:PIN_129->rio:VIN7_CS pins:PIN_128->rio:VIN7_MISO pins:PIN_127->rio:VIN7_SCLK pins:PIN_85->rio:VOUT4_FREQUENCY pins:PIN_137->rio:VOUT8_7SEG_EN1 pins:PIN_135->rio:VOUT8_7SEG_EN2 pins:PIN_136->rio:VOUT8_7SEG_EN3 pins:PIN_133->rio:VOUT8_7SEG_EN4 pins:PIN_143->rio:VOUT8_7SEG_SEG_A pins:PIN_144->rio:VOUT8_7SEG_SEG_B pins:PIN_1->rio:VOUT8_7SEG_SEG_C pins:PIN_141->rio:VOUT8_7SEG_SEG_D pins:PIN_142->rio:VOUT8_7SEG_SEG_E pins:PIN_138->rio:VOUT8_7SEG_SEG_F pins:PIN_2->rio:VOUT8_7SEG_SEG_G pins:PIN_24->rio:sysclk rio:vin_tlc549c7_adc_clk->vintlc549c:adc_clk rio:vin_tlc549c7_adc_cs_n->vintlc549c:adc_cs_n rio:vin_tlc549c7_adc_data->vintlc549c:adc_data rio:vin_tlc549c7_adc_data_in->vintlc549c:adc_data_in rio:vin_tlc549c7_clk->vintlc549c:clk

Child-Modules



Source

Filename: vin_tlc549c.v
2 module vin_tlc549c
3     #(parameter SPEED = 24)
4     (
5         input		clk,
6         input		adc_data_in,
7         output 		adc_clk,
8         output reg	adc_cs_n,
9         output reg	[7:0]adc_data
10     );
11 	
12 	reg	[7:0] adc_data_buf;
13 	reg	[3:0] cnt;
14 	reg adc_clk_valid;
15 	reg adc_cs_n_valid;
16 
17     reg clk_1m;
18     reg [31:0]counter_1m;
19     always @(posedge clk) begin
20         if (counter_1m == 0) begin
21             counter_1m <= SPEED;
22             clk_1m <= ~clk_1m;
23         end else begin
24             counter_1m <= counter_1m - 1;
25         end
26     end
27 
28     reg clk_40k;
29     reg [31:0]counter_40k;
30     always @(posedge clk_1m) begin
31         if (counter_40k == 0) begin
32             counter_40k <= 12;
33             clk_40k <= ~clk_40k;
34         end else begin
35             counter_40k <= counter_40k - 1;
36         end
37     end
38 
39 	always @(posedge clk_1m) begin
40 		if(clk_40k == 0) begin
41 			cnt <= 0;
42 		end else if(cnt == 10) begin
43 			cnt <= 10;
44 		end else begin
45 			cnt <= cnt + 1'b1;
46         end
47 		adc_clk_valid <= !((cnt == 0) | (cnt == 1) | (cnt == 10));
48 		adc_cs_n <= (cnt == 0) | (cnt == 10);
49     end
50 	
51 	assign adc_clk = adc_clk_valid ? clk_1m : 1'b0;
52 
53 	always @(posedge adc_clk) begin
54 		if(adc_cs_n == 0) begin
55 			adc_data_buf <= {adc_data_in, adc_data_buf[7:1]};
56         end
57     end
58 
59 	always @(posedge clk_40k) begin
60 		adc_data <= adc_data_buf;
61     end
62 		
63 endmodule