首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

Verilog代码标准

Verilog代码标准

一、工程建立规范:
1、工程的组成:
(1)          一个顶层文件夹
(2)          顶层文件夹下,至少包括以下四个子文件夹
a)        project文件夹:存放ISE工程文件,包括ise、bit、mac等文件
b)        source文件夹:存放verilog源文件
c)        explain文件件:存放注释说明文档
d)        test文件夹:存放测试程序代码,可进一步分为软件调试程序、硬件调试程序
2、        工程的命令:
(3)          定层文件夹命令为top_xxx,xxx为工程的识别名称
(4)          顶层文件夹的子文件夹分别命名为:project、source、explain、test
二、 RTLCODE 规范

1.标准的文件头
    在每一个版块的开头一定要使用统一的文件头,其中包括作者名,模块名,创建日期,概要,更改记录,版权等必要信息。
统一使用以下的文件头:
//**************************************************************
// COPYRIGHT(c)2005, Hislicon Technologies Co, Ltd
// All rights reserved.
//
// IP LIB INDEX : IP lib index just sa UTOPIA_B
// IP Name     :  the top module_name of this ip,usually, is same
//               as the small ip classified name just as UTOPIA      
// File name    :  file_name of the file just as “tx_fifo.v”
// Module name :  module_name of this file justas “TX_FIFO”
// Full name    :  complete Emglish nme of thisabbreviated
//
// Author       :  Athor/ID
// Email        :  Author’s email
// Data         :   
// Version       :  V 1.0
//
//Abstract       :
// Called by      :  Father Module
//
// Modification history
//------------------------------------------------------------------------------------------------------
// //
// $Log$
//
//*********************************************************************

2. 标准的module格式 (module 整体结构)
对于模块的书写采用统一的格式便于项目内部成员的理解和维护,我们用批处理建立了一个MODULE模块,其内容解释如下:
l 端口定义按照输入,输出,双向的顺序:
l 模块名、模块例化名统一,例化名前加大写U_以区分 (多次例化另加标识 ),三者关系:
文件名 :xxx .v    (小写)
模块名 :Xxx   (首字母大写)
例化名 :U1_xxx  (首字母大写)
IP 内部所有的模块名都要加IP名或者IP名简称作前缀,如USB_CTRL、USB_TX_FIFO。

// *****************************
//  DEFINE MODULE PORT  //
//******************************
//
// module  MODULE_NAME (
                            // INPUT
                            input_port_1,
                            …
                            input_port_m,

                            // OUTPUT
                            output_port_1,
                            …
                            output_port_m,
                           );

//*****************************
//  DEFINE PARAMETER  //
// ******************************
parameter…

//******************************
// DEFINE INPUT
//******************************
input           rst_n   ;   // reset, active low .
input           clk_*   ;   // clock signal , 50M .
input  [n:0]    a_din   ;    // *****
input  [k:0]    b_din   ;    // *****

//******************************
继承事业,薪火相传
返回列表