【问题标题】:Verilog Peak detectionVerilog 峰值检测
【发布时间】:2018-05-21 16:18:40
【问题描述】:

我是 Verilog 的新手。我正在尝试检测 FPGA 上 ADC 的输入信号的峰峰值电压。在此之前,我想测试一个简单但相似的代码,它可以找到一组 4 位并行输入的最小值和最大值。

最初我将pk_lowpk_high 指定为第一个输入,这取决于即将到来的输入pk_lowpk_high 应该改变还是保持不变。但在模拟中我看到pk_low 的值始终为0。pk_highpp_voltage(峰峰值电压)是未知的(X)。

有什么问题?

module peak_voltage (clk, parallel_in, pk_high, pk_low, pp_voltage);

input clk;
input wire [3:0] parallel_in;
output reg [3:0] pk_high;
output reg [3:0] pk_low;
output wire [3:0] pp_voltage;

reg state;

parameter st0 = 'd0;
parameter st1 = 'd1;
parameter st2 = 'd2;

initial begin
    state = st0;
    pk_high <= parallel_in;
    pk_low <= parallel_in;
end


always @ (posedge clk) begin

    if (parallel_in > pk_high)begin
        state = st1;
    end else if (parallel_in < pk_low) begin
        state = st2;
    end else begin
        state = st0;
    end

end

always @(*) begin

    case (state)

        st0: begin
            pk_low <= pk_low;
            pk_high <= pk_high;
        end

        st1: begin
            pk_low <= pk_low;
            pk_high <= parallel_in;
        end

        st2: begin
            pk_low <= parallel_in;
            pk_high <= pk_high;     
        end
    endcase
end

assign pp_voltage = pk_high - pk_low;

endmodule

【问题讨论】:

  • 错误太多了,建议你看看其他一些Verilog代码。尤其是如何使用时钟、阻塞与非阻塞分配、复位。还要始终添加您的测试台。见stackoverflow.com/help/mcve
  • 对不起。我从来没有使用过测试台。我正在使用 Quartus 软件中的功能仿真进行仿真。我的第一个总是阻塞的分配应该是非阻塞的吗?

标签: verilog adc analog-digital-converter


【解决方案1】:

您已将其编码为状态机,您应该在其中为您的案例选择器进行连续分配。可能分配 3 位来制作 one-hot 向量。

您在此逻辑中有非阻塞赋值 - 您需要对组合逻辑使用阻塞。

您缺少峰值高/低值的任何显式存储。也许你可以推断出这种风格的一些闩锁,但你的意思不太清楚。

定义一些触发器,由 clk 计时,具有非阻塞分配。在这些每个周期中捕获更新的结果。

请记住,verilog 并行执行所有语句,您不应该考虑执行顺序。而是考虑明确捕获您的结果,并为这些结果计算“下一个”值。

您可以将您的代码视为:

  1. 检查高或低的更新
  2. 计算新值
  3. 捕捉新价值

你做错了 (1),完全错过了 (3)。将 (1) 和 (2) 一起编码可能有意义,但这取决于您希望如何表达函数。

assign new_level = (in > level) ? in : level;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-01
    • 1970-01-01
    • 2012-11-11
    相关资源
    最近更新 更多