为什么要使用Makrdown

7 月 18 日
阅读 24 分钟
366
<!--你可能没听说过 Markdown,也可能听说过但没有习惯用它写文档。为了这样的你!我们首先来说 Markdown 是什么,以及使用它的优点。 -->Markdown 是一种用来写作的轻量级「标记语言」,能够帮助人们用更简单、快速的方式去编辑文章,而不需要过多的去担心排版问题

使用flatbuffers和ZeroMQ Pub-Sub时的信封解决方案

3 月 14 日
阅读 2 分钟
315
使用zmq::send_flags::sndmore后, 接受侧会有一些变化, 每次会收到两个zmq::message_t, 如下所示要使用一个vector来接受消息, 第一个消息是envelope, 第二个消息是content。

[翻译]gitignore

2023-10-16
阅读 4 分钟
650
.gitignoreGit 将工作副本中的每个文件视为以下三种情况之一:tracked - 先前已暂存或提交的文件;untraced - 尚未_暂存或提交的文件;ignored - Git 被明确告知要忽略的文件。忽略的文件通常是构建工件和机器生成的文件,它们可以从您的存储库源中派生,或者不应以其他方式提交。一些常见的例子是:依赖缓存,例如/node...

关于fsdb的一些记录

2023-03-04
阅读 3 分钟
4.1k
FSDB控制波形生成vcd {代码...} fsdb {代码...} run-timexcelium {代码...} vcs {代码...} VCS中使能FSDB {代码...} 分割fsdb波形 {代码...} 将FSDB波形转成CSV等可读性文本 {代码...} 其中参数bt是波形的开始时间et是波形的结束时间s是导出的信号名,可以用通配符匹配of是输出的数据格式,h为16进制o为导出的文件名 {代...

后仿验证的ABC

2022-12-02
阅读 3 分钟
2.5k
后仿检查数模接口异步路径时序紧张的同步路径时钟和复位不定态扩散问题重要用例和场景启动复位时钟切换后仿网表post-synth netlistpost-dft netlistpost-pnr netlistpost-pnr netlist with PG通常后仿用例跨时钟域异步关系上下电和启动流程数模接口时序关系时钟复位相关:时钟无毛刺切换、复位去毛刺滤波、复位解复位顺...

[翻译]最好的makefile入门教程

2022-09-25
阅读 17 分钟
2.7k
Makefile 用于帮助决定大型程序的哪些部分需要重新编译。在绝大多数情况下,编译 C 或 C++ 文件。其他语言通常有自己的工具,其用途与 Make 相似。当你需要一系列指令来运行取决于哪些文件已更改时,Make 也可以在编译之外使用。本教程将重点介绍 C/C++ 编译用例。

为什么我用zsh代替csh?

2022-09-25
阅读 3 分钟
3.8k
我是shell的重度用户,开发工作除了写文档都是在shell下完成的。所以shell就是我的生产力工具,打造高效的shell环境,可以大幅提高我的工作效率。有很多功能,比如文件打开关闭,文件目录跳转,初始化配置,eda工具设置,是不适合用其他脚本语言来写的,shell脚本也是最佳选项。很多子功能适合编译成二进制文件后,由she...

在CentOS7上的无root权限安装vim8.2

2022-05-26
阅读 15 分钟
2.7k
VIM 在Centos7上的安装与配置VIM8是目前的最新版本,它有非常多的特性可以提高我们的生产效率,所以我们这里以VIM8为例VIM8 编译前的准备我们需要安装一些插件,有些依赖python, 有些依赖node.js. 所以我们需要先安装这两个安装python3源代码安装, 可以下载3.8.x或3.9.x {代码...} 要生成动态链接库,不能开优化 {代码...

vim从入门到精通

2022-05-22
阅读 14 分钟
2k
下载windows安装包, 最新版在这里下载中文帮助安装包, 最新版在这里安装vim-plug插件, 原文件在这里, 下载plug.vim,然后把它放到vim安装路径的autoload目录下

vim之强大的global

2022-04-29
阅读 6 分钟
3.9k
如果要查看可以使用的命令,可以help ex-cmd-index。 如果要查看详细解释, 查看help 10.4 和 help multi-repeat。

csh Prompt全描述--定制自己的linux命令行提示符

2022-04-20
阅读 6 分钟
8.4k
cshell Prompt主要由两部分组成, 一个是颜色定义,一个是信息显示。下面我们分别讲讲述这两部分。颜色(ASCII color)所有颜色都以\033[xxxm的形式输写,xxx是以分号分隔的参数C {代码...} C++ {代码...} python3 {代码...} shell {代码...} 字体效果CodeEffectNote0Reset / Normalall attributes off1Bold or increase...

Win10下的最好免费ssh客户端--Windows Terminal

2021-04-25
阅读 7 分钟
10k
做为一个码农,基本工作就是登录到linux服务器上干活。虽然有VNC可用,但架不住图形界面怎么都不如终端流畅啊,所以大多数时候还是用ssh登录到服务器在终端下编码,编译,运行。免费的ssh客户端还是有的,之前也用过putty(及各种变种),podarosa, mobaxterm, xshell。之前xshell的免费版是没限制的,xshell是所有ssh客户...
封面图

构建riscv上运行的linux系统

2020-11-28
阅读 11 分钟
6.8k
为了完全这项任务,我们需要安装几个工具, qemu for riscv,   linux kernel,  boot loader, toolbox

浮点乘法的硬件实现

2020-08-14
阅读 16 分钟
2.2k
在代码中已经添加简单的注释,相信阅读过IEEE754标准的人很容易看懂。对于结果的取舍,按照S家的标准共六种取舍,同时会输出status表明结果的精准度。

RTL monitor的文件输出效率优化和研究

2020-07-30
阅读 16 分钟
2.4k
最近在写RTL monitor, 发现如果频繁用$fdisplay写数据出来,性能会成为瓶颈。所以就研究用DPI-C把数据送出来,然后在C侧看看有什么优化手段。有几种优化方法, 一种是写raw data到C侧,C侧直接把raw data格式化输出。 另一种是把raw data存成文件后就返回到RTL侧。然后线下用一个进程把raw data进行格式化输出。线下的进...

SystemVerilog中关于DPI章节的翻译

2020-06-14
阅读 13 分钟
7.3k
随着时代的发展,现在的芯片规模越来越大,哪怕模块级的验证环境也需要相当长的build时间,各种仿真工具也在改进编译和运行性能,还发明了增量编译。但无论如何增加features,turnaround的时间还是比较长,而且方法越复杂越容易出错。而DPI-C则比较简单,能够解决某些场景下的问题。

gdb深入学习手册

2020-04-28
阅读 25 分钟
10.1k
gdb虽然只是一个调试器,但如何要用好它,必须深刻理解linux下程序是如何编译运行的,建议先深入了解相关内容再开始调试程序。本文只局限对gdb的使用上,后面有机会再介绍关于linux下程序编译运行相关的知识。

grep里的正规表达式

2020-02-27
阅读 1 分钟
2.8k
grep -[acinv] '搜索内容串' filename-e: 一次只能有一个选项,比如 grep -e "abc" -e "def"-E: 正则表达式-v: 取反-a 以文本文件方式搜索-c 计算找到的符合行的次数-i 忽略大小写-n 顺便输出行号-h 查询多文件时不显示文件名。-l 查询多文件时只输出包含匹配字符的文件名。-s 不显示不存在或无匹配文本的错误信息。-w ...

[vim]自动更新修改时间和修改次数

2020-02-27
阅读 2 分钟
9.4k
目的 每次修改文件后,希望在文件头上的反应出最后修改时间,并更新修改次数 主要语法 submatch(n) 引用前面匹配的内容, submatch(0)是全部, submatch(1)是第一个 getpos(".") 得到当前光标位置setpos(‘.', save_cursor)用来恢复位置 winsaveview() 保存整个layout 实际代码 {代码...}

[verilog] FSM状态机的进一步思考 - 生成支持小数分频的UART Baud16信号

2020-02-27
阅读 14 分钟
3.4k
[verilog] 对于FSM状态机的进一步思考 - 生成支持小数分频的UART Baud16信号 前言 uart 的 baudrate 公式如下: $$ baudrate = \frac{UART\_CLK}{16 \times Divisor} $$ baudrate generator需要产生一组脉冲,16组脉冲的宽度就是baud rate, 也就是rx和tx的最小边沿宽度 思路 如果只考虑分频系数为整数的情况,那么我们只...

编译,链接和加载介绍

2019-07-12
阅读 4 分钟
6.5k
整个过程 预处理器:将.c 文件转化成 .i文件,使用的gcc命令是:gcc –E,对应于预处理命令cpp; 编译器:将.c/.h文件转换成.s文件,使用的gcc命令是:gcc –S,对应于编译命令 cc –S; 汇编器:将.s 文件转化成 .o文件,使用的gcc 命令是:gcc –c,对应于汇编命令是 as; 链接器:将.o文件转化成可执行程序,使用的gcc 命...

pseudo-terminal 基础一

2019-07-12
阅读 13 分钟
5.7k
The openpty() function finds an available pseudo-terminal and returns file descriptors for the master and slave in amaster and aslave. If name is not NULL, the filename of the slave is returned in name. If termp is not NULL, the terminal parameters of the slave will be set to the values in termp....

无root权限新建git仓库进行多人协同工作

2019-02-19
阅读 1 分钟
2.1k
build your own git reposity 建立服务器端 从头新建 {代码...} 基于已有工作区 {代码...} 建立客户端 {代码...} 默认每次都要输入密码 可以配置默认的branch {代码...} 权限 修改repo文件的读写执行权限 {代码...} 注意点 客户端每次修改时先git pull从服务器端拉回最新修改再进行修改和git push, 这样可以减少很多冲突

图像格式PPM/PGM/PBM剖析及代码实现 -- 视频和图像编程基础之一

2018-09-18
阅读 9 分钟
9.2k
这三种格式其实是一样的描述方法,只不过 PBM 是单色,PGM 是灰度图,PPM 使用 RGB 颜色。每个文件的开头两个字节(ASCII 码)作为文件描述符,指出具体格式和编码形式。

YUV格式剖析以及与RGB的转换实现 -- 视频和图像编程基础之二

2018-09-18
阅读 11 分钟
13.4k
YUV是编码true-color时使用的颜色空间(color space)之一. 像Y'UV, YUV, YCbCr, YPbPr等都可以称为YUV, 彼此之间有重叠。

bat简介 -- 带语法高亮和git集成的cat

2018-09-15
阅读 2 分钟
3.5k
bat的目的非常简单,就是一个带有语法高亮的cat,他们的选项基本都一样,另外它还会自动获取你git的信息,能够标出目前文件和git缓存区文件的区别,这样你一眼就可以看出你的修改。

Vim之代码异步检测插件 ALE -- 实时检查verilog等代码的正确性

2018-09-14
阅读 3 分钟
18.2k
Vim之代码异步检测插件 ALE 前言 知名的 vim 代码检测插件主要是两个 syntastic neomake ALE ALE 虽是后起之秀,但目前是功能最强大的一个 实时检测。为了让代码可以在编辑时进行实时的检测,ale 的运行方式是将代码做为 stdin 导入检测工具(不支持的话使用临时文件),这样做的好处是我们可以更早的发现错误。 并发运...

systemverilog中Configuration的用法详解

2018-09-14
阅读 3 分钟
12.1k
SystemVerilog中Configuration的用法 1. Config configuration是一套用来描述设计中实例来源的一套显式规则, 它的规则如下: 2. 语法 {代码...} 3. example lib.map : {代码...} 上面就是一个最简单的例子,通过configuration来选择对于某个instance使用哪个module的实现 4. 讲解 一个configuration的基本元素包含: co...

多窗口管理器Tmux - 从入门到精通

2018-09-05
阅读 8 分钟
15.7k
tmux 的基本概念 我们先来理解下 tmux 的几个元素。tmux 的主要元素分为三层 Session 一组窗口的集合,通常用来概括同一个任务。session 可以有自己的名字便于任务之间的切换。 Window 单个可见窗口。Windows 有自己的编号,也可以认为和 ITerm2 中的 Tab 类似。 Pane 窗格,被划分成小块的窗口,类似于 Vim 中 C-w +v ...

VIM与模糊搜索神器FZF的集成用法 - 从简单到高级

2018-08-29
阅读 8 分钟
26k
fzf本身并不是一个vim 插件,本来作者只提供了基本的wrapper函数(比如fzf#run). 但后来作者发现很多人并不熟悉VIMScript, 所以就创建一个默认的vim plugin.