常用工具合集
Tools
vim
Basic
单词的大小写转换: (visual mode) <U> & <u>
快速跳转:匹配括号之间跳转 % ,函数头尾跳转 [{
历史位置跳转: <C-o> <C-i> ''
启用折叠 zN,禁用折叠 zn ,开关折叠 za
根据路径跳转文件: gf
当需要多次copy而希望剪贴板不被visual模式选择的新内容覆盖时,选用特殊寄存器存储copy的内容: "ay -> v(选择被覆盖的内容) ->"ap -> "ap
标记语法 m{letter},跳转语法 ``{letter}`
m[a-z] - 小写字母的, 创建一个可以在当前文件(缓冲区)进行跳转的标签
m[A-Z] - 大写字母的, 创建一个可以全局的标签, 可以在多个文件之前跳转
Plugin
对齐:Tabular
补全:SuperTab
跳转:ctags taglist 可拓展支持 SystemVerilog
基本使用方法:ctags -R .
vim配置 ...
gdb简明教程
make gdb
x:扫描内存
b:设置断点
c:继续执行程序
r:重新开始执行程序
s:单步执行且进入函数
n:单步执行但不进入函数
p:打印变量或寄存器的值
bt:查看调用栈
watch:设置监视点
finish:跳出当前函数
layout src:查看源代码
layout split:查看汇编代码
ctrl + p / n:回溯历史命令
help xxx:查看xxx命令的帮助
数字IC试题
数字IC笔试模拟题(一)
选择题
03: 关于异步处理,以下说法正确的是:
A. 静态配置信号可以不做异步处理
B. 异步FIFO采用采用格雷码的原因是提高电路速度
C. 异步处理需要考虑发送和接送时钟之间的频率关系
D. 单比特打俩拍后可以避免亚稳态发生
解析
静态信号不变化,即使跨时钟也不变化,不会有亚稳态;
异步FIFO采用格雷码的原因是格雷码相邻两位只有一位变化,这样可以方便处理信号;
异步处理需要考虑不同时钟域之间的信号传递;
单比特打拍可以减少亚稳态发生。
答案:AC
从综合出电路的电路看第一段代码比第二段代码优化的地方是()
12345678910111213141516// 第一段代码:always @(posedge clk or negedge rst_n) beginif(!rst_n) D <= 1'b0;else if(A & B) D <= A + B;end// 第二段代码:always @(posedge clk or negedge rst_n) beginif(!rst_n) D <= ...
无毛刺时钟切换电路
参考资料:
Techniques For Glitch Free Clock Switching (MUX)
无毛刺时钟切换电路
实时的时钟切换的问题
使用 AND-OR 门组成 MUX,可以得到一个时钟切换电路,但是,当 SELECT 的值发生变化,输出时钟从当前的时钟源切换到下一个时钟源时,可能会产生毛刺。
存在的问题
12345678910111213{ signal: [ { name: "CLK0", wave: "p..", period: 1 }, { name: "CLK1", wave: "p......h", period: 0.3 }, { name: "SELECT", wave: "0..........1.................." , period: 0.1 }, { name: "CLKOU ...
C语言指针总结
C文件是如何变成可执行文件的
预处理:处理所有以#开头的代码(头文件展开,宏定义替换,条件编译)
编译:语法检查,把C文件翻译成汇编文件
汇编:把汇编代码翻译成二进制文件
链接:把所有需要的.o文件合并成一个二进制文件,链接需要用的库。
Pointer code 10 files
01 指针的基本概念
123456789101112131415161718192021/*1. 在64位操作系统中,指针占8个字节2. 定义的时候(前面有类型),表示后面的变量是指针3. 使用的时候:表示取值(取指针指向的内存空间的值)4. int * 和 char * 的步长不一样*/#include <stdio.h>int main(int argc, char const *argv[]){ int num = 1; char ch = 'a'; int *p = # char *q = &ch; printf("%p, %p\n", p, p + 1); //p指向整数,所以p+1加四个字节 printf( ...
LaTex排版笔记
LaTeX\LaTeXLATEX 排版笔记
1. 习惯篇:
不引用\ref不标记\label
参考文献及时引用\cite
数据尽量以Excel形式保存
2. 宏包篇:
数学宏包:amsmath
表格宏包:booktabs
图片宏包:graphicx
颜色宏包:color & xcolor
代码宏包:listings
3. 表格篇:
在线LaTeX表格生成器
表格转换器
Excel插件(LaTeX表格转换器):GitHub项目地址
LaTex表格常用命令:
合并单元格:\multicolumn{2}{c}{文字},\multirow{2}{*}{}
划线:\cline{2-3}
表格底色设置:
宏包:\usepackage{colortbl}
环境:\begin{tabular}\end{tabular}
命令:\rowcolor{颜色}:用于 ...
Git简明教程
参考资料
Git教程
git - 简明指南
个人项目的版本控制流
下载安装git,进行user.name和user.email的配置
12git config --global user.name "Your Name"git config --global user.email "planckgh@gmail.com"
完成ssh密钥配置
1ssh-keygen -t rsa -C "planckgh@gmail.com"
在本地工作目录新建git版本管理库
1git init
新建工作文件(test.c)
1vim test.c
添加改动文件至暂存区
1234# 单个文件git add test.c# 所有文件git add .
完成阶段性工作后,提交至HEAD
123456# 无改动提交git commit --allow-empty -m "text"# 改动提示不长git commit -m "text"# 改动提示较长git commit
创建 ...
建立时间与保持时间
参考资料:
建立时间与保持时间
一文解决关于建立保持时间的困惑
理解
建立时间就是时钟触发事件来临之前,数据需要保持稳定的最小时间,以便数据能够被时钟正确的采样。
保持时间就是时钟触发事件来临之后,数据需要保持稳定的最小时间,以便数据能够被电路准确的传输。
Thd≤Tcq−Tskew+TcombTsu≤Tclk−T^hd\begin{aligned}
T_{hd}&\leq T_{cq}-T_{skew}+T_{comb} \\
T_{su}&\leq T_{clk}-\hat{T}_{hd}
\end{aligned}
ThdTsu≤Tcq−Tskew+Tcomb≤Tclk−T^hd
12345678910{ signal: [ { name: "clk", wave: "p..", node:'.ab'}, { name: "D1", wave: "01.", phas ...
【VIM】Verilog开发环境配置
【VIM】Verilog开发环境配置
代码补全
snippets
自动例化
automatic-verilog
代码格式化
tabular
语法检查
ale (linter:verilator)
Vimium简明教程
Vimium简明教程
0. ? Show help
1. 滚动跳转: j,k,d,u,h,l,gg,G,zH,zL
j Scroll down
k Scroll up
d Scroll a half page down
u Scroll a half page up
h Scroll left
l Scroll right
gg Scroll to the top of the page
G Scroll to the bottom of the page
zH Scroll all the way to the left
zL Scroll all the way to the right
m Create a new mark
` Go to a mark
2. 刷新页面:r,x,X
r Reload the page
x Close current tab
X Restore closed tab
3. 创建页面:p,P,gu,gU,ge,gE,t,yt
p Open the clipboard’s URL in the current t ...