4625|8

732

帖子

0

TA的资源

纯净的硅(高级)

楼主
 

FPGA起步ABC之代码风格 [复制链接]

先说几句题外话,关于代码风格这部分,我非常努力地想把这部分写好,前前后后一共改了4版,但没有一版让自己满意,很遗憾!


我之所以愿意在代码风格这部分花如此之多的时间,两个原因:第一就是因为论坛里面大部分都是一些尚未从事工作的朋友,所以想尽可能地给朋友们一些自认为比较好的建议,可以帮助大家养成良好的代码习惯;第二是因为代码风格这部分本身就很重要,现在的工作越来越注重团队协作,优良的代码风格,本身就是对同事的一种尊重、就是团队协作能力的一种体现!

 

那什么样的代码风格比较好?我个人认为做到如下两点就OK

1. 从阅读代码的人来说,如果所写的代码,能够被一个新手或者刚入门者可以很轻松的理解,这样的代码,OK

2. 从阅读代码的工具工具来说,无论什么综合工具,综合出来的电路都一样,这样没有任何歧义的代码,OK

此帖出自FPGA/CPLD论坛

最新回复

写的很棒 深入浅出~支持一下~  详情 回复 发表于 2012-11-22 21:15
点赞 关注
个人签名学习的乐趣在于分享。
 

回复
举报

732

帖子

0

TA的资源

纯净的硅(高级)

沙发
 

如何写出可以让人理解的代码(以verilog语言为例)?

1. 代码要比较好理解,最容易做到的就是把代码写短,因此在每个always语句块尽可能只处理一个信号,或者只处理一组相关度很高的信号(例如ram的读/写信号、片选信号); 2. 从代码格式上来说,写出比较好看的代码,遵从大家普遍认可的代码格式,也有助于对代码的阅读,所谓普遍认可的代码格式,可以参考下例: always @(posedge work_clk or negedge rst_b)//always语句顶格开始 begin // 每个always 块都以begin开始,以end结束,且begin和end前都空4个空格 if(!rst_b)//begin 和 end 之间的语句相对于begin和end,都空4个空格 begin signal_out <= 1’b0;//所有赋值语句相对于begin语句,退后4个空格 end else if(condition) begin signal_out <= data_in; end end 3.对每一个代码,都应该添加一个头文件,所谓的头文件,其内容可以包括:代码编写人的名字,代码编写的时间,代码的版本号,以及每次代码修改时所做的改动的相关说明,代码能够实现的功能,代码所使用的算法简单介绍,信号时序图等,参考下例: // ----------------------------------------------------- // // author : tx_xy; // 2011-9-3 // ver 1.0 // function describe // timing describe // ----------------------------------------------------- // 4. 代码要容易理解,更重要的一点是在定义信号名称时要易懂,能够做到望文生义,当然还需要详尽的注释 4.1 所有输入输出的信号都必须要有说明; input [7:0] image_data_8_bit; //input data from ccd output sram_odd_wr; //odd image data sram write enable, 1 = write, 0 = read output sram_even_wr; //even image data sram write enable, 1 = write, 0 = read 4.2 代码内部所有定义的reg和wire信号,都必须要有说明; 4.3 对一个always语句块,建议都描述其实现的功能; 4.4 根据算法流程,或者数据通道流向,从前往后安排代码;在算法实现过程中,建议按照算法实现步骤,每一个步骤所对应的always语句块都标注清楚属于算法的哪一个步骤!

PS:晕了,这个回复,怎么排版才会好看点呢?
[ 本帖最后由 tx_xy 于 2011-9-3 02:26 编辑 ]
此帖出自FPGA/CPLD论坛
个人签名学习的乐趣在于分享。
 
 

回复

7219

帖子

195

TA的资源

五彩晶圆(高级)

板凳
 
来支持原创
此帖出自FPGA/CPLD论坛
 
 
 

回复

547

帖子

0

TA的资源

纯净的硅(初级)

4
 
 1. 从阅读代码的人来说,如果所写的代码,能够被一个新手或者刚入门者可以很轻松的理解,这样的代码,OK; 2. 从阅读代码的工具工具来说,无论什么综合工具,综合出来的电路都一样,这样没有任何歧义的代码,OK!
此帖出自FPGA/CPLD论坛
个人签名嵌入式培训www.51great.org
 
 
 

回复

6892

帖子

0

TA的资源

五彩晶圆(高级)

5
 

楼主定义的这两个标准是FPGA是深入理解FPGA后提炼的精髓。也是从事FPGA工程人员的终极目标!

此帖出自FPGA/CPLD论坛
个人签名一个为理想不懈前进的人,一个永不言败人!
http://shop57496282.taobao.com/
欢迎光临网上店铺!
 
 
 

回复

234

帖子

0

TA的资源

一粒金砂(高级)

6
 
顶一下。
此帖出自FPGA/CPLD论坛
个人签名努力就有不清不楚的收获。
 
 
 

回复

95

帖子

0

TA的资源

一粒金砂(中级)

7
 
精髓
此帖出自FPGA/CPLD论坛
 
 
 

回复

199

帖子

0

TA的资源

纯净的硅(初级)

8
 
不容易啊
此帖出自FPGA/CPLD论坛
 
 
 

回复

15

帖子

0

TA的资源

一粒金砂(初级)

9
 
写的很棒 深入浅出~支持一下~
此帖出自FPGA/CPLD论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表