网站大量收购独家精品文档,联系QQ:2885784924

北航数字EDA基础实验报告(9).docxVIP

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

数字EDA基础实验报告

实验九利用SRAM设计一个FIFO(练习十二)

[注:最后一个为四选一的综合实验]

100227班XXX一对实验的理解

本实验要求我们利用现有的SRAM模块,设计一个LIFO(后进先出)队列管理状态机。通过本实验学习和掌握存取队列管理的状态机设计的基本方法,了解并掌握存储器构成的借口基本技术,同时编写完整的测试模块。

在设计讲解中,我们可以详细了解到FIFO(先进先出)的数据存储结构如下:

将FIFO抽象为环形数组,并用两个指针:读指针(fifo_rp)和写指针(fifo_wp)控制对该环形数组的读写。其中,读指针fifo_rp指向下一次读操作所要读取的单元,并且每完成一次读操作,fifo_rp加一;写指针fifo_wp则指向下一次写操作时存放数据的单元,并且每完成一次写操作,fifo_wp加一。由fifo_rp和fifo_wp的定义易知,当FIFO被读空或写满后,fifo_rp和fifo_wp将指向同一单元,但在读空和写满之前FIFO的状态是不同的,所以如果能区分这两种状态,再通过比较fifo_rp和fifo_wp就可以得到nempty和nfull信号了。下图为FIFO工作状态的示意。

清楚了FIFO的设计思路,我们可以参考它来完成练习题中的LIFO(后进先出)的设计思路。

二实现思路

与FIFO类似我们可以将LIFO工作状态绘图如下:

我们可以看到,写指针总在读指针大一位。读数据时,输出rp指针指向数据,之后读写指针均减一;写数据时,数据写入wp指针指向数据,然后读写指针均加一。还有“再写即满”和“再写即空”两种临界状态:当wp指向最大地址和rp指向最小地址。最后就是“满”和“空”两个极限状态:满状态发生在“再写即满”+“写操作”同时产生情况下;而空状态发生在“再写即空”和“读操作”同时产生情况下。

参考已给出的FIFO代码,类似的,我们可以继续定义指针lifo_wp_next与lifo_rp_next,分别代表写指针再写一个数据之后的位置和读指针再读一个数据之后的位置。如下图所示:

四个指针相应变化状态与临界状态判定条件如下:

初始化操作:wp=1;rp=0;wp_next=2;rp_next=-1;

读操作完毕后:wp=rp;rp=rp_next;wp_next=wp_next-1;rp_next=rp_next-1;

读操作完毕后:wp=rp;rp=rp_next;wp_next=wp_next-1;rp_next=rp_next-1;

“再写即满”状态标志判定:wp==N;(本题N=`SRAM_SIZE-1)

“再读即空”状态标志判定:rp==0

三实验源代码

1LIFO模块源代码(由FIFO改写)

`defineSRAM_SIZE8//为减小对lifo控制器的测试工作量,置SRAM空间为8Byte

`timescale1ns/1ns

modulelifo_interface(

in_data,//对用户的输入数据总线

out_data,//对用户的输出数据总线,

liford,//lifo读控制信号,低电平有效

lifowr,//lifo写控制信号,低电平有效

nfull,

nempty,

address,//到SRAM的地址总线

sram_data,//到SRAM的双向数据总线

rd,//SRAM读使能,低电平有效

wr,//SRAM写使能,低电平有效

clk,//系统时钟信号

rst);//全局复位信号,低电平有效

//来自用户的控制输入信号

inputliford,lifowr,clk,rst;

//来自用户的数据信号

input[7:0]in_data;

output[7:0]out_data;

reg[7:0]in_data_buf,//输入数据缓冲区

out_data_buf;//输

文档评论(0)

147****4268 + 关注
实名认证
文档贡献者

认真 负责 是我的态度

1亿VIP精品文档

相关文档