| 12345678910111213141516171819202122232425262728293031323334353637383940 |
- `timescale 1 ns / 1 ps
- module axis_red_pitaya_adc #
- (
- parameter integer ADC_DATA_WIDTH = 14
- )
- (
- // System signals
- input wire aclk,
- // ADC signals
- output wire adc_csn,
- input wire [15:0] adc_dat_a,
- input wire [15:0] adc_dat_b,
- // Master side
- output wire m_axis_tvalid,
- output wire [31:0] m_axis_tdata
- );
- localparam PADDING_WIDTH = 16 - ADC_DATA_WIDTH;
- reg [ADC_DATA_WIDTH-1:0] int_dat_a_reg;
- reg [ADC_DATA_WIDTH-1:0] int_dat_b_reg;
- always @(posedge aclk)
- begin
- int_dat_a_reg <= adc_dat_a[15:PADDING_WIDTH];
- int_dat_b_reg <= adc_dat_b[15:PADDING_WIDTH];
- end
- assign adc_csn = 1'b1;
- assign m_axis_tvalid = 1'b1;
- assign m_axis_tdata = {
- {(PADDING_WIDTH+1){int_dat_b_reg[ADC_DATA_WIDTH-1]}}, ~int_dat_b_reg[ADC_DATA_WIDTH-2:0],
- {(PADDING_WIDTH+1){int_dat_a_reg[ADC_DATA_WIDTH-1]}}, ~int_dat_a_reg[ADC_DATA_WIDTH-2:0]};
- endmodule
|