第六章 Verilog HDL高级程序设计举例.ppt

  1. 1、本文档共80页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * Microelectronics School Xidian University rom[6]=8'b0000_0110; rom[7]=8'b0000_0111; end always@(posedge clk) begin if(cs_n) dout<=8'bzzzz_zzzz; else dout<=rom[addm]; end endmodule module rom_tb; reg clk, cs_n; reg [2:0]addm; wire [7:0]dout; rom U1(.dout(dout),.clk(clk),.addm(addm),.cs_n(cs_n)); initial begin clk=0; addm=0; cs_n=0; end always #10 clk=~clk; initial begin repeat(7) #20 addm=addm+1; end endmodule 啮媳割盆情壕芜晒乞凳尸授门青硕盐蛙芯巫现涸京嫡畸送骋铲破拱孙柜趁第六章 Verilog HDL高级程序设计举例第六章 Verilog HDL高级程序设计举例 6.2.6 FIFO设计 FIFO(First In First Out)是一种先进先出的数据缓存器,通常用于接口电路的数据缓存。与普通存储器的区别是没有外部读写地址线,可以使用两个时钟分别进行写和读操作。FIFO只能顺序写入数据和顺序读出数据,其数据地址由内部读写指针自动加1完成,不能像普通存储器那样可以由地址线决定读取或写入某个指定的地址。 FIFO由存储器块和对数据进出FIFO的通道进行管理的控制器构成,每次只对一个寄存器提供存取操作,而不是对整个寄存器阵列进行。FIFO有两个地址指针,一个用于将数据写入下一个可用的存储单元,一个用于读取下一个未读存储单元的操作。读写数据必须一次进行。 * * Microelectronics School Xidian University 臻黔芽宁匙藩巫瞒耻壮督离踩沧愈狡漫得职疵蜘镣翁蛇涕唾殷杠眷踩瑚喘第六章 Verilog HDL高级程序设计举例第六章 Verilog HDL高级程序设计举例 其读写过程如下图所示: * * Microelectronics School Xidian University 当一个堆栈为空时(图A),读数据指针和写数据指针都指向第一个存储单元,如所示;当写入一个数据时(图 B)写数据指针将指向下个存储单元;经过七次写数据操作后(图 C)写指针将指向最后一个数据单元;当经过连续八次写操作之后写指针将回到首单元并且显示堆栈状态为满(图 D)。数据的读操作和写操作相似,当读出一个数据时,读数据指针将移向下一个存储单元,直到读出全部的数据,此时读指针回到首单元,堆栈状态显示为空。 龟设联著能恭淫必锨蝇告刨闲氨炽触准果洋纲徐撤僧吻挝娠饼孕海左酬鸯第六章 Verilog HDL高级程序设计举例第六章 Verilog HDL高级程序设计举例 一个FIFO的组成一般包括两个部分:地址控制部分和存储数据的RAM部分。如下图所示。地址控制部分可以根据读写指令生成RAM地址。RAM用于存储堆栈数据,并根据控制部分生成的地址信号进行数据的存储和读取操作。这里的RAM采用的是前面提到的双口RAM。 * * Microelectronics School Xidian University 牟痴抬熙坊磺杉周挖磊埠剥垮天蛹扭旨烫泊酸玩疏诵寅擦诽径透珐洱均棒第六章 Verilog HDL高级程序设计举例第六章 Verilog HDL高级程序设计举例 * * Microelectronics School Xidian University 例:用Verilog HDL设计深度为8,位宽为8的FIFO //顶层模块: module FIFO_buffer(clk,rst,write_to_stack,read_from_stack,Data_in,Data_out); input clk,rst; input write_to_stack,read_from_stack; input [7:0] Data_in; output [7:0] Data_out; wire [7:0]Data_out; wire stack_full, stack_empty; wire [2:0] addr_in, addr_out; FIFO_control U1

文档评论(0)

82393aa + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档