好文档 - 专业文书写作范文服务资料分享网站

同步缓冲器(FIFO)的设计与实现..

天下 分享 时间: 加入收藏 我要投稿 点赞

图2

注:顶层综合电路图由图1与图2两部分构成,其由三个端口相连,它们依次是:

Not_write_n , Not_reset_n , Not_read_n

16

5.2门级综合电路示意图

图1

注:此为顶层图中读写地址指针产生模块

17

注:此为顶层图中的ram存储器部分的门级图

18

5.3输入输出描述

输入:in_data: 输入数据端口,位宽为8位; read_n: 读使能端,当read_n=0时,可以读出数据; write_n: 写使能端,当write_n=0时,可以写入数据; clock: 时钟信号, 在时钟的正边沿进行采样;

reset_n: 复位信号,当reset_n=0时,计数器及读写都被清零(即:读写地址指针都指向0)

输出:out_data: 输出数据端口,位宽为8位;;

full:FIFO状态信号,当full=1时,表明该FIFO存储器已经写满; empty:FIFO状态信号,当empty=1时,表明该FIFO存储器已经读空;

6. 心得体会与建议(小组成员:刘鑫)

通过这次课程设计,确实学到了不少东西!不光是知识上的长进,其他方面也得到了提高!

上完第一节介绍课,在BBS上看了学长的建议说是要选一个模拟的题就比较有挑战性,可以学不少东西。就有一点想挑个模电的题,不过后来还是抽中了数电的题。后来跟同学们一样都被认为抽到数电是很幸运的!因为确实不是一件简单的事情!

我们组的课题是“FIFO同步缓冲器的设计”,过了一个暑假都不记得缓冲器是什么了,于是又拉出厚厚的数电的书开始翻,看到了寄存器,移位寄存器,计数器这些东西,觉得有点熟悉了,但是到具体的这个16*8的缓存器是个什么概念,我们的意见还是有点分歧,于是去网上找这些概念,弄明白这意思。就看到有的说同步就是同一个时钟脉冲,有的又说同步不是这个概念,后来我们就一起商讨了一下,统一了题目的意思:同步FIFO(即输出输入端时钟频率一致),异步复位,其存储能力为(16x8),输出两个状态信号:full与empty,以供后继电路使用。

弄清了题目的意思之后,就开始按照设计的程序来完成各部分的内容。首先我们在网上找到了一些关于IC课程设计的流程介绍,我们也就使根据那些介绍的流程来一步步完成我们的任务。在查资料的同时才发现,因特网真的可以帮我们不少的忙,其实我们平时的好多资料都可以借助网络来查询,所以这次还下载了不少这方面的知识以备后用。

19

我们设计的这个缓冲器是以寄存器为基本单位,其存储能力是由其内部定义的存储寄存器决定的。这样我们通过这个课设就把数点的内容再复习了一下,这学期就要开设书店的电工实验,这也给我们带来了一点知识方面的准备!

在明确了设计思想,画完结构图后,就要开始写代码了。虽然在课堂上,郑老师给我们讲了不少verilog语言的基本用法,但涉及到自己来写代码还是不太在行,所以第一步还是找来些资料学习verilog。所以说通过这次可设掌握verilog的用法,进一步熟悉verilog,对以后的学习和工作都有不少帮助!这中间当然也会遇到不少自己不懂的东西啦,也锻炼了自己自学的能力和钻研的精神。

写完代码后当然就是通过软件来验证我们的思想啦。这当然少不了要熟悉软件啦,以前还没有接触这些软件,所以这又是一大收获,熟悉了软件的使用这对以后的工作和学习当然有不少好处了。

不过由于我们的思路还比较清晰,编译的时候就没有发现什么错误,只是少部分的语法错误,不过那也害惨我们了。也是找了好久才找出来啊!当时大家都讨论得很积极,考虑了好多方面,后来当我们发现那个错误是因为我们输代码的时候输错了一个字母,虽然有点内疚因为是自己太粗心打错了,但全组人当时都叫了起来,很是高兴,旁边的人还用异样的眼光看着我们,似乎觉得我们不正常。那时候真的体会到成功的甘甜,更觉得集体的智慧真是伟大!

在课设之前我们就明确了这是一个集体的任务,不能单独的靠哪一个人去完成。也不能说是哪一个人的任务。虽然整个的课设步骤有点杂,我们没有细化到谁负责哪一块,但是每个步骤都是经过我们三个人的商讨,包括纠错都是在一起议论,每遇到一个问题都是我们三人在一起琢磨,都发表自己的意见,最后才达成了许多共识,共同完成了这份课程设计!这也就是我觉得通过这次的课程设计体会到的最大的一点心得!

总的来说,这次的课程设计并没有开始想象的那么难,但确实可以从中学到不少东西,对自己动手能力的训练还有独立处理问题的能力以及集体合作精神的培养,都是极好的一次机会。对个人自学能力的培养更有意义。所以我觉得这种设计性的课程有必要一直开下去,不过我觉得应该再多讲一些关于设计流程方面的问题,像初次接触的确实不知道怎么动手去做,而且在开始动手上面花费太多时间觉得有点浪费,应该把重点放在功能的实现以及代码的编写上。可以鼓励多种实现方法,就是出一些比较简单的题,但是可以有几种不同的实现方法,这样也可以弥补一下难易的梯度!

以上就是我通过这次课程设计所体会到的一点收获,以及个人的一点意见。

20

0ai5u3s5x97u3cm9b9nu86wqu5roq7003c5
领取福利

微信扫码领取福利

微信扫码分享