当前位置: 首页 > news >正文

青岛网站推广途径顶尖文案

青岛网站推广途径,顶尖文案,中卫网站推广营销,手机搭建网站软件牛客网Verilog刷题——VL46 题目解析答案 题目 根据题目提供的双口RAM代码和接口描述,实现同步FIFO,要求FIFO位宽和深度参数化可配置。电路的接口如下图所示。   双口RAM端口说明: 同步FIFO端口说明: 双口RAM代码如下&#xff…

牛客网Verilog刷题——VL46

  • 题目
  • 解析
  • 答案

题目

  根据题目提供的双口RAM代码和接口描述,实现同步FIFO,要求FIFO位宽和深度参数化可配置。电路的接口如下图所示。
在这里插入图片描述
  双口RAM端口说明:

在这里插入图片描述
  同步FIFO端口说明:

在这里插入图片描述
  双口RAM代码如下,可在本题答案中添加并例化此代码。

module dual_port_RAM #(parameter DEPTH = 16,parameter WIDTH = 8)(input wclk
,input wenc
,input [$clog2(DEPTH)-1:0] waddr  //深度对2取对数,得到地址的位宽。
,input [WIDTH-1:0] wdata      //数据写入
,input rclk
,input renc
,input [$clog2(DEPTH)-1:0] raddr  //深度对2取对数,得到地址的位宽。
,output reg [WIDTH-1:0] rdata //数据输出
);reg [WIDTH-1:0] RAM_MEM [0:DEPTH-1];always @(posedge wclk) begin
if(wenc)
RAM_MEM[waddr] <= wdata;
end always @(posedge rclk) begin
if(renc)
rdata <= RAM_MEM[raddr];
end endmodule 

  输入输出描述:

信号类型输入/输出位宽描述
clkwireIntput1读写时钟信号
rstnwireIntput1读写异步复位信号,低电平有效
wincwireIntput1写使能信号
rincwireIntput1读使能信号
wdatawireIntputWIDTH写数据
wfullwireOutput1写满信号
remptywireOutput1读空信号
rdatawireOutputWIDTH读数据

解析

  同步FIFO中,读操作与写操作均在同一时钟域下进行,不涉及跨时钟域操作,所以只需要用一个计数器来计数当前FIFO中存储的实际数据个数(写入数据个数减去读出数据个数),再用于判断产生空满信号即可。所以同步FIFO设计的要点就在于以下几点:

  • 空满信号判断

答案

`timescale 1ns/1ns
/**********************************RAM************************************/
module dual_port_RAM #(parameter DEPTH = 16,parameter WIDTH = 8)(input wclk,input wenc,input [$clog2(DEPTH)-1:0] waddr  //深度对2取对数,得到地址的位宽。,input [WIDTH-1:0] wdata      	//数据写入,input rclk,input renc,input [$clog2(DEPTH)-1:0] raddr  //深度对2取对数,得到地址的位宽。,output reg [WIDTH-1:0] rdata 		//数据输出
);reg [WIDTH-1:0] RAM_MEM [0:DEPTH-1];always @(posedge wclk) beginif(wenc)RAM_MEM[waddr] <= wdata;
end always @(posedge rclk) beginif(renc)rdata <= RAM_MEM[raddr];
end endmodule  /**********************************SFIFO************************************/
module sfifo#(parameter	WIDTH = 8,parameter 	DEPTH = 16
)(input 					clk		, input 					rst_n	,input 					winc	,input 			 		rinc	,input 		[WIDTH-1:0]	wdata	,output reg				wfull	,output reg				rempty	,output wire [WIDTH-1:0]	rdata
);//---------------------------------
// 使用内部计数器设计同步FIFO
//---------------------------------
reg [$clog2(DEPTH)-1:0] waddr;
reg [$clog2(DEPTH)-1:0] raddr;
reg	[$clog2(DEPTH):0] cnt;//内部计数器
always @(posedge clk or negedge rst_n)if(!rst_n)cnt <= 'd0;else if(!wfull && !rempty && winc && rinc)cnt <= cnt;else if(!wfull && winc)cnt <= cnt + 1;else if(!rempty && rinc)cnt <= cnt - 1;elsecnt <= cnt;//空满判断
always @(posedge clk or negedge rst_n)if(!rst_n) beginwfull <= 1'b0;rempty <= 1'b0;endelse if(cnt == DEPTH) beginwfull <= 1'b1;rempty <= 1'b0;endelse if(cnt == 0) beginwfull <= 1'b0;rempty <= 1'b1;endelse beginwfull <= 1'b0;rempty <= 1'b0;end//写地址
always @(posedge clk or negedge rst_n)if(!rst_n)waddr <= 'd0;else if(!wfull && winc)waddr <= waddr + 1'd1;elsewaddr <= waddr;//读地址
always @(posedge clk or negedge rst_n)if(!rst_n)raddr <= 'd0;else if(!rempty && rinc)raddr <= raddr + 1'd1;elseraddr <= raddr;//双端口RAM例化
dual_port_RAM  
#( .DEPTH(DEPTH),.WIDTH(WIDTH)
)
dual_port_RAM_inst
(.wclk(clk),.wenc(winc && !wfull),.waddr(waddr),  //深度对2取对数,得到地址的位宽。.wdata(wdata),      	//数据写入.rclk(clk),.renc(rinc && !rempty),.raddr(raddr),  //深度对2取对数,得到地址的位宽。.rdata(rdata) 		//数据输出
);endmodule
http://www.yayakq.cn/news/896182/

相关文章:

  • 盐城网站推广哪家好网页制作教程古诗词
  • 盛泽网站建设公司网站如何做百度收录
  • 建设阿里巴巴网站首页电子商务免费网站建设
  • 织梦网站反应速度慢wordpress官方安装主题
  • 做网站常用哪种语言wordpress横幅插件
  • 专业高端企业网站建设南京网络推广建站
  • 网站设计项目策划ppt网络营销策划推广公司一一
  • 网站没有icp备案怎么访问建设银行预约纪念钞网站
  • 视频网站开发流程图微信公众号怎么创建免费注册
  • 网站备案流程何时改2022年国内重要新闻
  • 小网站开发中国最大的外贸平台
  • 安远网站建设wordpress 2007 后门
  • 印刷建设网站酒店网站程序
  • 为什么要建设种苗供求网站新网页游戏传奇
  • 品牌策划公司网站orchard可以做哪些网站
  • asp.net网站开发试题如何让广域网访问利用公网ip和本地服务器建设的网站
  • ps如何做网站横幅一键抓取的网站怎么做
  • 西安网站设设产品工艺设计
  • 苏州设置网站建设宿迁网站建设与管理
  • php医院网站开发兼职2014中文网站seo排名名单
  • 网站自己做自己的品牌好做免费wordpress建立
  • 大型游戏门户网站织梦模板wordpress .sql
  • 东莞市建设企业网站服务机构ui交互设计是什么
  • 加个自己的网站网站ip屏蔽
  • 价格优化网站建设seo优化文章网站
  • 网站建设交流会wordpress免费建站教程
  • 发卡网站搭建免费发布信息网站平台
  • 河南旅游网站建设免费网址大全免费观看
  • 网站访问流量怎么赚钱个人网站推广软件
  • 网站制作需要哪些wordpress移除头部无用