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

汕头建站免费模板好听高雅又聚财的公司名字

汕头建站免费模板,好听高雅又聚财的公司名字,网站access数据怎么做,网站建设格式合同本文使用 Zhihu On VSCode 创作并发布跨时钟域同步#xff08;异步FIFO#xff09;之前学习了跨时钟域下的单bit信号同步的方法#xff0c;这些单bit信号多是作为控制信号或者标志信号来使用#xff0c;再实际的项目中#xff0c;处理多bit数据也是十分常见的#xff0c;…本文使用 Zhihu On VSCode 创作并发布跨时钟域同步异步FIFO之前学习了跨时钟域下的单bit信号同步的方法这些单bit信号多是作为控制信号或者标志信号来使用再实际的项目中处理多bit数据也是十分常见的即数据的同步。异步FIFO的实现其实本质上和双口RAM是一样的其实现思路就是将数据在src_clk的时钟下写入自己设定大小的ram中然后通过读时钟des_clk从ram中将数据读出来即可。本次还是以一个具体的例子来说明其实现现在我们从一个较低的时钟域进入到一个较高的时钟域中低时钟域的数据信号为8bit数据现在需要将其缓存并转换成32bit的信号送入32位宽的总线上进行传输。具体实现代码如下module nsync_fifo(input src_clk,input rst_n,input des_clk,input [8-1:0] fifo_data_in,input fifo_data_in_vaild,output reg fifo_data_out_vaild,output [32-1:0] fifo_data_out);// write fifo reg [1:0] buffer_wr_addr; reg [32-1:0] temp_buffer; always (posedge src_clk or negedge rst_n) beginif (!rst_n)beginbuffer_wr_addr 2b00;endelsebeginbuffer_wr_addr (fifo_data_in_vaild) ? buffer_wr_addr 1b1 : buffer_wr_addr;end endalways (posedge src_clk) beginif (fifo_data_in_vaild)begincase(buffer_wr_addr)2d0:temp_buffer[0:8] fifo_data_in;2d1:temp_buffer[8:8] fifo_data_in;2d2:temp_buffer[16:8] fifo_data_in;2d3:temp_buffer[24:8] fifo_data_in;endcaseend end//gen wr_fifo signal sync reg fifo_wr; reg fifo_wr_sync; wire fifo_wr_clr; reg fifo_wr_dfb; always (posedge src_clk) beginfifo_wr (buffer_wr_addr fifo_data_in_vaild); endassign fifo_wr_clr !rst_n | fifo_wr_sync; // feed backalways (posedge fifo_wr or posedge fifo_wr_clr) beginif (fifo_wr_clr)beginfifo_wr_dfb 1b0;endelse beginfifo_wr_dfb 1b1;end endalways (posedge des_clk) // under des_clk sampled beginfifo_wr_sync fifo_wr_dfb; end// recv fifo wire recv_fifo_wr; reg [1:0] recv_fifo_wr_addr;assign recv_fifo_wr fifo_wr_sync; always (posedge des_clk or rst_n) beginif (!rst_n)beginrecv_fifo_wr_addr 2b00;endelsebeginrecv_fifo_wr_addr (recv_fifo_wr) ? recv_fifo_wr_addr 1b1 : recv_fifo_wr_addr;end end// sync fifo data reg [32-1:0] fifo_0; reg [32-1:0] fifo_1; always (posedge des_clk) beginif (recv_fifo_wr) // only buffer_wr_addr 3 genbegincase (recv_fifo_wr_addr[0])1b0 : fifo_0 temp_buffer;1b1 : fifo_1 temp_buffer; endcaseend end// read data from recv fifo wire [1:0] recv_fifo_cnt; wire recv_fifo_full; wire recv_fifo_ready; reg [1:0] recv_fifo_rd_addr; assign recv_fifo_ready | recv_fifo_cnt; assign recv_fifo_full recv_fifo_cnt[1]; // 2b11 3 assign recv_fifo_cnt recv_fifo_wr_addr - recv_fifo_rd_addr;always (posedge des_clk or negedge rst_n) beginif (!rst_n)beginrecv_fifo_rd_addr 2b00;endelsebeginrecv_fifo_rd_addr (recv_fifo_ready) ? recv_fifo_rd_addr 1b1 : recv_fifo_rd_addr;end endreg [32-1:0] recv_fifo_data; always (*) begincase(recv_fifo_rd_addr[0])1b0 : recv_fifo_data fifo_0;1b1 : recv_fifo_data fifo_1;endcase end// out assign fifo_data_out recv_fifo_data; always (posedge des_clk or negedge rst_n) beginif(!rst_n)beginfifo_data_out_vaild 1b0;endelsebeginfifo_data_out_vaild recv_fifo_ready;end endendmodule 从上面的代码可以发现我这里将src_clk中的写信号fifo_wr通过上章讲解的单bit反馈同步方法同步到了des_clk的时钟域下fifo_wr_sync这样后续的信号处理造作就可以在我们的目标时钟des_clk下进行操作了。因为这里需要缓存的数据很少地址线就显得比较简单了通过一个简单的乒乓操作不断将数据从buffer中写入fifo_0和fifo_1中只要fifo不空就开始读数据。时序如下Image
http://www.zqtcl.cn/news/433644/

相关文章:

  • 网站开发的选题依据电子商务网站建设内容
  • 中企动力做的网站被百度屏蔽推销网站话术
  • 四川网站制作广告设计自学网教程
  • 做个简单的企业小网站单纯做网站的公司
  • 河北省建设厅官方网站哈尔滨建设工程招聘信息网站
  • 茂名网站制作网页个人博客登录首页
  • 类似qq空间的网站wordpress 简历主题
  • 专业网站运营制作怎么写代码做网站
  • 安徽免费网站制作西安做行业平台网站的公司
  • 我想做服装网站怎么做网页设计优秀案例分析
  • 网站建设技术教程视频wordpress中文模版
  • 高端企业网站 程序纸牌网站建设
  • html制作网站推广最有效的办法
  • 做网站推广的工作内容凡客诚品创始人
  • 网站开发pc端和手机端外贸建设网站公司
  • 长沙哪家网站设计好上海成品网站
  • wordpress商城插件收费哪里可以做网站优化
  • 中国建设银行u盾下载假网站吗wordpress有没有付费
  • 海南哪家公司做网站开发一套管理系统多少钱
  • 做网站建设费用百姓网
  • 西安建设厅网站wpf做网站教程
  • 好的网页网站设计wordpress对外发邮件
  • 湖北网站建设贴吧信用宁波企业网查询
  • 佛山市官网网站建设多少钱网站建设与管理书籍
  • 网站建设佰金手指科杰二八佛山有那几家做网站
  • 网站建设刂搜金手指下拉贰伍wordpress 外链自动nofflow
  • 搭建一个网站多少钱手机软件开发用什么语言
  • 太原专业网站建设杭州网络推广专员
  • 广西专业建网站橙米网站建设
  • 百度做的网站能优化吗html网站系统