- 1、本文档共15页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
的verilog代码
实验内容 (1)FIFO存储器的设计 (2)熟悉modelsim设计环境 FIFO是英文First In First Out 的缩写,是一种先进先出的数据缓存器,他与普通存储器的区别是没有外部读写地址线,这样使用起来非常简单,但缺点就是只能顺序写入数据,顺序的读出数据,其数据地址由内部读写指针自动加1完成,不能像普通存储器那样可以由地址线决定读取或写入某个指定的地址。FIFO的一些重要参数 FIFO的宽度:也就是英文资料里常看到的THE WIDTH,它指的是FIFO一次读写操作的数据位,就像MCU有8位和16位,ARM 32位等等。 FIFO的深度:THE DEEPTH,它指的是FIFO可以存储多少个N位的数据(如果宽度为N)。如一个8位的FIFO,若深度为8,它可以存储8个8位的数据,深度为12 ,就可以存储12个8位的数据。 满标志:FIFO已满或将要满时由FIFO的状态电路送出的一个信号,以阻止FIFO的写操作继续向FIFO中写数据而造成溢出(overflow)。 空标志:FIFO已空或将要空时由FIFO的状态电路送出的一个信号,以阻止FIFO的读操作继续从FIFO中读出数据而造成无效数据的读出(underflow)。 读指针:指向下一个读出地址。读完后自动加1。 写指针:指向下一个要写入的地址的,写完自动加1。 对于FIFO,读写指针都指向一个内存的初始位置,每进行一次读写操作,相应的指针就递增一次,指向下一个内存位置。当指针移动到了内存的最后一个位置时,它又重新跳回初始位置。在FIFO非满或非空的情况下,这个过程将随着读写控制信号的变化一直进行下去。如果FIFO处于空的状态,下一个读动作将会导致向下溢(underflow),一个无效的数据被读人;同样,对于一个满了的FIFO,进行写动作将会导致向上溢出(overflow),一个有用的数据被新写入的数据覆盖。这两种情况都属于误动作,因此需要设置满和空两个信号,对满信号置位表示FIFO处于满状态,对满信号复位表示FIFO非满,还有空间可以写入数据;对空信号置位表示FIFO处于空状态,对空信号复位表示FIFO非空,还有有效的数据可以读出。FIFO存储器的设计module fifo (clk, rstp, din, writep, readp, dout, emptyp, fullp);input clk;input rstp; //复位信号input [15:0] din;input readp; //读信号input writep; //写信号output [15:0] dout;output emptyp; //空标志output fullp; //满标志parameter DEPTH = 2, MAX_COUNT = 2‘b11; //定义地址最大值reg emptyp;reg fullp;reg [15:0] dout;reg [(DEPTH-1):0] tail; //定义读指针reg [(DEPTH-1):0] head; //定义写指针// 定义计数器 reg [(DEPTH-1):0] count;reg [15:0] fifomem[0:MAX_COUNT]; //定义fifomem存储器有4个16位的存储器// dout被赋给tail指向的值always @(posedge clk) begin if (rstp == 1) begin dout = 16‘h0000; //复位信号有效置0 end else begin dout = fifomem[tail]; //将fifomem中第tail个单元赋给dout endend always @(posedge clk) begin if (rstp == 1b0 writep == 1b1 fullp == 1b0) begin fifomem[head] = din; //写入 endendalways @(posedge clk) begin if (rstp == 1b1) begin head = 2‘b00; //复位 end else begin if (writep == 1b1 fullp == 1b0) begin head = head + 1; end endendalways @(posedge clk) begin if (rstp == 1b1) begin tail = 2‘b00; //复位 end else begin if (readp == 1b1 emptyp == 1b0) begin t
您可能关注的文档
- 大气压强》上课用ppt课件.pptx
- 大数定律和中心极限定理上课用.pptx
- 大数定律22326ppt课件.pptx
- 大全侧重点函数上.ppt
- 大新生英文能力分班及英文能力检测」成果概要.pptx
- 大销售人员的素质.pptx
- 大学 大学物理总复习电磁学部分.pptx
- 大学计算机基础微型计算机和pc机.pptx
- 大学计划使用教程ppt 2.pptx
- 大学计划使用教程ppt 4.pptx
- 小升初专项复习:盈亏问题(含解析)-人教版六年级数学下册.pdf
- 五年级解方程专项练习题大全(每日一练,共14份).pdf
- 人教版六年级数学下册期末考试综合复习检测卷(一)含解析.pdf
- 2024人教版七年级生物下册期末易错知识点背诵提纲.pdf
- 高考历史一轮复习讲义:20世纪的战争与和平 课型1:知识体系讲解.pdf
- 火车过桥问题(含解析)-人教版六年级数学下册.pdf
- 小升初专项复习:逆推还原问题(含解析)-人教版六年级数学下册.pdf
- 流水行船问题-(含解析)-人教版六年级数学下册.pdf
- 小升初专项复习:火车过桥问题(含解析)-人教版六年级数学下册.pdf
- 2024-2025学年人教版七年级英语下册Unit7 A Day to Remember提升训练.pdf
文档评论(0)