mt6739 Android12出现 red state

    问题现象:

    video_printf("Red State\n\n");
    video_printf("Your device has failed verification and may not\n");
    video_printf("work properly.\n");
    video_printf("Please download %s image with correct signature\n", show_img_name);
    video_printf("or disable verified boot.\n");
    video_printf("Your device will reboot in 5 seconds.\n");

1、md5sum /dev/block/by-name/super  检测分区完整性

2、检测坏块:

2.1  eMMC Brickbug Check  apk 测试

2.2  # 非破坏性只读测试(安全)

busybox badblocks -sv /dev/block/mmcblk0pXX

# 破坏性写测试(⚠️ 会擦除数据!)

busybox badblocks -svw /dev/block/mmcblk0pXX

在使用 Verific 进行 SystemVerilog/Verilog 代码编译或综合时,如果出现 `ERROR instantiating unknown module 'edb_top'`(VERI-1063 EFX-0021)错误提示,则表明工具无法找到名为 `edb_top` 的模块定义。该问题通常出现在设计文件未正确解析、模块未被包含进编译流程,或模块名称拼写错误等情况中。 ### 原因分析 1. **模块定义缺失** 模块 `edb_top` 的源文件可能未被加入到编译流程中,导致 Verific 在解析过程中无法识别该模块。需要确认是否提供了 `edb_top` 的定义文件,并确保其路径已被正确配置[^1]。 2. **模块名称拼写错误** 实例化时的模块名与定义中的模块名不一致,包括大小写差异。Verilog 是区分大小写的语言,因此必须确保实例化语句中的模块名与定义完全匹配[^2]。 3. **作用域或命名空间问题** 如果 `edb_top` 被定义在特定的 package 或 module 内部,而实例化时未使用正确的前缀或导入方式,也可能导致无法识别该模块[^3]。 4. **文件类型未正确加载** Verific 支持多种 HDL 文件格式(如 `.v`, `.sv`, `.vh` 等),如果文件类型未被正确识别或指定为相应语言标准,可能导致模块未被解析。 5. **综合工具配置不当** 在某些情况下,综合工具(如 Synopsys Design Compiler、Cadence Genus 或 Mentor Graphics Precision)调用 Verific 引擎时,若命令脚本未将所有必要的源文件传递给 Verific,也可能导致模块丢失。 --- ### 解决方法 #### 方法一:检查模块定义是否存在 确保 `edb_top` 模块在某个源文件中正确定义,并且该文件已加入编译流程。例如: ```verilog module edb_top ( input clk, input rst_n, output reg [7:0] data_out ); // Module implementation endmodule ``` 确认该文件是否被添加到 Verific 的读取命令中,例如在 Tcl 脚本中使用如下命令: ```tcl read_verilog -sv edb_top.sv ``` #### 方法二:检查模块实例化语法 确保在顶层模块或其他模块中对 `edb_top` 的实例化语法正确无误: ```verilog edb_top u_edb_top ( .clk(clk), .rst_n(rst_n), .data_out(data_out) ); ``` 同时验证模块端口信号是否匹配,避免因接口不一致导致综合失败。 #### 方法三:检查文件路径和工具配置 确保所有相关源文件路径在综合脚本中正确设置。例如,在 Design Compiler 中应使用 `-f` 参数指定文件列表,或在脚本中逐个添加文件: ```tcl set_app_var search_path [list . ../rtl] read_verilog -sv demo_io.sv edb_top.sv top_module.sv ``` #### 方法四:启用 Verific 调试输出 在调试阶段可启用 Verific 的详细日志输出功能,帮助定位模块未定义的具体原因。例如在脚本中添加: ```tcl set_option -verbose true ``` 这将显示更详细的解析信息,有助于判断哪些模块未被正确加载。 --- ### 示例代码 以下是一个完整的示例结构,演示如何在顶层模块中正确实例化 `edb_top` 模块: ```verilog // edb_top.sv module edb_top ( input clk, input rst_n, output reg [7:0] data_out ); always @(posedge clk or negedge rst_n) begin if (!rst_n) data_out <= 8'h00; else data_out <= 8'hFF; end endmodule ``` ```verilog // demo_io.sv module demo_io ( input clk, input rst_n, output reg [7:0] out ); wire [7:0] data_from_edb; edb_top u_edb_top ( .clk(clk), .rst_n(rst_n), .data_out(data_from_edb) ); always @(posedge clk or negedge rst_n) begin if (!rst_n) out <= 8'h00; else out <= data_from_edb; end endmodule ``` 确保上述两个文件都被加入到综合流程中: ```tcl read_verilog -sv edb_top.sv demo_io.sv elaborate demo_io ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值