【接口时序】一、软件与Verilog基本格式规范说明

1、 说明微信

  之前老是没有记录的习惯,致使遇到问题时总得从新回忆与摸索,大大下降了学习效率,从今天开始决定改掉这个坏毛病,认真记录本身的Verilog学习之路,但愿本身能一直坚持下去。编辑器

 

2、 软件资源与硬件资源工具

  软件资源说明:学习

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

  下载连接:3d

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

 

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

  ISE14.7安装包与破解包下载连接:开发

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

 

  三、ModelSim-win64-10.4-se:仿真工具使用ModelSim 10.4版本,其余版本也能够,无过多要求。

  下载连接:

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

 

  四、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。这样能够有效解决一部分兼容性的问题。

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

  硬件资源说明:

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

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

  Verilog语言并无固定的命名规范与编写格式,每一个人根据本身的喜爱而定就好了,我本身比较喜欢下面规范与格式。这里先写一部分,后面若是有补充的在加上。

  Verilog命名规范:

  一、全部输入端口以大写I加下划线开始,而后后面内容的一概用小写,信号比较长的话,后面的小写用下划线隔开。如:

    input I_clk;

    input I_led_mode;

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

    input I_rst_n;

  二、全部输出端口以大写O加下划线开始,而后后面内容的一概用小写,信号比较长的话,后面的小写用下划线隔开。如:

    output O_led;

    output O_led_mode;

  三、全部reg变量以大写R加下划线开始,而后后面内容的一概用小写,信号比较长的话,后面的小写用下划线隔开。如:

    reg R_cnt;

    reg R_cnt_100ms;

  四、全部wire变量以大写W加下划线开始,而后后面内容的一概用小写,信号比较长的话,后面的小写用下划线隔开。如:

    wire W_cnt;

    wire W_led_mode;

  五、全部常量(parameter变量)以大写C加下划线开始,而后后面内容的一概用大写以示与变量的区别,信号比较长的话,后面的大写用下划线隔开。如:

    parameter C_IDLE;

    parameter C_FLASH_READ;

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

    ‘rd’代替‘read’

    ‘wr’代替‘write’

    ‘cnt’代替‘count’

    ‘rst’代替‘reset’

    ‘addr’代替‘address’

 

  Verilog编写格式:

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

    always @(posedge I_clk or negedge I_rst_n)

          begin

                 …

          end

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

    if

      begin

                      …

               end

        else if

               begin

                      …

               end

        else

               …

  三、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

四、例化模块的时候例化名就是在模块名前面加一个大写的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之禅

相关文章
相关标签/搜索