vim
- :n,m % s#要替换内容#替换内容#
- :%s#要替换内容#替换内容#
- 删除
- 1.删除相同行 :sort 排序 :g/^(.+)$\n\1/d 删除和上一行相同的
- 2.删除注释行: :/g^#/d
- 3.删除空白行::/^s*$/d
- 4.删除特定多行: :n,m/d 等价于ndd
- 5.当前行删除到结尾: dG
- .:%s,,\\,g 转义。等价于:%s/,\\/g。也就是说,/#三者可以互换。
- 多个关键词匹配hl或删除。/jim|butter或:g/jim|butter/d
SVN##
只更新文件夹,更新文件夹下的所有子文件内容
svn co https://xxc -N
svn up --set -depth immediates 只更新文件夹。
svn up --set -depth infinity 递归更新文件下的内容。
版本差异合并 svn merge -r m:n path(m n表示版本号)
更新到某个版本 svn up -r m path
打印log前几行 svn log -l 10
LINUX
- grep “关键词A|关键词B” 文件名 >新建立文件名。
- Grep 查找某个关键词送给send进行整体修改grep -rl -E “old1 | old2” | xargs sed -i -e “s#old1#new1#g” -e “s#old2#new2#g”
- ln 软连接。
- ctrl+L清屏。
- find -name filelist/关键词
- find -name “关键词” | xargs -t path+新文件名
- find . -name “.v” | xargs grep “关键词” -A20 -H > 新文件名 表示匹配关键词下面的20行和路径并保存在新文件中。
cat - cat aaa.v>bbb.v 将aaa文件加入到bbb文件中。
- cat aaa.v >>bbb.v 将aaa.v内容加到bbb.v文件结尾。
VIVADO(FPGA)
- 自定义full flow脚本;定义变量名,调用xdc,drc文件;跑综合;跑实现;bitstream转bin文件。
- IP core生成,常见的serdes.pll等,将生成的xcix文件封装成fpga.v。
- XDC约束,生成时钟,约束管脚,异步时钟关系。
- cdc设置异步时钟关系。
- 查看时序是否满足,查看资源利用率。
- 抓信号波形版本,mark debug。
综合
- sdc约束。
- ppa
- 时序优化之一:逻辑优化;打拍;fanout处理。多级打拍,其中一拍用组合加锁存器做,有需要再打拍。
- 读写冲突:一般上报读写冲突,写优先。
功耗分析与功耗优化
1.功耗分析软件,spyglass power&mentor
2.功耗分析策略
功耗优化方法
1.常见的clk_gating,vld控制数据流。
2.动态调整电压。具体?
检查,仿真
- spyglass lint检查,cdc检查,nlint检查。
- makefile+testbench。VCS仿真,Verdi下载波形。
- 验证平台+UVM方法学
格雷码,fec设计,ecc等
- 异步fifo与同步fifo。深度设计考虑时钟,反压延时需吸收数据+预留数据
- fec纠错算法,crc循环纠错码
- ecc 纠错,包含了汉明码。
- 同步器,快到慢,单bit同步根据时钟确定打几拍。
- 预读寄存器+fifo=当拍出数据
- 链表,由空闲链表与数据链表合成,像链条的共享缓存存储结构。
- 状态机。
- 三目运算;function调用函数,generate用法。
- 参数化,宏定义,
- 复位里面不要做条件判断,综合后,容易引起时序不满足。
内存memory
- dram
- sram
- memory选型
后端
- feedthrough
- planfloor。
文档documents
- 寄存器表格。
- 详细设计文档。
脚本语言scripts
脚本可以通过寄存器表哥生成配置文件代码;可以生成格式规范统一的fifo,memory wrapper等;可以根据填写表格,完成feedthrough走线;可以通过脚本跑各种flow流程,包括综合,FPGA等。
20. perl
21. python
22. tcl ,简单。
23. shell
24. makefile
协议相关
- 接口协议:pcie。
- 总线协议: amba总线架构,axi,ahb,apb。