![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
VERILOG
seuwilson
IC设计
展开
-
SOC设计:关于时钟门控的细节
功能:软件配置的使能信号clk_sub_en经过时钟clk 2拍同步处理后产生clk 域下的enable信号,然后使用工艺库里的时钟门控cell产生门控时钟clk_sub。4、软件控制信号:clk_sub_en。1、同步后的rstnsync_clk。使用工艺库里的门控时钟原因如下。原创 2024-03-06 16:40:42 · 487 阅读 · 0 评论 -
SOC设计:关于reset的细节
SOC设计:关于reset的细节原创 2024-03-06 16:28:06 · 1650 阅读 · 0 评论 -
axi传输:burst和outstanding
1、burst传输相当于发出一个地址,然后指定传输的length和每笔传输的size,即为一次burst传输。2、outstanding传输是指不需要等待前一笔传输完成就可以发送下一笔操作,这样可以有效提升通路利用率,提升系统性能3、burst 传输可以减少地址通道的交互,提升单笔传输的效率4、outstanding 可以减少多笔传输之间的等待,提升多笔传输的效率’...原创 2022-03-17 11:14:22 · 7732 阅读 · 0 评论 -
verilog 文本自动对齐:input output wire reg
1、之前有个脚本可以对齐input和output,但是没有解决wire和reg定义不对齐的问题。所以脚本改进了下,支持input output wire reg对齐2、知识点总结:perl的字符串进行比较时需要使用eq,lt,gt,不能使用数字比较符==,>=,否则会出现逻辑错误。#! /usr/bin/perluse 5.010;use strict;my ($sec,$min,$hour,$day,$mon,$year,$weekday,$yeardate,$saving原创 2022-03-16 17:32:26 · 2101 阅读 · 3 评论 -
IC数字设计:异步复位,同步释放
1、首先带复位端的触发器,对于复位信号,其实也是需要看其复位信号是否满足setup和hold要求2、假设不做同步释放,直接让复位信号一直拉低,去复位,此时系统也可以复位,但是在复位信号拉高的那一刻,触发器采集的时候有可能把复位信号亚稳态采进去,此时,触发器的输出可能又不是复位后的状态,导致系统复位不成功。所以必须做同步释放,这个时候触发器在复位释放可以稳定的采集到1。所以异步复位,同步释放的着重点在于同步释放(复位信号从0变1时,如果没做同步会导致触发器输出不是复位状态)...原创 2022-03-15 17:05:33 · 409 阅读 · 0 评论 -
vim-easy-align插件使用
写RTL时最常用的对齐有两个1、一个是<=对齐2、按照?对齐对齐之前:经过操作步骤:1.选择指定区域,或者按vip(visual inter paragraph)2.按enter键两次,选中EasyAlign的右对齐3.写一个=,即可按=进行对齐的效果=按照?对齐对齐之前:经过步骤1、选中,按vip2、按enter键3、ctrl+x,然后输入字符?对齐之后:插件参考网址如下:https://github.原创 2021-09-02 17:21:05 · 3244 阅读 · 0 评论 -
verilog-module input和output自动对齐脚本-perl
总结1.之前用emacs的autoreg和autowire,以及后来使用的gvim 插件autodef,都没有找到合适对齐module input和output的方法,索性就自己写了个perl脚本来对齐。2.使用对齐后代码确实美观了不少。3.脚本使用:可以对当前目录下的.v文件统一进行对齐。脚本名字是run_indent.pl使用效果如下:#! /usr/bin/perluse 5.010;use strict;my ($sec,$min,$hour,$day,$m原创 2021-08-27 12:11:53 · 1668 阅读 · 0 评论 -
vim/gvim插件-verilog autodef-自动生成
使用gvim插件效果如下插件参考网址https://www.vim.org/scripts/script.php?script_id=4067需要把automatic.vim放在指定的.vim文件夹下使用需要注意的地方:1.:AD 即为autodef快捷键2.如果autoinst的port需要自动化定义,需要前面的always block 块的begin end写完整。否则无法识别(应该是脚本以begin end为识别点)3.不能使用wire[5:0]...原创 2021-08-27 11:46:25 · 3982 阅读 · 4 评论 -
emacs 采用命令行模式自动更新verilog
1.写verilog代码时经常会遇到自动更新的问题,以前都是用emacs打开文档,再ctrl-a + ctrl-x2.但是很多时候初始状态的代码,要经常进行更新,如果能写成脚本更新的话会方便不少。emacs脚本主要使用的两项:1.emacs --batch <filenames.v> -f verilog-batch-indent :功能,对齐2. emacs --ba...原创 2019-10-25 14:51:45 · 1357 阅读 · 0 评论 -
verilog:可综合的function
1.对于频繁使用的计算单元,可以做一个function,减少代码量,增加代码可读性。function [9:0] s_value_function;input [9:0] q_sequence_value;input [3:0] m_polar_len_n;input [10:0] m_polar_len_N;reg [4:0] var_tmp3_value;reg [2:...原创 2019-09-17 16:31:57 · 3665 阅读 · 0 评论 -
verilog:part select
1.经常会用到变量的部分位宽选择,可以采用part select的方式。原创 2019-09-17 16:19:11 · 5847 阅读 · 0 评论 -
verilog:可综合的verilog
1.multi-dimensional arrays 多维数组可综合。2.signed data types 有符号数据类型可综合。3.part selects +: 和-:可综合。4、<<<,>>> 算术移位可综合。5、function和constant function可综合。6、generate可综合。7、for定量,可综合。...原创 2019-09-17 15:35:46 · 2303 阅读 · 0 评论