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

  1. 1、本文档共80页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

(2)ROM的VerilogHDL描述ROM即只读存储器,是一种只能读出事先存储的数据的存储器,其特性是存入数据无法改变,也就是说这种存储器只能读不能写。由于ROM在断电之后数据不会丢失,所以通常用在不需经常变更资料的电子或电脑系统中,资料并不会因为电源关闭而消失。modulerom(dout,clk,addm,cs_n);inputclk,cs_n;input[2:0]addm; output[7:0]dout;reg[7:0]dout;reg[7:0]rom[7:0];initialbegin rom[0]=8b0000_0000;rom[1]=8b0000_0001;rom[2]=8b0000_0010;rom[3]=8b0000_0011;rom[4]=8b0000_0100;rom[5]=8b0000_0101; rom[6]=8b0000_0110; rom[7]=8b0000_0111; endalways@(posedgeclk)begin if(cs_n) dout=8bzzzz_zzzz;else dout=rom[addm];endendmodulemodulerom_tb;regclk,cs_n;reg[2:0]addm;wire[7:0]dout;romU1(.dout(dout),.clk(clk),.addm(addm),.cs_n(cs_n));initialbeginclk=0;addm=0;cs_n=0;endalways#10clk=~clk;initialbegin repeat(7) #20addm=addm+1;endendmodule6.2.6FIFO设计FIFO(FirstInFirstOut)是一种先进先出的数据缓存器,通常用于接口电路的数据缓存。与普通存储器的区别是没有外部读写地址线,可以使用两个时钟分别进行写和读操作。FIFO只能顺序写入数据和顺序读出数据,其数据地址由内部读写指针自动加1完成,不能像普通存储器那样可以由地址线决定读取或写入某个指定的地址。FIFO由存储器块和对数据进出FIFO的通道进行管理的控制器构成,每次只对一个寄存器提供存取操作,而不是对整个寄存器阵列进行。FIFO有两个地址指针,一个用于将数据写入下一个可用的存储单元,一个用于读取下一个未读存储单元的操作。读写数据必须一次进行。其读写过程如下图所示:当一个堆栈为空时(图A),读数据指针和写数据指针都指向第一个存储单元,如所示;当写入一个数据时(图B)写数据指针将指向下个存储单元;经过七次写数据操作后(图C)写指针将指向最后一个数据单元;当经过连续八次写操作之后写指针将回到首单元并且显示堆栈状态为满(图D)。数据的读操作和写操作相似,当读出一个数据时,读数据指针将移向下一个存储单元,直到读出全部的数据,此时读指针回到首单元,堆栈状态显示为空。一个FIFO的组成一般包括两个部分:地址控制部分和存储数据的RAM部分。如下图所示。地址控制部分可以根据读写指令生成RAM地址。RAM用于存储堆栈数据,并根据控制部分生成的地址信号进行数据的存储和读取操作。这里的RAM采用的是前面提到的双口RAM。例:用VerilogHDL设计深度为8,位宽为8的FIFO//顶层模块:moduleFIFO_buffer(clk,rst,write_to_stack,read_from_stack,Data_in,Data_out);inputclk,rst;inputwrite_to_stack,read_from_stack;input[7:0]Data_in;output[7:0]Data_out;wire[7:0]Data_out;wirestack_full,stack_empty;wire[2:0]addr_in,addr_out;FIFO_controlU1(.stack_full(stack_full),.stack_empty(stack_empty),.write_to_stack(write_to_stack),.write_ptr(addr_in

您可能关注的文档

文档评论(0)

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

中医资格证持证人

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

领域认证该用户于2023年05月10日上传了中医资格证

1亿VIP精品文档

相关文档