微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > FPGA和CPLD > FPGA实战演练逻辑篇40:代码书写规范

FPGA实战演练逻辑篇40:代码书写规范

时间:06-23 来源:互联网 点击:

代码书写规范

本文节选自特权同学的图书《FPGA设计实战演练(逻辑篇)》

配套例程下载链接:http://pan.baidu.com/s/1pJ5bCtt

         虽然没有“国际标准”级别的Verilog或VHDL代码书写规范可供参考,但是相信每一个稍微规范点的做FPGA设计的公司都会为自己的团队制定一套供参考的代码书写规范。毕竟一个团队中,大家的代码书写格式达到基本一致的情况下,相互查阅、整合或移植起来才会“游刃有余”。因此,希望初学者从一开始就养成好的习惯,尽量遵从比较规范的书写方式。话说“幸福的家庭都是一样的,不幸的家庭各有各的不幸”,我们也相信,尽管不同的公司为自己的团队制定的Verilog或VHDL代码书写规范可能略有差异,但是真正好的书写规范应该都是大同小异的。所以,对于网络上漫天飞舞的书写规范,笔者本着“取其精华去其糟粕”的精神和大家一同分享。这里也不刻意区分verilog和VHDL书写规范上的不同,只是谈论一些基本的可供遵循的规范。(特权同学,版权所有)

(1)    标识符

         包括语法保留的关键词、模块名称、端口名称、信号名称、各种变量或常量名称等。语法保留的关键词是不可以作为后面几种名称使用的,Verilog和VHDL的主要关键字如下:

Verilog关键词

always  endmodule  medium  reg tranif0 and   end  primitive  module  release

tranif1  assign  endspecify  nand  repeattri  attribute  endtable  negedge  rnmos  tri0

begin  endtask  nmos  rpmos  tri1  buf  event  nor  rtrantriand  bufif0  for  not

rtranif0  trior  bufif1  force  notif0  rtranif1  trireg  case forever  notif1  scalared

unsigned  casex  fork  or signed  vectored casez  function  output  small  wait

cmos  highz0  parameter  specify  wand  deassign highz1  pmos  specparam  weak0

default  if  posedge  strength  weak1  defparam ifnone  primitive  strong0  while

disable  initial  pull0  strong1 wire edge  inout  pull1  supply0 wor else  input

pulldown  supply1  xnor  end integer  pullup  table xor endattribute  join  remos

task  endcase  large  real  time  endfunction macromodule  realtime tran

VHDL关键词

abs  downto  library  postponed  subtype access  else  linkage  procedure  then  

after  elsif  literal  process  to  aliasend loop pure transport  all  entity  map  range

type  and  exit  mod  record  unaffected  architecture  file  nand  register units

array  for  new  reject until assert  function  next  rem  use  attribute  generate

nor  report  variable begin  generic  not  return  wait  block group  null  rol  when

body  guarded  of  ror  while  buffer

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top