原创 【我要崛起】第一章 所谓的顶层设计

2014-2-19 22:36 1998 10 10 分类: FPGA/CPLD 文集: 基于SDRAM的图像处理

 

众所周知,FPGA的顶层设计方法有:
HDL设计文件(文本文件)和电路图设计文件(原理图文件)
如图所示:
qq图片20140217130946.jpgqq图片20140217125815.jpg
个人觉得原理图文件来设计的顶层文件比较适合简单的逻辑设计来使用,用文本文件来编写的顶层文件更适合比较大型的,复杂的项目设计使用。说到用文本文件来设计顶层文件,具体的方法是神马?该如何去做?
首先,当你接到一个项目的时候,心里要有数,所有接口改如何去定义,就拿我做的项目为例子。我做的是一个SD卡调试,用串口连接,显示到串口调试助手上面,来比较原来在SD卡里面数据的差别,显示一样,就证明调试通过,期间用led灯来显示SD卡初始化状态的一个情况。由第一幅图就可以了解到,你想调试SD卡,就需要几个基本的模块来组成:SD卡模块(包括SPI的控制模块),FIFO模块,串口调试模块。这些都是我所说的心里有数的概念,你一定要理解这个心理有数,到底是有神马一个的数。接下来的事就非常好办了,设计顶层文件(我用的是verilog编写的),特别注意的一点就是:文件名一定要跟顶层文件的项目名字一致。图一可以知道,你要定义的接口主要有这些,如下图:
qq图片20140217131107.jpg
这是最基本的输入输出接口,不包括中间接口定义,这个你学verilog语法的时候就已经学会的知识,这里不再多说。
下图是顶层模块设计的基本例化模块样本:
qq图片20140217132909.jpg
接下来就是个个模块的例化:
qq图片20140217132300.jpgqq图片20140217132317.jpg
有人就会问,那例化模块多出来的接口,又如何定义呢?如下图所示:
qq图片20140217133413.jpg
要注意的一点就是,例化的模块,如 .led(led) 。外面的led是你在子模块里面要定义的接口,这可以随便改,你爱怎么称呼就怎么称呼,但是里面的led就是你顶层模块定义好的接口,一定要对应的填上。
其实当你做了几个比较像样的项目后,就会觉得顶层模块的设计是非常简单,关键还是要看好接口的定义,和设计,细心最重要。
 
 
PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
10
关闭 站长推荐上一条 /3 下一条