关于对Verilog代码的维护问题

对,你没看错,本文就是教你怎么写出让同事无法维护的代码。
命名用拼音
让他google翻译也不知道这个单词是什么意思,(怎么可能有人定义信号用拼音,对,我见过),这只是先跟他开个玩笑,重点在后面。
assign语句尽量要写的长
assign flag = data_vld && mode_sel && enable_flag && (data_num[3:0] > 4'd7) && (ram_addr[4:0] > 4'd15) && ((cur_state != state_a) && (next_state == state_a)) || ((cur_state != state_b) && (next_state == state_b)); 类似于这样,相信我,他看代码的时候,收集覆盖率的时候都会哭的。
if里面的条件尽量写长些,else-if的分支尽量写多些
always @(*)begin if(data_vld && mode_sel && enable_flag && (data_num[3:0] > 4'd7) && (ram_addr[4:0] > 4'd15) && ...) else if(enable_flag && (data_num[3:0] > 4'd7) && (ram_addr[4:0] > 4'd15))... ... 效果同上
计数器不清零
在不容易被发现的计数器的部分,别给这个计数器清零,让他自己上溢,然后再从0开始计数,这样还可以在满足功能的情况下通过很多case,甚至可能到最后都不会验出错。但是冷不丁的什么时候出现问题,惊出他一身冷汗。
状态机命名没有含义
最简单的方法是,s0,s1,s2,s3。直接让他懵逼
高级一点的方法是,cal_pre,代表计算前一个状态,最后在这个状态把所有的计算都一干。
norm、proc,这两个状态本来是连续跳转的,但在norm状态啥都别干,空等一拍出来,然后在proc状态把norm和proc状态的事情通通干掉,直接让他两眼瞪直。
计数器等于常数比较判断
状态机跳转出来的使能条件为把一个计数器计数到一个固定值,比如cnt == 147,状态机跳出当前状态,相信我如果没有记录,最后不光他忘了,你也会忘记这个数是什么意思。
信号命名尽量相似
a_size,a_size_num,a_norm_size,a_special_size
cnt1,cnt2,cnt3,谁知道这几个cnt分别是干嘛的
这样一套组合拳,直接把他打趴。
制造x态不传播假象
assign data_out[5:0] = ({6{data_vld0}} & data0[5:0]) | ({6{data_vld1}} & data1[5:0]);always @(*)begin if(data_vld0) data_out[5:0] = data0[5:0]; else if(data_vld1) data_out[5:0] = data1[5:0]; else data_out[5:0] = 6'd0; end 第一种写法,如果data_vld0是x态,会在仿真的时候直接暴露出来,但是换第二种写法,就不一定了。是因为if-else和case不能传播不定态,有的eda工具有x态传播选项,可以强行传播,一般也需要license,但并不是所有的eda工具都有这个功能。所以,如果深谙这样的操作,甚至可以直接把芯片搞废,让他直接原地爆炸。
打补丁,补丁套补丁
调试代码的过程中遇到棘手的bug,反复修改了多次问题都无法收敛,千万别想着重写,采用打补丁的方式,补丁套补丁,补丁的代码甚至要多过原代码,这样他才无法继续维护。
设计文档描述
设计文档描述关键的地方一笔带过,尽量别详细。
总之
总之,我们的口号是—— *write everywhere, read nowhere*


焊接机器人与人工焊接的对比
三相同步发电机的组成及工作原理
【大大芯方案】转换效率再升级,大联大推出基于onsemi产品应用于5KW的电源方案
推动5G商用,美国将分配更多的毫米波频谱,实现高效传输
动力电池HPPC该怎样进行测试呢
关于对Verilog代码的维护问题
国新裕承联手推动数字经济发展和资产管理新机遇
光合作用土壤呼吸综合测定系统【莱恩德LD-GH60+】
西门子Smart200PLC的跑马灯程序解析
离心机的分类、功能及应用
维科杯·OFweek2019中国物联网行业年度评选,Nordic Semiconductor参评
亚马逊新款Fire 7和Fire HD 8平板:6月7日正式上市,便宜又使用的平板!
云知声黄伟向我们讲述做芯片的重要性
水流开关的作用
激光二极管模拟器的试验
监控网络中的光纤交换机如何选择
TD-SCDMA直放站对网络性能的影响
海默机器人全新机器人编程系统EngSign 5.0重磅发布
中芯国际上调全年收入增长预期23%-25%
杭州水务热线呼叫中心升级 提高客服处理效率