把上述代码的ADC改成10bit
时间: 2024-03-27 09:38:37 浏览: 55
adc.rar_32 bit ADC
好的,如果要将上述代码的ADC位宽从8位改为10位,只需要将参数化的WIDTH从8改为10即可。同时,需要将输入信号i_sample_ADC的位宽也从8位改为10位。改进后的代码如下所示:
```
module Calibration (
input i_clk,
input i_rst,
input signed [7:0] i_an,
input signed [7:0] i_bn,
input i_sample_valid,
input unsigned [9:0] i_sample_ADC,
output o_T_valid,
output signed [11:0] o_T
);
parameter WIDTH = 10;
reg signed [WIDTH+3:0] T = 0;
reg T_valid = 0;
wire signed [WIDTH+2:0] sample_ADC = {{WIDTH+1{1'b0}}, i_sample_ADC};
always @(posedge i_clk) begin
if (i_rst) begin
T <= 0;
T_valid <= 0;
end
else if (i_sample_valid) begin
T <= sample_ADC * i_an + i_bn;
T_valid <= 1;
end
else begin
T_valid <= 0;
end
end
assign o_T_valid = T_valid;
assign o_T = T[WIDTH+2:3];
endmodule
```
这样改进后的代码可以支持10位的ADC输入信号,并且仍然保持了参数化的可配置性。
阅读全文