我正在使用 ICE40 和 Verilog 进行设计,并正在寻找可用于在上电时重置状态的信号。 FPGA 和 ICE40 是否提供特定的内置上电复位 (POR) 信号,还是我需要自己实现它,例如有一些计数器或延迟。
我的疑虑是,即使我实现了一个状态机来生成电源复位,如何在没有 POR 信号的情况下在上电时复位它?有点像先有鸡还是先有蛋。
我使用的开发板:Upduino3 https://github.com/tinyvision-ai-inc/UPduino-v3.0/blob/master/Board/v3.0/UPduino_v3.0.pdf
其使用的FPGA:ICE40UP5K-SG48ITR
工具链:APIO cli https://github.com/fpgawars/apio
该板没有重置按钮。
FPGA 配置有一个上电复位(原理图上称为 CRESET_N),该复位不会传播到 FPGA 结构中(无法对此进行 verilog 访问)。
在这里找到了一些答案github。
有好几个,这个比较简洁:
“点阵芯片不支持寄存器上的初始值。它们在启动和重置时被清除。几乎没有工具可以解决这个问题,因此据我所知,您需要路由初始化信号。我通常会做这样的事情:“
reg ready = 0
always @(posedge clk) begin
if (ready)
<run>
else begin
<initialize>
ready = 1
end
end
建议您点击其他链接以了解链接中提出的各种想法。