zoukankan      html  css  js  c++  java
  • 【接口时序】1、软件与Verilog基本格式规范说明

    一、 说明

      以前总是没有记录的习惯,导致遇到问题时总得重新回忆与摸索,大大降低了学习效率,从今天开始决定改掉这个坏毛病,认真记录自己的Verilog学习之路,希望自己能一直坚持下去。

    二、 软件资源与硬件资源

      软件资源说明:

      1、UltraEdit:本博客所有的Verilog代码全部都在UltraEdit中编辑, UltraEdit具有语法高亮与自动补全(设置方法在本文最后面)功能,而且界面美观,绝对是写代码的利器。

      下载链接:

      https://pan.baidu.com/s/15aiPB5Mq0zEY51ftmzFwhA 密码:ebzt

      2、ISE14.7或Vivado2016.3:本博客的FPGA选择的是Xilinx的,所以选择Xilinx集成开发套件,本来之前一直在用7系列的FPGA,但是目前手头只有一块Spartan-6系列的二手开发板,所以代码的验证都在Spartan-6上验证,但好在FPGA的结构基本类似,Verilog的代码基本可以通用。

      ISE14.7安装包与破解包下载链接:

      https://pan.baidu.com/s/1CVGNKZ9tr7dpcDmq3ZhM8Q 密码:zyd2

      3、ModelSim-win64-10.4-se:仿真工具使用ModelSim 10.4版本,其他版本也可以,无过多要求。

      下载链接:

      https://pan.baidu.com/s/1N8nOHDla1G8jx4Q_DGRHcg 密码:371g

      4、Windows-7 64-bit系统:建议大家在Windows-7 64-bit系统做开发 ,Windows-7 64-bit系统对以上软件的兼容性都比较好。我的笔记本电脑用的是Windows-8.1系统,安装ISE14.7以后导入ModelSim仿真库,选择库目录的时候出现了卡住的情况,这种就是ISE14.7与WIndows-8.1不太兼容导致的,解决办法如下。

      解决Windows-8.1与ISE14.7不兼容的办法:

      找到ISE安装目录的中的nt64文件夹,我的ISE的安装目录在D盘,所以nt64的路径如下D:\Xilinx\14.7\ISE_DS\ISE\lib\nt64,然后把nt64文件夹中的libPortability.dll文件名改成libPortability.dll.org,再把libPortabilityNOSH.dll重命名为libPortability.dll。这样可以有效解决一部分兼容性的问题。

      5、更多软件资源可以关注文末的微信公众号并输入关键字“软件安装包”获取

      硬件资源说明:

      1、目前手头只有一块二手的黑金AX545开发板,FPGA的型号是:XC6SLX45-2CSG324,所以代码都会在这个板子上进行验证。对于其他型号的FPGA只要理解原理了应该也不难上手。

    三、 Verilog命名规范与格式说明

      Verilog语言并没有固定的命名规范与编写格式,每个人根据自己的喜好而定就行了,我自己比较喜欢下面规范与格式。这里先写一部分,后面如果有补充的在加上。

      Verilog命名规范:

      1、所有输入端口以大写I加下划线开始,然后后面内容的一律用小写,信号比较长的话,后面的小写用下划线隔开。如:

        input I_clk;

        input I_led_mode;

        如果输入端口低电平有效的话就在末尾加下划线和小写n,如:

        input I_rst_n;

      2、所有输出端口以大写O加下划线开始,然后后面内容的一律用小写,信号比较长的话,后面的小写用下划线隔开。如:

        output O_led;

        output O_led_mode;

      3、所有reg变量以大写R加下划线开始,然后后面内容的一律用小写,信号比较长的话,后面的小写用下划线隔开。如:

        reg R_cnt;

        reg R_cnt_100ms;

      4、所有wire变量以大写W加下划线开始,然后后面内容的一律用小写,信号比较长的话,后面的小写用下划线隔开。如:

        wire W_cnt;

        wire W_led_mode;

      5、所有常量(parameter变量)以大写C加下划线开始,然后后面内容的一律用大写以示与变量的区别,信号比较长的话,后面的大写用下划线隔开。如:

        parameter C_IDLE;

        parameter C_FLASH_READ;

      6、命名一定要有意义,看着变量名就大概能猜出它的作用,并适当采用缩写,下面几个缩写是写代码过程中比较常用的缩写。

        ‘rd’代替‘read’

        ‘wr’代替‘write’

        ‘cnt’代替‘count’

        ‘rst’代替‘reset’

        ‘addr’代替‘address’

      Verilog编写格式:

      1、always块的begin…end换行写,如:   

        always @(posedge I_clk or negedge I_rst_n)

              begin

                     …

              end

      2、if…else if…else语句的begin…end换行并空一个Tab键(记得设置一个Tab为4个空格)写,如果if或者else下面只有一条语句那么就省略begin…end如:        

        if

          begin

                          …

                   end

            else if

                   begin

                          …

                   end

            else

                   …

      3、case…endcase语句中的条件后面如果只有一条语句,则直接在冒号后面写语句,default一定要写上,即使里面什么语句也没有。最好用UltraEdit的列模式功能把那些冒号和分号都上下对齐。如

       case(...)

              C_IDEL        :      ……      ;

              C_FLASH    :      ……      ;

              default         :                    ;

       endcase

       case…endcase语句中的条件后面如果有多条语句,则直接在冒号后面换行加Tab键写begin…end。同样用UltraEdit的列模式功能把那些冒号和分号都上下对齐。

        case(R_state)

              C_IDEL        :

                     begin

                            ……    ;

                     end

              C_ FLASH  :

                     begin

                            ……    ;

                     end

              default       :

                    begin

                            ……    ;

                      end

        endcase

    4、例化模块的时候例化名就是在模块名前面加一个大写的U和下划线,并且用UE的列模式功能把括号和逗号都对齐。如:

          led_work  U_ led_work

          (

                 . I_clk                   (I_clk                  ),

                 . I_rst_n               (I_rst_n               ),

                 .O_led_mode      (O_led_mode      ),

                 .O_led_out          (O_ led_out         )

      );

    附、 UltraEdit设置方法

      下载上文的UltraEdit压缩包并解压,里面有两个文件,一个是UE的安装包,一个是语法高亮文件

       

      双击exe文件安装好了以后打开UE会提示选择风格,我比较喜欢黑暗风格,选完风格以后在菜单栏找到高级选项卡,然后在高级选项卡下载找到配置菜单

       

      单击配置菜单,弹出如下界面

       

      接着在上面的界面中找到自动完成功能并选中,然后按照下图进行设置

       

      接着在找到自动换行/制表符设置,按照如下方式设置

       

      最后找到编辑器显示下面的语法加亮,选择安装包中的wordfile.uew配置文件就OK了,如下图所示

       

    欢迎关注我的公众号:FPGA之禅

     

  • 相关阅读:
    Java程序:从命令行接收多个数字,求和并输出结果
    大道至简读后感
    大道至简第一章读后感Java伪代码
    Creating a SharePoint BCS .NET Connectivity Assembly to Crawl RSS Data in Visual Studio 2010
    声明式验证超时问题
    Error message when you try to modify or to delete an alternate access mapping in Windows SharePoint Services 3.0: "An update conflict has occurred, and you must re-try this action"
    Upgrading or Redeploying SharePoint 2010 Workflows
    Upgrade custom workflow in SharePoint
    SharePoint 2013中Office Web Apps的一次排错
    How to upgrade workflow assembly in MOSS 2007
  • 原文地址:https://www.cnblogs.com/liujinggang/p/9462706.html
Copyright © 2011-2022 走看看