Analog-to-Digital Converters Lecture L11.2 (Verilog) Section 11.3
Analog-to-Digital Converters Converts analog signals to digital signals 8-bit: 0 – 255 10-bit: 0 – 1023 12-bit: 0 – 4095 Successive Approximation
Method of Successive Approximation
Implementing Successive Approximation
ADC0831 8-Bit Serial I/O A/D Converter
ADC0831 Timing
Voltmeter Logic Block Diagram
module binbcd9(B,P); input [8:0] B; output [10:0] P; reg [10:0] P; reg [19:0] z; integer i; always @(B) begin for(i = 0; i <= 19; i = i+1) z[i] = 0; z[11:3] = B; for(i = 0; i <= 5; i = i+1) if(z[12:9] > 4) z[12:9] = z[12:9] + 3; if(z[16:13] > 4) z[16:13] = z[16:13] + 3; z[19:1] = z[18:0]; end P = z[19:9]; endmodule
Q3 Q4 Q5 Q6 Q7 Q3 (CLK) Q6 & Q7 (CS) Data Out (DO) !Q3 shift (S) 7 6 5 4 3 2 1 0 !Q3 shift (S) [Q7..Q4] == 10 (Capture) !Q3 display (D)
Q1 Q0 1.0 MHz Q2 0.5 MHz Q3 0.25 MHz 2.0 MHz Clock 4.0 MHz
Q3 CLK Q7 Q6 CS DO Xilinx XC95108 PC84 CPLD Clock Divider Counter Q7..Q0 4 MHz Clock ADC0831 Interface
Q3 Q4 Q5 Q6 Q7 Q3 (CLK) Q6 & Q7 (CS) Data Out (DO) !Q3 shift (S) !Q3 display (D) [Q7..Q4] == 10 (Capture) Q6 & Q7 (CS) Q3 Q4 Q5 Q6 Q7 Q3 (CLK) Data Out (DO) 7 6 5 4 3 2 1 0 !Q3 shift (S)
Count Detect Logic (Q7..Q4 = 10102) Capture Xilinx XC95108 PC84 CPLD Clock Divider Counter Q7..Q0 4 MHz Clock Q3 Q7 Q6 CLK CS DO ADC0831 Interface Display Register D7..D0 Clock Load Shift Register S7..S0 Data !Q3
Simulation of adconv
Binary-to-BCD Converter 7-Segment Decoder 7 Voltage Display a..g Binary-to-BCD Converter Hundreds Tens Units 7-Segment Decoder 7 Voltage Display a..g Xilinx XC95108 PC84 CPLD Display Register D7..D0 Clock Load (Shift Register S7..S0) (Capture) (!Q3) dpt 1