verilog 如何循环比较数据大小?

来源:百度知道 编辑:UC知道 时间:2024/05/27 03:39:43
连续脉冲输出,AD采集输出,寻每个峰值,
脉冲信号:2~3us,12位并行ad40MHz。我的思路是这样的;将AD输出进行比较,每一个输出值和它前后的数进行比较,比如ad连续输出A、B、C、D、···,将A和B比较,A(假设A>B)再与C比较,这样循环比较,并记录最大值。我现在碰到的问题是,怎么实现循环比较,

1.用一个寄存器存最大数,如果输入的数比寄存器里的数大,就替换,如果小于,就不变,然后寄存器里的数就是最大值了

input [11:0] digital_out; //AD的输出数据

reg [11:0]max_num; //如果是多位的,就声明多位的reg
always @(posedge clk or negedge reset_n)begin
if(!reset_n)
max_num <= 12'b0;
else if(digital_out > max_num)
max_num <= digital_out;
end

不太详细哇