为了高效的编写Verilog,通常有些编辑器插件可以自动生成代码,比如自动端口定义,自动连线,自动实例化等等。公司的环境有很好用的自动化插件,想给自己的电脑也整个怎么做。比如Emacs中有个插件叫verilog-mode。但是博主习惯了用Vim,查询后发现Vim也可以调用这个插件来实现自动化。verilog-mode开发者网站在这里,更多内容去上网查询。https://www.veripool.org/wiki/verilog-mode这个是vim官网上的一个插件,但是有一些小bug,但是有好用的autodefine功能,这两个可以配合着用,写代码的时候可以完全不用在意reg和wire类型的定义,直接写assign和always块,最后autodefine一下就可以了。更多内容点击上面的视频观看。https://www.vim.org/scripts/script.php?script_id=4067自动化前

module test (/*AUTOARG*/);input clk;input rst_n;   input i;output              douty;parameter DWIDTH=32;/*AUTOREG*//*AUTOWIRE*/assign doutx = i;always @(posedge clk or negedge rst_n)begin  if(!rst_n)begin    douty <= 1'd0;  end  else     douty <= doutx;endassign doutx = i & o[DWODTH-1];foo u_foo(/*autoinst*/);endmodule//Local Variables://verilog-library-directories:("." "foo")//End:module foo(/*AUTOARG*/);input i;output [DWIDTH-1:0] o;endmodule//Local Variables://verilog-library-directories:(".")//End:

自动化后

module test (/*AUTOARG*/   // Outputs   douty,   // Inputs   clk, rst_n, i   );input clk;input rst_n;   input i;output              douty;parameter DWIDTH=32;/*AUTOREG*/// Beginning of automatic regs (for this module's undeclared outputs)reg                     douty;// End of automatics/*AUTOWIRE*/// Beginning of automatic wires (for undeclared instantiated-module outputs)wire [DWIDTH-1:0]       o;                      // From u_foo of foo.v// End of automaticsassign doutx = i;always @(posedge clk or negedge rst_n)begin  if(!rst_n)begin    douty <= 1'd0;  end  else     douty <= doutx;endassign doutx = i & o[DWODTH-1];foo u_foo(/*autoinst*/          // Outputs          .o                            (o[DWIDTH-1:0]),          // Inputs          .i                            (i));endmodule//Local Variables://verilog-library-directories:("." "foo")//End:module foo(/*AUTOARG*/   // Outputs   o,   // Inputs   i   );input i;output [DWIDTH-1:0] o;endmodule//Local Variables://verilog-library-directories:(".")//End:

需要在开发环境中安装Emacs,支持Windows和Linux。更多配置操作点击上方视频观看。欢迎去关注硅农 B站同名账号,硅农,更多视频敬请期待,还有不要忘记三连三连啊。

Windows Emacs安装包:

链接:https://pan.baidu.com/s/1zPnschbDy1fIJRkTYiyWYQ提取码:5u2t

verilog 生成块_如何高效的编写Verilog——终极版相关推荐

  1. verilog 生成块_Verilog数字系统设计教程之学习摘要

    1.reg型只表示被定义的信号将用在"always"模块内. 2.Verilog HDL作为一种硬件描述语言,是针对硬件电路而言的.在硬件电路中信号有4种状态值,即1,0,x,z, ...

  2. verilog case语句_浅谈Design Compiler -- Verilog语言结构到门级的映射

    昨天的文章中,我们了解到Design Compiler(DC)作为Synopsys公司开发的一款用于电路综合的EDA工具,在全球数字电路市场去得了巨大的成功,它的设计初衷是将用Verilog HDL语 ...

  3. 如何高效的编写Verlog HDL——菜鸟版

    先转后看:https://www.cnblogs.com/ninghechuan/p/7729078.html 工欲善其事.必先利其器!要想高效的编写verilog没有一个好的编辑器可不行,所以我这里 ...

  4. verilog学习|《Verilog数字系统设计教程》夏宇闻 第三版思考题答案(第五章)

    <Verilog数字系统设计教程>夏宇闻 第三版思考题 答案合集 :个人主页verilog专栏中 1.为什么建议在编写Verilog模块程序时,如果用到 if 语句建议大家把配套的else ...

  5. verilog 中生成块的相关知识

    介绍: 生成块可以动态地生成Verilog代码. 这一声明语句方便了参数化模块的生成.当对矢量中的多个位进行重复操作时,或者当进行多个模块的实例引用的重复操作时,或者在根据参数的定义来确定程序中是否应 ...

  6. Verilog学习(2)运算符,赋值语句,块语句,条件语句,循环语句,生成块

    运算符 逻辑运算符:&& 与, || 或, !非,&& || 优先级高于! ,!高于算术运算符.(a>b) && (x>y) 可以写成 a& ...

  7. 25,verilog之generate生成块

    注:学习.交流就在博主的个人weixin公众号 "FPGA动力联盟" 留言或直接+博主weixin "fpga_start" 私信~ 前面几篇博文介绍了函数.任 ...

  8. 西门子博图的FB块_西门子S7-300/400PLC OB-FB-FC-DB块介绍

    西门子S7-300/400的PLC用户程序结构与S7-200有明显的不同,可以使用线性化结构以及功能调用式结构与结构化编程. 采用调用式结构与结构化编程时,程序以组织块(OB).程序块(FC).功能块 ...

  9. 如何高效的编写与同步博客 (.NET Core 小工具实现)

    系列目录 [如何高效的编写与同步博客(一)- 编写 ] 如何高效的编写与同步博客(二)- 快速发布到多个渠道 一.前言 写博客,可以带给我们很多好处,比如可以让我们结识更多志同道合的人:在写博客过程中 ...

最新文章

  1. numpy.ndarray的赋值操作
  2. 原生Aajax 和jQuery Ajax 写法个人总结(简单)
  3. The 'Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine.
  4. 贪心算法,递归算法,动态规划算法比较与总结
  5. dockerfile 创建自定义的tomcat服务
  6. Git添加多个SSH key公钥
  7. XOOPS模块开发快速入门中文翻译(二)
  8. B站,N站,汤站,爬虫下载资源总结与技巧(一)
  9. [JZOJ100047] 【NOIP2017提高A组模拟7.14】基因变异
  10. nyoj--32--组合数
  11. 将base64格式的图片下载到本地
  12. 导航网/广告位/导航分类/可运营
  13. 合唱队形java_动态规划之合唱队形问题(最长递增子序列变形)
  14. react开发公众号踩坑日志
  15. Tridium公司的Niagara N4 使用
  16. RabbitMQ双节点集群搭建
  17. 有哪些有格调的免费素材网站?
  18. 高通王翔:每年收入20%投入研发
  19. 服务器固定战役非官方图
  20. 提效120%!优维科技助力德邦快递实现自动化运维

热门文章

  1. AndroidStudio使用入门
  2. zoj 1006 do the untwist
  3. Python 代码优化常见技巧
  4. SpringSecurity +Jwt 实现权限管理
  5. linux mysql5.6 主从配置,CentOS7+mysql5.6配置主从
  6. 计算机的iscsi配置,我们将了解如何设置自己的支持iscsi配置的存储节点
  7. go出现missing go.sum entry for module providing package 错误
  8. java byte 正数最大_关于JAVA中Byte类型的取值范围的推论(*零为正数,-128在计算机中的表示方法...)...
  9. skywalking原理_微服务链路追踪原理
  10. java unsafe park_Java魔法类——Unsafe应用解析