文件名称:
FPGA整洁代码之道3-信号命名和定义应该明确.pdf
开发工具:
文件大小: 124kb
下载次数: 0
上传时间: 2019-08-24
详细说明:FPGA A 整洁代码之 道 3- 信号命名和定义应该
明确
在设计中,我们不断的给目录、源代码、文件、函数、变量、参数、类、封包进
行命名与定义。当一件工作需要进行的次数非常之多,足以证明它是不可或缺的
基本工作。我们一定要知道一点,基础工作是整个项目的基石。忽视抑或是轻视
基础工作是一件非常错误的工作理念。我们需要用最严谨认真的态度去对待,同
时作为回报,它将令你的作品显得专业而优雅。33
flag2<=1b1;
34
end
else if(end cntbegin
36
flag2<=1'b0
37
en
d
38
end
39
40 always (begin
41
if(flag 1)
42
4344 else if(flag 2)
464748 else begin
X=0;
end
end
这组代码的功能是当en1时计数5下;en2计数7下。在这组代码中,en1时
fag1拉高;end-cnt时fag1变低;en2时fag2拉高;end-cnt时fag2变低
也就是在fag1或者fag2时加一,然后用fag1和fag2分别区分计数5下和7
尽管能够实现功能,但是在这组代码中,存在信号定义不明确得现象。ag1和
fag2到底是什么意思?是表示fag1(fag2)时en1产生,还是en1(en2)时
的计数状态?为说明这一点就得用到 XXXXX(写加一条件时需要用到 add cnt=
fag1ag2)语句
这里重申一下我们很重要的那条简单原则,一个代码(信号)只做一件事且做好
这件事!按照这个规则,思路就是这样了:用一个信号fag1来表示计数状态,
另外一个信号ag2表示是由en1还是en2所产生。那么,加一与否的条件非常
简单,就是是否处于工作状态(fag1):同理,计数5或者7下只需要使用fag2
个信号。那么代码就会是这样
always (posedge clk or negedge rst n)begin
if(rst n)begin
cnt<=o
nd
eIse if(add cnt) begi
f(end cnt)
cnt<=0
dse
cnt < cnt+ 1.
10
end
11
en
d
3 assign add cnt= flag1
L4 assign end cnt=add cnt & cnt==X-1
6 always lposedge clk or negedge rst_ n)begin
if(rst_n==1b0 begin
18
flag 1 <=1b0
end
20
else if(ellen 2 ) begin
21
flag l <=1 bl
22
en
d
23
else if(end cnt begin
flag 1<=1b0
25
end
end
27
28 always (posedge clk or negedge rst n)begin
29
if(rst n==1 begin
30
flag2 <=1b1
31
en
d
32
else if(en)begin
33
flag2 <=1bO
34
end
35
else if(en)begin
36
flag2 <=1b1;
37
end
3839 end
404142
13 always ( )begin
44
if(flag==O)
X=5;
else
X=7;
end
看到这里,也许有些朋友会觉得:好像区别没那么大啊?ok,我们假设一下,如
果程序中不仅是是en1,en2,而是有en3,en4..enX,又或者将来需要维护和
优化,这两者的区别将会天壤之别。
关于信号定义方面,《至简设计法》的作者潘文明给出了一个近乎完美的答案。
例如在计数器代码设计中的“架构八步法”,第一步就是明确定义信号,用具体
清晰且无疑异的语句,定义每个信号所要实现的功能,以及重点描述信号的变化
情况。如下图中的信号列表。
信号列表。(4)(用文字版)
信号名1/0位宽说明
系统工作时钟
rst n
1系统复位信号
Din sop1当vd=1时才有效,输入报文头指示信号
Din eop
vld=1时才有效,输入报文尾指示信号
Din vld
1输入数据有效标志,高电平有效
Din err
1输入报文错误标志,在eop有效时才有效
8输入数据总线
Dout sop 1
vld=1时才有效,输出报文头指示信号
Dout eopo 1
vld=1时才有效,输出报文尾指示信号
Dout vld o1输出数据有效标志,高电平有效
dout O8输出数据总线
Dout err o1输出报文错误标志,在eop有效时才有效
从中可以看出,优秀的FPGA设计师一开始就从顶层结构明确定义信号,将可
能出现的混乱从根源上解决。这样的思路和方法实在非常值得我们每一位从业者
学习和借鉴。
FPGA培训定位非常明确,我们坚持帮助学员实现两个日标:
具备独立项目开发能力+FPGA就业
咨询QQ1465617980
我们认为,只要具备了独立开发项目能力,完成工作项目需求、导师项目要求、
高薪就业这些就都不成问题。经过明德扬专业的培训,您将完全掌握到一种科学
规范的FPGA设计方法,运用这套方法可以完成所有FPGA项日设计。完全具
备FPGA工程师的能力,足以满足个业或实际项目的要求。
(系统自动生成,下载前可以参看下载内容)
下载文件列表
相关说明
- 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
- 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度。
- 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
- 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
- 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
- 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.