Verilog编码规范
来源:互联网 发布:韩国人的生活水平知乎 编辑:程序博客网 时间:2024/05/29 19:40
Verilog编码规范
工程结构
顶层模块使用原理图设计,看起来更直观。其余各子模块用Verilog书写,书写完成后封装成模块,以便让顶层模块调用。二级及以下子模块不必封装,直接被上级模块调用即可。
代码格式
文件头
/************************************************************************* * Copyright (c) 2017, Jimbo Zhang * All rights reserved. * * File name : GetP.v * Brief : Get pixel original data. * Reassemble the data, according to the accuracy. * Then delivery to checkP module or debugM module, according to debug_en. * Revision : 1.00 * Author : Jimbo Zhang * Date : 2017.05.10 * Update : Original.*************************************************************************/
必要的注释
- 必要的注释是需要的,以便使代码结构更清晰。
*
/* DEFINEs -------------------------------------------------------------*//* PARAMETERs ----------------------------------------------------------*//* REGs ----------------------------------------------------------------*//* WIREs ---------------------------------------------------------------*//* ASSIGNs -------------------------------------------------------------*/
always
- always功能尽可能单一,多写几个always也无妨。
- always前一定要有注释,说明该段程序的作用。
//get pre_en//store en's previous statealways @(posedge clk)begin pre_en <= en;end
命名风格
- 低电平有效的信号要在名字后面加’_n’后缀。
编程风格
- 在模块定义的时候顺便就将端口定义好,以缩短代码长度。
module getP(input clk,//pixel clockinput rst_n,input debug_en,input [7:0] r_i,g_i,b_i,input hs_i,vs_i,de_i,output reg [7:0] r_o,g_o,b_o,output reg hs_o,vs_o,de_o);
- 复位使用异步复位同步释放。
- 状态机要写成3段式的。
- 逻辑都在底层模块中实现,顶层模块只做例化,避免胶连逻辑(glue logic)。一般顶层模块用原理图设计,其余用Verilog设计。
- 一个模块只使用一个时钟。以便让综合器综合出较优的结果。
- 信号在不使用的时候都disable掉,以降低功耗。
- 进入FPGA的信号必须先同步,以提高系统工作频率(板级)。
0 0
- Verilog编码规范
- verilog规范
- Verilog代码编写规范
- Verilog 代码 书写规范
- verilog编程规范
- Verilog代码编写规范
- Verilog代码规范
- verilog编程注意事项(阻塞/复位/异步/编码规范/常见错误)
- Verilog编码风格 --- 注释
- VERILOG编码原则
- Verilog代码编写规范-转贴
- Verilog代码编写规范小结
- Verilog/VHDL 语言描述规范
- Verilog HDL代码书写规范
- Verilog HDL代码书写规范
- Verilog HDL 语言书写规范
- 编码规范
- 规范编码
- Android组件学习系列(一)
- 最深刻的java多线程讲解
- bool类型
- continue在while循环的使用,禁忌
- Win7系统显示文件扩展名的方法
- Verilog编码规范
- javascript中数组和字符串的方法比较
- 【搜索】洛谷 P1451 求细胞数量
- Logger4j详解
- iOS开发禁用多个按钮同时点击导致误触
- JS魔法学堂 属性与特性的区别
- RecyclerView 上下左右四种间距的设置方法
- spring使用xml方式配置属性值
- Java多线程学习(吐血超详细总结)