SOC设计:关于reset的细节

有如下几个信号

1、时钟:clk_top

2、总的reset信号:rstn_top

3、scan的reset信号:scan_rstn

4、软件复位信号:rstn_soft_sub

5、scan模式信号:scan_mode

6、reset bypass 信号:scan_rstn_sel

功能:

一:在非test模式时,也就是test_mode=1'd0时,如果rstn_soft_sub=1,则rstn_top直接透传过去给reset_soft_block里的rstn,然后rstn再经过2拍同步处理,然后产生rstn_sub。这里涉及到了异步复位,同步释放知识点。

二:正常功能仿真时,scan_mode = 1'd0 和scan_rstn_sel=0,直观点讲,rstn_sub是由rstn_top同步处理2拍后产生。

reset_soft_block u0_sub_rstn_gen (/*autoinst*/

.clk (clk_top ), // input

.rstn0 (rstn_top ), // input

.rstn1 (scan_rstn ), // input

.rstn_soft (rstn_soft_sub ), // input

.test_mode (scan_mode ), // input

.rst_bypass (scan_rstn_sel ), // input

.rstn_out (rstn_sub ) // output

);

reset_soft_block功能

module reset_soft_block (

clk,

rstn0,

rstn1,

rstn_soft,

test_mode,

rst_bypass,

rstn_out

);

input clk;

input rstn0;

input rstn1;

input rstn_soft;

input test_mode;

input rst_bypass;

output rstn_out;

wire rstn;

wire rstnsync;

//assign rstn = rstn0 & (rstn_soft | test_mode);

macro_oa21 C1 ( .b0(rstn0), .a0(rstn_soft), .a1(test_mode), .o(rstn) );

resetsync u_rstn_sync (.clk(clk), .rstn(rstn), .rstnsync(rstnsync));

macro_mux C2 ( .d0(rstnsync), .d1(rstn1), .s(rst_bypass), .o(rstn_out) );

endmodule

module resetsync ( clk, rstn, rstnsync);

input clk;

input rstn;

output rstnsync;

wire rstnsync1;

macro_sdfr u_rstnsync1(.CK(clk), .D(rstn), .RB(rstn), .Q(rstnsync1));

macro_sdfr u_rstnsync2(.CK(clk), .D(rstnsync1), .RB(rstn), .Q(rstnsync));

endmodule

相关推荐
m0_547486666 天前
《数字电路与逻辑设计:基于Verilog HDL和Quartus Prime》全套PPT课件2026
verilog·数字电路·数字逻辑电路
学习FPGA的电气小兴兴7 天前
基于FPGA的CORDIC旋转模式实现sin和cos运算_采用EGo1板卡上板验证【FPGA数字信号处理第5讲】
fpga开发·信号处理·数字信号处理·verilog·cordic·ego1·fpga设计入门与提高
啄缘之间14 天前
1.【SVA】什么是SVA?
经验分享·学习·测试用例·verilog·sva
SDAU200515 天前
verilog计数器中增减操作之资源占用
verilog
学习FPGA的电气小兴兴18 天前
基于FPGA的CORDIC向量模式实现arctan运算,Verilog HDL实现
嵌入式硬件·fpga开发·数字信号处理·verilog·fpga·cordic·arctan
学习FPGA的电气小兴兴25 天前
基于FPGA的CORDIC旋转模式实现sin和cos运算
fpga开发·信号处理·数字信号处理·verilog·fpga·verilog hdl·cordic
FPGA开源工坊1 个月前
ISP图像处理--Bayer Raw格式
图像处理·人工智能·verilog·fpga·isp
qq_150841991 个月前
用verilog语言在Quartus Prime Lite 18中对CPLD EPM570T100C5进行编程
verilog·quartus·cpld
芯路行者2 个月前
4.4 HDLBits —— 更多时序逻辑电路
fpga开发·verilog·fpga·hdlbits
芯路行者2 个月前
7 HDLBits —— 验证:编写测试激励文件
fpga开发·verilog·fpga·hdlbits