您好,欢迎光临本网站![请登录][注册会员]  
文件名称: FPGA整洁代码之道3-信号命名和定义应该明确.pdf
  所属分类: 专业指导
  开发工具:
  文件大小: 124kb
  下载次数: 0
  上传时间: 2019-08-24
  提 供 者: drji*****
 详细说明: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最新版进行解压.
  • 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
  • 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
  • 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.
 输入关键字,在本站1000多万海量源码库中尽情搜索: