VCS编译与仿真
前言:最近读到一篇关于芯片验证工具VCS编译与仿真的文章,感觉写得特别好遂整理成本篇文章,文章出处如下:参考:VCS 编译与仿真参数、流程与文件结构解析
VCS 编译仿真流程VCS 核心工作模式是”两阶段流程”,核心理念是编译与仿真两阶段分离
优势:
效率:设计代码只需编译一次,就可以通过不同的运行时参数进行多次不同的仿真(例如,运行不同的测试用例、使用不同的随机种子)。这避免了每次运行都重新解析和翻译整个设计的开销
灵活性:编译时关注的是如何“构建”仿真器,例如需要包含哪些调试信息、启用何种语言特性。而运行时则关注如何“使用”这个仿真器,例如具体跑哪个测试、日志详细程度如何
可移植性:生成的 simv 文件理论上可以在相同架构和操作系统的其他机器上运行,无需设计源代码
编译阶段
输入:设计代码(.v, .sv 等)、测试平台代码、库文件、以及一系列“编译时参数”
过程:VCS 首先会对输入的 HDL 代码进行语法分析和解析。然后,它会将这些高级的硬件描述语言代码翻译成中间的 C/C++代码。最后,VCS 会调用系统自带的 C/C++编译器(如 GCC ...
1080P、2K等分辨率简介
分辨率是指视频画面在一定区域内包含的像素点的数量。像素是构成图像的最小单位,每个像素都有特定的颜色和亮度。分辨率通常以“宽 × 高”的形式表示,如 1920×1080,这代表视频的水平方向有 1920 个像素,垂直方向有 1080 个像素
美国电影电视工程师协会(SMPTE) 制定了一系列的高清数字电视格式标准,其中包含了常用的分辨率标准:
720P: 其有效显示格式为 1280×720, P 表示逐行扫描(Progressive scanning) 方式
1080P:其有效显示格式为 1920×1080, 也是采用逐行扫描方式
1080i: 与 1080p 相对,i 表示隔行扫描(Interlace scanning)。 这种格式在传输过程中可能提供更高的帧率, 但图像质量相对于 1080p 可能会有所降低
2K:最标准的 2K 分辨率为 2048×1024,常见的 2K 分辨率为 2560×1440(16:9)
4K:由 SMPTE ST 2036-1 标准定义的 VHD 超高清系统,其分辨率为 3840×2160(16:9)
8K:由 SMPTE ST ...
SSH 隧道配置指南:通过云服务器访问家庭内网
前言:本篇文章目的是为了临时访问家庭的树莓派,然后通过 WOL 唤醒家庭里的电脑实现远程访问家里电脑的目的。
注:本文由 AI 生成并手动修改完善
一、需求场景
云服务器(公网) + 24 小时在线设备(如树莓派)(家庭内网)
偶尔需要访问树莓派
要求简单、安全的解决方案
二、SSH 隧道安全优势
端到端加密
所有数据都经过 AES-256 等强加密
密钥交换使用 Diffie-Hellman,防中间人攻击
完整性校验防止数据篡改
认证机制
推荐使用 SSH 密钥认证(比密码更安全)
可以禁用密码登录,只允许密钥
支持多因素认证
网络安全性
无需开放额外端口
只需要树莓派的 SSH 端口(默认 22)
不需要在路由器上做端口映射
云服务器作为中转,不暴露家庭网络
连接特性
连接是按需建立的,用完即断
没有持久的后门或服务运行
三、推荐方案:反向 SSH 隧道3.1 工作原理1用户 → 云服务器(公网) ←[反向隧道]← 树莓派(内网)
3.2 配置步骤云服务器准备1234567891011# 创建专用用户(可选但推荐)sudo adduser pi-t ...
我的世界Java版服务端搭建
java
下载从Java Downloads | Oracle 中国下载对应 CPU 架构的.tar.gz 文件(一般是 x64 架构)
1$ wget https://download.oracle.com/java/21/latest/jdk-21_linux-x64_bin.tar.gz
安装然后使用tar -xvzf xxx.tar.gz /usr/local/xxx解压缩到特定目录如/usr/local,配置环境变量:在.bashrc文件最末尾添加以下两行(其中 xxx 为你解压缩后的目录名):
12export JAVA_HOME=/usr/local/xxxexport PATH=$JAVA_HOME/bin:$PATH
验证使用source ~/.bashrc使修改生效,使用java --version验证Java是否安装成功
我的世界服务端
下载从Minecraft 服务器下载 | Minecraft下载我的世界 Java 版服务器(或直接在 Linux 命令行执行下面命令,链接可能失效,需要使用最新链接)
1$ wget https://piston ...
WSL2备份与还原
备份
确定版本,在 cmd 中,输入 wsl -l -v 来确定自己的 wsl 版本。因为有些人下载的是”Ubuntu-22.04”发行版,或者像我一样仅仅是”Ubuntu”发行版,在这里确认一下 name 以便正确导出备份文件。
1234$ wsl -l -v# 输出 NAME STATE VERSION* Ubuntu Stopped 2
若输出 STATE 显示为 Running,则需执行命令wsl --shutdown关闭 wsl 子系统
导出备份
123$ wsl --export 发行版本名 备份文件路径# 示例:$ wsl --export Ubuntu D:\backup.tar
还原备份12345678$ wsl --import (发行版本名称) (安装位置) (文件路径以及文件名称)# 示例:$ wsl --import Ubuntu C:\wsl\ D:\backup.tar# 假如是在原系统上迁移到其他磁盘,还需要删除原来的 wsl 子系统,删除后原路径下的vhdx文件会被移除$ wsl ...
linux系统手动添加swap分区
swap 分区介绍swap 分区中文名是交换分区,类似于 Windows 中的虚拟内存,就是当内存不足的时候,把一部分硬盘空间虚拟成内存使用,从而解决内存容量不足的情况
添加 swap 分区假设物理内存及 swap 分区空间不够或者没有 swap 分区,那么可以手动添加一个 swap 文件当做 swap 分区,也可以划分一个独立的磁盘分区当做 swap 分区,这里采用创建 swap 文件的方式添加 swap 分区
123456789101112# 使用 fallocate 命令添加一个 10G 的 swap 文件(fallocate 命令并不会直接使用 10G 空间,只是预设,需要用的时候才增加)# swap 文件及路径可以自定义,这里在根目录下创建swapfile文件$ sudo fallocate -l 10G /swapfile# 修改文件权限$ sudo chmod 600 /swapfile# 格式化为 swap 分区$ sudo mkswap /swapfile# 启用新添加的swapfile$ sudo swapon /swapfile
如果需要每次开机自动挂载 sw ...
个人博客搭建:添加RSS功能
本篇文章主要介绍如何在 hexo+butterfly 框架主题下添加 RSS 功能,其中相关配置详细参数见 Github 开源项目GitHub - hexojs/hexo-generator-feed: Feed generator for Hexo.,由于笔者时间精力有限,如有疏忽错漏还请指正,谢谢~
框架版本:hexo 7.1.1主题版本:butterfly 4.13.0
RSS 简介RSS 的全称有三种说法:
RDF Site Summary(资源描述框架站点摘要)
Rich Site Summary(网站内容摘要)
Really Simple Syndication(简易资讯聚合)
RSS 就像一个网站的海报,里面包括这个网站的最新内容,会自动更新。从技术方面来说,就是各个平台会提供一个 XML 格式的纯文本文件,该文件里包含了该网站的内容。如果该平台有更新,也会同步更新这个 XML 文件
RSS 插件 hexo-generator-feed 安装配置
hexo 根目录下安装插件
1$ npm install hexo-generator-feed --sa ...
conda创建环境时env路径默认为C盘而非anaconda安装路径的问题解决
查看 conda env 配置路径1234# 命令1$ conda info# 或命令2$ conda config --show
上述命令 2 执行结果如下:
1234envs_dirs: - C:\Users\Administrator\.conda\envs - D:\anaconda3\envs - C:\Users\Administrator\AppData\Local\conda\conda\envs
修改 envs_dirs 默认 env 路径修改~/.condarc(若为 Windows 系统则在C:\Users\{用户名}\.condarc)中 envs_dirs 的顺序,若没有则添加如下内容:
12envs_dirs: - D:\anaconda3\envs
再次执行conda config --show,显示结果如下:
1234envs_dirs: - D:\anaconda3\envs - C:\Users\Administrator\.conda\envs - C:\Users\Administrator\AppData ...
PaddleOCR环境配置
本地环境:Python:3.12CUDA:12.9包管理器:conda操作系统:Windows 10
创建 PaddlePaddle 框架 的 Python 虚拟环境
使用 conda create -n env_name python=3.12 安装 PaddleOCR 的 python 虚拟环境并指定 python 版本为 3.12
使用conda activate env_name激活环境后使用下面的命令安装 GPU 版本的 PaddlePaddle 框架:
1$ python -m pip install paddlepaddle-gpu==3.2.0 -i https://www.paddlepaddle.org.cn/packages/stable/cu118/
使用下面的命令验证是否成功安装,输出安装的框架版本号即表示安装成功
1$ python -c "import paddle; print(paddle.__version__)"
安装 PaddleOCR 库根据需要安装 PaddleOCR:
12345# 只希望使用基础文字识别功 ...
linux系统资源查看-top命令
参考:每天一个 Linux 命令-top(1)_哔哩哔哩_bilibili
任务列表区域PIDProcess Id,进程IDUSEREffective User Name,有效用户名PRPriority,优先级NINice Value:Nice值VIRTVirtual lmage(KiB),进程使用的虚拟内存大小RESResident Size(KiB),进程占用的驻留内存大小SHRShared Memory(KiB),进程占用的共享内存大小SProcess Status,进程状态RRunning,运行sSleeping,可中断的睡眠状态DUninterruptible Sleep,不可中断的睡眠状态TTraced,已被跟踪或已停止zZombie,僵尸进程×Exited,退出状态%CPUCPUUsage,自从上一次更新到现在进程所使用的CPU时间百分比%MEMMemory Usage(RES),进程所使用的物理内存的百分比TIME+CPU Time,hundredths,任务后动后到现在所使用的全部CPU时间,精确到百分之一秒COMMANDCommand Name/Line,命今名 ...









