当前位置: 首页 > news >正文

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
 

http://www.lryc.cn/news/318585.html

相关文章:

  • 支小蜜AI校园防欺凌系统可以使用在宿舍吗?
  • 外卖平台订餐流程架构的实践
  • [AIGC] Spring Boot中的切面编程和实例演示
  • 各个类型和Json类型的相互转换
  • C语言:操作符详解(下)
  • 电商场景下 ES 搜索引擎的稳定性治理实践
  • jdk8与jdk17的区别。springboot2.x与springboot3.x的区别
  • Pytest测试中的临时目录与文件管理!
  • arduino 编程esp8266
  • 基于springboot实现数据资产管理系统项目【项目源码+论文说明】计算机毕业设计
  • 在Java中如何将十进制转换为二进制,八进制,十六进制以及它们之间的互相转换
  • AK/SK加密认证
  • 前端实现websocket通信讲解(vue2框架)
  • 解决ffmpeg播放摄像头延时的问题(项目案例使用有效)
  • Android 音频系统
  • Java必须掌握的二叉堆知识点(含面试大厂题含源码)
  • [Java、Android面试]_03_java内存管理:虚拟内存、堆、垃圾回收
  • PTA题解 --- 求整数段和(C语言)
  • virsh管理虚拟机的命令行工具
  • 数据集成平台选型建议
  • Centos8安装Docker,使用阿里云源
  • FFmpeg概念和简单使用
  • OJ_最长公共子序列
  • SpringBoot拦截器获取token用户对象优雅地传递到Controller层
  • 从零开始学HCIA之SDN03
  • C语言深度理解之——结构体内存对齐
  • LeetCode 热题 100 | 回溯(二)
  • 混合内容错误https中加载了http
  • 游戏免费下载平台模板源码
  • 鸿蒙视频播放的实现