news 2026/5/4 11:21:16

计算机系统要素:测试文件解读

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
计算机系统要素:测试文件解读
// 加载16位与门的硬件描述文件 load And16.hdl, // 指定测试输出文件 output-file And16.out, // 指定对比的标准答案文件 compare-to And16.cmp, // 定义输出格式:a(二进制16位)、b(二进制16位)、out(二进制16位) output-list a%B1.16.1 b%B1.16.1 out%B1.16.1; // 测试用例1:全0 & 全0 → 全0 set a %B0000000000000000, set b %B0000000000000000, eval, // 执行运算 output; // 输出结果 // 测试用例2:全0 & 全1 → 全0 set a %B0000000000000000, set b %B1111111111111111, eval, output; // 测试用例3:全1 & 全1 → 全1 set a %B1111111111111111, set b %B1111111111111111, eval, output; // 测试用例4:交替位 & 反交替位 → 全0 set a %B1010101010101010, set b %B0101010101010101, eval, output; // 测试用例5:部分重叠位 & 部分重叠位 → 重叠位保留 set a %B0011110011000011, set b %B0000111111110000, eval, output; // 测试用例6:随机位组合 → 逐位与运算 set a %B0001001000110100, set b %B1001100001110110, eval, output;

关键知识点解析:

一、指令作用

  • load:加载待测试的硬件描述文件(And16.hdl);
  • output-file:指定测试结果输出文件;
  • compare-to:指定标准答案文件,用于自动比对测试结果;
  • output-list:定义输出格式(二进制 16 位,显示 a、b、out);
  • set:设置输入信号 a/b 的值;
  • eval:执行硬件逻辑运算;
  • output:输出运算结果。

二、a%B1.16.1语法完全解析

在 Hack 硬件测试脚本(.tst)的output-list指令中,a%B1.16.1输出格式控制符,用于定义信号a的显示规则,拆解如下:

组成部分含义
a待显示的信号名(此处指 16 位输入信号 a,可替换为 b/out 等其他信号);
%格式符分隔符,标识后续为格式定义;
B数值显示进制:B= 二进制(Binary),其他可选值:D= 十进制、H= 十六进制;
1「位数对齐规则」:1表示高位在前(大端显示),若为0则低位在前;
.16「固定显示位数」:强制显示 16 位,不足补 0(核心!保证 16 位信号完整显示);
.1「分组间隔」:1表示无分组(连续显示),若为4则每 4 位分隔(如1111_0000);

核心作用

a%B1.16.1最终效果:将 16 位信号 a 以「高位在前、无分组、补 0 至 16 位」的二进制形式完整显示

举例说明

假设信号a的实际值是二进制1010(仅 4 位),不同格式符的显示效果对比:

格式符显示结果说明
a%B1.16.10000000000001010补 0 至 16 位,高位在前
a%B0.16.11010000000000000补 0 至 16 位,低位在前
a%B1.8.100001010补 0 至 8 位,高位在前
a%B1.16.40000_0000_0000_101016 位、每 4 位分组显示
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/30 23:39:54

从“能跑”到“可持续”:Java 在长期演进系统中的工程价值再思考

在技术更新频率越来越快的今天,Java 常常被贴上“成熟”“稳定”“传统”的标签。在一些新技术浪潮中,它甚至被误解为“不够前沿”。但在真实的大型系统、核心业务平台、金融级与工业级系统中,Java 依然是最常见、最可靠的选择之一。 如果仅从…

作者头像 李华
网站建设 2026/4/28 13:57:15

从“哑巴英语”到脱口而出:三条实战路径揭晓

“背了十年单词,一开口还是小学生。”——这句话戳中过太多人。口语之所以难,并非难在发音,而是难在“即时组织即时输出”的双线程任务。过去三个月,我靠每天 25 分钟“微习惯”训练,把雅思口语从 5.5 拉到 7.0&#x…

作者头像 李华
网站建设 2026/4/29 4:50:22

5.7W25Q64 实验(上)-嵌入式铁头山羊STM32笔记

目录 实验目标 实验目标: 通过 MCU 的 SPI 总线, 控制 W25Q64 存储一字节数据; 然后将存储的数据通过 SPI 读出来 上期纠错 问题 1:PA15 需要重映射,不能当做普通 IO 直接作为 CS 引脚 问题 2:PA15 初…

作者头像 李华
网站建设 2026/5/3 16:35:35

Groovy对业务能力扩展

一、前言因为之前在项目中使用了Groovy对业务能力进行一些扩展,效果比较好,所以简单记录分享一下,这里你可以了解:为什么选用Groovy作为脚本引擎了解Groovy的基本原理和Java如何集成Groovy在项目中使用脚本引擎时做的安全和性能优…

作者头像 李华
网站建设 2026/5/2 6:41:43

[GDOUCTF 2023]Shellcode

第一次打CTF——PWN篇学习笔记18向name中注入shellcode再栈溢出返回到该地址执行即可,注意shellcode长度不能超过0x25from pwn import * import struct ​ context.arch amd64 context.os linux ​ #io process(./pwn) io remote("node4.anna.nssctf.cn&qu…

作者头像 李华
网站建设 2026/4/24 1:00:56

UI自动化测试:Jenkins配置

🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快团队下半年的目标之一是实现自动化测试,这里要吐槽一下,之前开发的测试平台了,最初的目的是用来做接口自动化测试和性能测试&…

作者头像 李华