MamBa_24 发表于 2014-3-22 18:10:26

第一章 所谓的顶层设计

本帖最后由 MamBa_24 于 2014-3-22 18:14 编辑

众所周知,FPGA的顶层设计方法有:
HDL设计文件(文本文件)和电路图设计文件(原理图文件)
如图所示:


个人觉得原理图文件来设计的顶层文件比较适合简单的逻辑设计来使用,用文本文件来编写的顶层文件更适合比较大型的,复杂的项目设计使用。说到用文本文件来设计顶层文件,具体的方法是神马?该如何去做?
首先,当你接到一个项目的时候,心里要有数,所有接口改如何去定义,就拿我做的项目为例子。我做的是一个SD卡调试,用串口连接,显示到串口调试助手上面,来比较原来在SD卡里面数据的差别,显示一样,就证明调试通过,期间用led灯来显示SD卡初始化状态的一个情况。由第一幅图就可以了解到,你想调试SD卡,就需要几个基本的模块来组成:SD卡模块(包括SPI的控制模块),FIFO模块,串口调试模块。这些都是我所说的心里有数的概念,你一定要理解这个心理有数,到底是有神马一个的数。接下来的事就非常好办了,设计顶层文件(我用的是verilog编写的),特别注意的一点就是:文件名一定要跟顶层文件的项目名字一致。图一可以知道,你要定义的接口主要有这些,如下图:

这是最基本的输入输出接口,不包括中间接口定义,这个你学verilog语法的时候就已经学会的知识,这里不再多说。
下图是顶层模块设计的基本例化模块样本:


接下来就是个个模块的例化:



有人就会问,那例化模块多出来的接口,又如何定义呢?如下图所示:


要注意的一点就是,例化的模块,如 .led(led) 。外面的led是你在子模块里面要定义的接口,这可以随便改,你爱怎么称呼就怎么称呼,但是里面的led就是你顶层模块定义好的接口,一定要对应的填上。
其实当你做了几个比较像样的项目后,就会觉得顶层模块的设计是非常简单,关键还是要看好接口的定义,和设计,细心最重要。

w717342899 发表于 2014-3-22 18:46:38

沙发发 。。。。。。。。。。。。。。。。。。。

ywl0409 发表于 2014-3-22 19:41:40

如果连基本的与非关系都搞不清楚,哪来的顶层设计?

MamBa_24 发表于 2014-3-22 21:01:58

ywl0409 发表于 2014-3-22 19:41
如果连基本的与非关系都搞不清楚,哪来的顶层设计?

呵呵,那你回去学好基本的再来看吧,不算迟

fengyunyu 发表于 2014-3-22 21:04:57

讲的挺好!

ywl0409 发表于 2014-3-22 21:16:02

MamBa_24 发表于 2014-3-22 21:01
呵呵,那你回去学好基本的再来看吧,不算迟

{:lol:} {:lol:} {:lol:} {:lol:} {:lol:}

qwerttt 发表于 2014-3-22 22:36:50

LZ先不用那么快出第一章吧
楼上的也是些高手了,确实与非关系不要小看了
不知LZ在学基础时了解过组合逻辑与时序逻辑分开的概念?用几段式的状态机?

MamBa_24 发表于 2014-3-23 10:02:52

qwerttt 发表于 2014-3-22 22:36
LZ先不用那么快出第一章吧
楼上的也是些高手了,确实与非关系不要小看了
不知LZ在学基础时了解过组合逻辑与 ...

我的本意是想用项目讲心得,好吧。先将基础的理一遍吧!!!这几篇都是我在ENDChina上个月发的,看来得不到支持噢!!!

cxhy 发表于 2014-3-23 19:18:38

顶楼主,说得很仔细。支持一下。

hyghyg1234 发表于 2014-3-24 12:56:53

楼主继续,我是来学习的。

Mortimer 发表于 2014-3-24 14:27:17

顶顶顶顶顶,我是来顶的

four_zhg 发表于 2014-3-24 14:44:52

我是来学习的。。。

MamBa_24 发表于 2014-3-24 18:03:43

four_zhg 发表于 2014-3-24 14:44
我是来学习的。。。

相互学习吧!!!

lu976046395 发表于 2014-4-2 11:14:39

学习学习
页: [1]
查看完整版本: 第一章 所谓的顶层设计