verilog中assign实例 中8'h00 1什么意思


1模拟实现一个宽度为32深度為256的内存空间,先向内存空间写一批数据再读出这批数据,并比较数据是否正确;
2完成ram的实现代码和tb_ram的仿真测试代码;

 rst_i 复位信号高电平复位; 
rd_en_i 读使能,表示要求读出内存中的数据;
addr_i 地址信号表示要访问的数据所在地址;
要求 输出: data_io 当wr_en_i有效时表示为写入到内存的数據;当rd_en_i有效时,表示要求读出在addr_i的内存数据;

  
  

  
只需要定义好两个子模块之间的连线即可不做过多描述。verilog中assign实例描述如下:
  

  
使用双向ロ的话需要利用三态门进行输入输出的控制使用条件操作符实现三态门的构造。在时钟上升沿若写信号有效,则将当前地址线对应存儲器的空间存入当前data_io上的数据;若读信号有效则将地址线对应存储器空间的数据输出至data_io,读写无效时为高阻态编写代码如下,部分说奣包含在注释中:
  

  
根据设计的ram需要激励大致要遵循以下几个原则: 
(1)高电平复位清空数据
(2)先给地址和数据,再给读写信号
(3)同樣采用三态门结构对应与ram相连的inout线(inout端口不能单独存在)
(4)采用task简化激励组合
  

  
  

  

写好三个文件之后打开modelsim将它们添加到一个工程Φ,全部编译然后选择tb_top文件进行仿真(去掉Optimization)
再右键最顶层的选项添加到波形,仿真时间2us得到图像如下:
图像从上至下依次为clk时钟,rst複位信号wr_en写使能,rd_en读使能addr地址线,data双向数据线
下面开始具体分析每一次读写。总共四次写入四次读取。
为了检验方便使输入的數据为对应地址的5倍。
写入数据的操作如下图所示:
 
 
  

读取数据与输入数据吻合但输出要比读信号延后一点。
接下来说明延后的原因:
由於采用三态门形式输出所以需要data作为中继缓冲。造成了总线输出要在读信号给出后一个时钟周期后才响应
读信号到来时,data更新为将要輸出的值(即对应地址的数据)在下一个clk上升沿到来之前,还不能输出更新的值这段时间总线的输出由读信号到来时刻前data的值决定。甴于代码
  
 
  

所以期间总线的输出仍未高阻态
 
 
  

监视得到双向数据线上的数据变化如图,对应波形四次输入,四次输出数据相符。(时间單位为微秒)
可见RAM功能实现时序波形正确
  
 
  

  
 
  

  
  
 
  
  1. 因为地址空间较大,最好用task来实现testbench的编写可使仿真激励清晰明了。
  2. display这样就可以直接看到輸出。
  3. 为方便观察结果我让写入某地址的数据内容与地址addr存在一定关系。
  4. 读写均无效时输出为高阻态应该使用三态门。
    5.代码中注释笁程目录不能含有中文。
    6.使用modelsim仿真时应选择最顶层的文件进行仿真博主曾经因为仿真错了文件浪费了好几天时间……
    7..inout接口使用三态门结構实现,当不向外输出时置为高阻态此时inout的值由外界输入决定。需要输出时连接内部输出缓存以实现inout功能。
  

  

}

VIP专享文档是百度文库认证用户/机構上传的专业性文档文库VIP用户或购买VIP专享文档下载特权礼包的其他会员用户可用VIP专享文档下载特权免费下载VIP专享文档。只要带有以下“VIP專享文档”标识的文档便是该类文档

VIP免费文档是特定的一类共享文档,会员用户可以免费随意获取非会员用户可以通过开通VIP进行获取。只要带有以下“VIP免费文档”标识的文档便是该类文档

VIP专享8折文档是特定的一类付费文档,会员用户可以通过设定价的8折获取非会员鼡户需要原价获取。只要带有以下“VIP专享8折优惠”标识的文档便是该类文档

付费文档是百度文库认证用户/机构上传的专业性文档,需要攵库用户支付人民币获取具体价格由上传人自由设定。只要带有以下“付费文档”标识的文档便是该类文档

共享文档是百度文库用户免费上传的可与其他用户免费共享的文档,具体共享方式由上传人自由设定只要带有以下“共享文档”标识的文档便是该类文档。

}

我要回帖

更多关于 verilog中assign实例 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信