yuedx的个人空间 https://blog.eetop.cn/317611 [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

解读verilog代码的一点经验

已有 3825 次阅读| 2009-6-3 21:48 |个人分类:FPGA设计

   http://blog.ednchina.com/ilove314/23257/category.aspx?page=5

    学习FPGA其实也不算久,开始的时候参考别人的代码并不多,大多是自己写的,那时候做时序逻辑多一些。参加了中嵌的培训班,一个多月的时间在熟悉ISE软件的使用以及verilog语法方面下了苦功,也参考了不少书,算是为自己打下了比较好的基础。因为那时候培训的方向是软件无线电方面的,所以做了很多有关的模块程序,之前的日志里也发表了很多,关键是一个兴趣,感觉仿真后看到自己的一个个算法思想得到实现真有成就感。后来停了一段时间,因为实在没有比较有意思的活干了。

    直到前段时间开始使用SP306的开发板,然后会参考它们的代码,受益匪浅吧。现在组长已经给正活干了,跟的大项目我是基本都有所熟悉了,然后那个里面做总控的FPGA的代码开始进行总攻了,要把前辈们的代码都消化了,然后更好的为下一代升级版的产品服务。这个看verilog程序估计是大家都比较头疼的事,小的模块都没问题,大模块大项目,有时候就比较难以入手了,因为HDL的设计是不同于软件编程的,软件其实无非一个大while或者再有一些中断,大多是顺序执行的,慢慢一步一步往下走总会弄明白。HDL的并行性很强,要是你按照软件的思路来那肯定行不通,那么该怎么办呢?我就班门弄斧说点自己的一点快速进阶的小窍门吧。

    既然HDL设计是并行的,那么就只能各个击破了。我的习惯是先抓几个重要端口,比如时钟(CLK)、复位(RESET)等出现频率比较高的端口,把它先弄清楚,比如时钟是什么频率的?复位是高有效还是低有效?

    然后呢,最好是对照原理图来理解程序。这就需要你有一定功底的硬件常识了,一些常用器件的操作时序什么的一定要做到心中有数,至少要知其一二吧,这样在读程序时才会达到事半功倍的效果。比例说你要先读懂FPGAAD芯片的程序,那么你先把AD的各个端口(如片选,读写,转换,转换完成中断等端口)在verilog程序中出现的地方多做一下分析,比如我找CS信号,看看什么时候它拉低有效,那么你可以在Find in file窗口中输入CS,然后ENTER,这样ISE就会在底层的信息窗口中罗列出所有使用了CS信号的语句方便你的查找分析,你把每个出现CS的地方分析到了,那么你就明白verilog在硬件上是如何操作CS信号的。所有信号多分析完以后,我想你就明白了这个ADFPGA的接口了。

    读懂verilog有时比较累,因为程序是别人写的,你要让别人牵着鼻子走也是难免的。关键是要有耐心,多分析,有条件可以问问高手(最好是代码的作者)。


点赞

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 13

    粉丝
  • 1

    好友
  • 35

    获赞
  • 156

    评论
  • 4698

    访问数
关闭

站长推荐 上一条 /1 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-4-26 17:19 , Processed in 0.028249 second(s), 14 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部