zoukankan      html  css  js  c++  java
  • 用Sublime Text搭建简易IDE编写Verilog代码

    前言

    Verilog是一种硬件描述语言(HDL),该语言在Windows上有集成开发环境可以使用,如ModelSim,但ModelSim的编辑器不太好用因此笔者萌生了用Sublime Text3来编写Verilog的想法。下面我们将围绕着Sublime Text3搭建起一个简易的IDE, 我将尽量把步骤写的细致一点,这将会使整个过程看起来很繁琐,但这是值得的。

    原材料

    Sublime Text 3(访问密码:a7c6)

    icarus-verilog-on-windows(访问密码:7528)

    说明:Sublime Text是一款功能强大的编辑器,可扩展性非常强;而icarus-verilog是一款Verilog的编译器,在这里我们使用的版本是iverilog-0.9.7_setup.exe (latest stable release),在Icarus Verilog这个网站上有关于该编译器和Verilog语言的更多信息 。

    开始搭建

    后端

    这些步骤非常枯燥乏味。

    1. 安装icarus-verilog-on-windows。请记下安装目录,例如我的安装目录为F:iverilog,(下     面我也将以此目录为例)。注意安装过程中会有可选择的项,请勾选上所有项,尤其是                 和 gtkwave相关的项

    2. 打开控制台,输入命令iverilog,若显示’iverilog: no source files.’字样则执行第4步;否则执      行第3

    3. 配置系统变量。将F:iverilogin这一路径加到系统的Path变量中,执行第二步,观察输出是否     为’iverilog: no source files.’

    4. 当iverilog命令输出正常后,我们就可以用它来编译运行verilog源文件了,编写如下三个文件

    文件名:dff.v

    //dff modules represents a D type flip-flop

    module dff(d,clk,q,qn);

    input d,clk;

    output q,qn;

    reg q,qn;

    //Initialize flip-flop outputs

    initial begin q=0; qn=1; end

    //Change output on positive clock edge

    always @(posedge clk)

    begin

    q <= d;

    qn <= !d;

    end

    endmodule

    dff.v

    文件名:tester.v

    module tester(q,qn,clk,d);

    input q,qn;

    output clk,d;

    reg clk,d;

    //Run the test once

    initial

    begin

    clk=0;

    //Dump results of the simulation to ff.cvd,important!

    $dumpfile(“dff.vcd”);

    $dumpvars;

    //Generate input signal d

    d=0; #9 d=1; #1 d=0; #1 d=1; #2 d=0; #1 d=1; #12 d=0;

    #1 d=1; #2 d=0; #1 d=1; #1 d=0; #1 d=1; #1 d=0; # 7 d=1;

    #8 $finish;

    end

    //Generate periodic clock signal

    always

    begin

    #4 clk=!clk;

    end

    endmodule

    tester.v

    文件名:testbench.v

    `include "tester.v"

    `include "dff.v"

    //Test bench connects the flip-flop to the tester module

    module testbench;

    wire clk,d,q,qn;

    dff ff1(d,clk,q,qn);

    tester tst1(q,qn,clk,d);

    endmodule

    5. 将上述三个文件放在同一个文件夹下,打开控制台,进入该目录,输入iverilog testbench.v,     此时应当没有任何输出,再次进入该文件夹,发现多出了一个名为a.out的文 件,这个文件就是     我们编译testbench.v得到的目标文件

    6. 在控制台输入vvp a.out,输出’VCD info: dumpfile dff.vcd opened for output.’字样,此命令     是执行我们刚刚编译生成的a.out再次进入该文件夹,发现多出来了一个名为dff.vcd的文               件,这个文件是我们执行a.out后生成的波形文件

    7. 在控制台输入gtkwave dff.vcd观察波形。如果发现没有波形,不要惊慌,在窗口右侧上选择某     一个module,然后在右下选择某一个变量,再点击insert就可以看到输出的波 形了

    到这里,我们已经完成了这个简易的IDE的后端的操作

    前端

    前端的搭建完全依靠Sublime Text 3丰富的插件。

    1. 安装Sublime Text 3。后面我将其简称为ST,就像安装QQ一样,一路点next就好了

    2. 安装关键词高亮插件。用ST打开一个verilog文件(后缀名为.v)中,发现是没有高亮显示的,       按ctrl+shift+p,调出ST的包管理窗口,输入install package,再输入verilog后找到对应的         项,回车,等待安装完成,重启ST,再次打开一个verilog文件,发现已经可以高亮显示了

    3. 绑定快捷键编译。打开ST,Preference—>Browse Packages—>找到User文件夹,将这个文       件( 访问密码 7f77)放到该文件夹下

    4. 再次重启ST,随便打开一个verilog文件,按ctrl+b,就可以编译该文件了,编译正确输出ST会   有”[Finished in 0.6s]”类似的输出,如果出现其他情况,作如下设置Tools—>Build System-        >Verilog,其效果和在控制台输入iverilog xxx.v是一样的,都会在文件目录下生成编译后的        a.out文件

    5. 其实,到这一步就可以了,我们可以在ST中编写编译好verilog文件后,再打开控制台运行、查     看波形,但是这样仍然不够方便,那么可不可以直接在ST中运行、查看波形呢?其实,我们只       需要在ST中可以运行控制台命令就可以了,幸运的是,ST为我们提供了这样的插件。

    6. 安装SublimeREPL插件。同安装关键词高亮插件一样,按ctrl+shift+p,调出ST的包管理窗         口,输入install package,再输入SublimeREPL后找到对应的项,回车,等待安装完成,重启       ST,然后ctrl+shift+p,输入sublimeREPLshell(sublimeREPLPowerShell也可以),在新打开       的ST标签页中就可以运行cmd命令了(把这个标签页放在下面是个不错的选择,可以参考一下       下面的图片)。

    至此,所有步骤已经结束。下面是我的简易IDE截图


     

    结语

    在简书的第一篇文章,从自己博客园转过来的。今天放假了,好开心。



    作者:hfz
    链接:http://www.jianshu.com/p/1607e2f48ecf
    來源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
    转载自:http://www.jianshu.com/p/1607e2f48ecf
  • 相关阅读:
    leetcode108 Convert Sorted Array to Binary Search Tree
    leetcode98 Validate Binary Search Tree
    leetcode103 Binary Tree Zigzag Level Order Traversal
    leetcode116 Populating Next Right Pointers in Each Node
    Python全栈之路Day15
    Python全栈之路Day11
    集群监控
    Python全栈之路Day10
    自动部署反向代理、web、nfs
    5.Scss的插值
  • 原文地址:https://www.cnblogs.com/chengqi521/p/7597367.html
Copyright © 2011-2022 走看看