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

ai简历在线制作搜狗网站seo

ai简历在线制作,搜狗网站seo,网站后台如何做下载连接,哪种语言的网站 做seo更好流控,简单来说就是控制数据流停止发送。常见的流控机制分为带内流控和带外流控。 FIFO的流水反压机制 一般来说,每一个fifo都有一个将满阈值afull_value(almost full)。当fifo内的数据量达到或超过afull_value时,将满…

流控,简单来说就是控制数据流停止发送。常见的流控机制分为带内流控和带外流控。

FIFO的流水反压机制

一般来说,每一个fifo都有一个将满阈值afull_value(almost full)。当fifo内的数据量达到或超过afull_value时,将满信号afull从0跳变为1。上游发送模块感知到afull为1时,则停止发送数据。在afull跳变成1后,fifo需要能够缓存路径上的data以及上游发送模块停止发流之前发出的所有data。这就是fifo的流控机制。下图是fifo流控机制的示意图。
在这里插入图片描述
如下图所示,数据data和有效信号vld从模块A产生,经过N拍延时后,输入到FIFO,FIFO产生将满信号afull,经过M拍延时反馈到模块A。假设模块A接收到afull=1时,立即停止发送数据。假设FIFO深度为fifo_depth,每拍为一个时钟周期。
在这里插入图片描述
则,我们考虑以下问题:

  1. 为了保证FIFO不发生溢出,将满阈值afull_value至少应该设置成多少?
  2. 为了充分发挥FIFO的性能,FIFO深度depth应该为多少?

首先考虑第一个问题,即FIFO将满阈值如何设置:
当FIFO中的数据为afull_value时,产生afull=1,afull=1经过M拍到达模块A,此时FIFO中至多可以有(afull_value+M)个数据。afull=1到达模块A时,模块A立即停止发送数据,此时电路中还存在N拍数据将陆续送到FIFO中,所以最后FIFO中应该为(afull_value+M+N)个数据。
为了保证数据不会溢出,应满足公式fifo_depth >= afull_value+M+N,因此,将满阈值应该至多为depth_fifo - (M+N)
为了验证上述结论,我们编写了如下代码进行实验:
delayed.sv

module delayed
#(parameter N  = 5,parameter DW = 1)(input  logic          clk,input  logic          rst_n,input  logic [DW-1:0] din,output logic [DW-1:0] dout);logic [N*DW-1:0] data_reg;always_ff@(posedge clk or negedge rst_n) beginif(~rst_n) begindata_reg <= (N*DW)'(0);endelse begindata_reg <= {data_reg[N*DW-DW-1:0], din};end
endassign dout = data_reg[N*DW-1:N*DW-DW];endmodule

top.sv

module top
#(parameter DATA_WIDTH  = 32,parameter DEPTH       = 32,parameter M           = 5,parameter N           = 10,parameter AF_VALUE    = (M+N-1))
(
input  logic                  clk,
input  logic                  rst_n,
input  logic                  wr_en,
input  logic [DATA_WIDTH-1:0] wr_data,
output logic                  afull,
output logic [DATA_WIDTH-1:0] rd_data,
output logic                  empty,
input  logic                  rd_en
);logic                  wr_en_dly;
logic [DATA_WIDTH-1:0] wr_data_dly;
logic                  almost_full;
logic                  error;
logic                  full;
//
delayed
# 
(.N (N ),.DW(1 )
)
wr_en_delay_inst
(.clk  (clk      ),.rst_n(rst_n    ),.din  (wr_en    ),.dout (wr_en_dly)
);
//
delayed
#
(.N  (N         ),.DW (DATA_WIDTH)
)
wr_data_delay_inst
(.clk   (clk        ),.rst_n (rst_n      ),.din   (wr_data    ),.dout  (wr_data_dly)
);
//
delayed
#
(.N (M),.DW(1)
)
almost_full_delay_inst
(.clk  (clk        ),.rst_n(rst_n      ),.din  (almost_full),.dout (afull      )
);
//
DW_fifo_s1_sf 
#
(.width   (DATA_WIDTH ),  .depth   (DEPTH      ),  .ae_level(1          ),  .af_level(AF_VALUE   ),  .err_mode(1          ),  .rst_mode(0          )
)U  (.clk          (clk              ),   .rst_n        (rst_n            ),   .push_req_n   (~wr_en_dly       ),.pop_req_n    (~rd_en           ),   .diag_n       (1                ),.data_in      (wr_data_dly      ),   .empty        (empty            ),.almost_empty (                 ),   .half_full    (                 ),.almost_full  (almost_full      ),   .full         (full             ),.error        (error            ),   .data_out     (rd_data          ) );endmodule

tb.sv

module tb;
parameter DATA_WIDTH = 32;
parameter DEPTH      = 32;
parameter M          = 5;
parameter N          = 10;
parameter AF_VALUE   = M + N;logic rst_n;
logic clk;
logic rd_en;
logic rd_en_r;
logic wr_en;
logic wr_en_r;
logic empty;
logic afull;
logic [DATA_WIDTH-1:0] wr_data;
logic [DATA_WIDTH-1:0] rd_data;
logic [DATA_WIDTH-1:0] ref_data;
logic error;assign error = (rd_en && ~empty && (ref_data != rd_data)) ? 1'b1 : 1'b0;always_ff@(posedge clk or negedge rst_n) beginif(~rst_n) beginref_data <= '0;endelse if(rd_en && ~empty) beginref_data <= ref_data + 1'b1;end
end//rd_en
always_ff@(posedge clk or negedge rst_n) beginif(~rst_n) beginrd_en_r <= 1'b0;endelse if($urandom % 100 < 1) beginrd_en_r <= 1'b1;endelse beginrd_en_r <= 1'b0;end
endassign rd_en = rd_en_r && ~empty;
//wr_data
always_ff@(posedge clk or negedge rst_n) beginif(~rst_n) beginwr_data <= '0;endelse if(wr_en && ~afull) beginwr_data <= wr_data + 1'b1;end
end//wr_en
always_ff@(posedge clk or negedge rst_n) beginif(~rst_n) beginwr_en_r <= 1'b0;endelse if($urandom % 100 < 100) beginwr_en_r <= 1'b1;endelse beginwr_en_r <= 1'b0;end
endassign wr_en = wr_en_r && ~afull;//clk
initial
beginclk = 1'b0;forever begin#5 clk = ~clk;end
end//rst
initial
beginrst_n = 1'b0;#100rst_n = 1'b1;
end//
initial
begin#20000$finish;
end//
initial begin$fsdbDumpfile("./top.fsdb");$fsdbDumpvars(0);
end//inst
top 
#(.DATA_WIDTH(DATA_WIDTH),.DEPTH     (DEPTH     ),.M         (M         ),.N         (N         ),.AF_VALUE  (AF_VALUE  ))
U(.*);endmodule

以及makefile脚本:

all: listfile com sim verdi cleanlistfile:find -name "*.sv" > filelist.fcom:vcs -full64 -cpp g++-4.8 -cc gcc-4.8 -LDFLAGS -Wl,--no-as-needed -sverilog -debug_access -timescale=1ns/10ps \-f filelist.f -l com.log -kdb -lca -y ${SYNOPSYS}/dw/sim_ver +libext+.v +incdir+${SYNOPSYS}/dw/sim_ver+sim:./simv -l sim.logverdi:verdi -sv -f filelist.f -ssf *.fsdb -nologo &clean:rm -rf csrc *.log *.key *simv* *.vpd *DVE*rm -rf verdiLog *.fsdb *.bak *.conf *.rc *.f

当设置fifo的将满阈值为M+N时,fifo不会丢失数据,流控正确。(:dw fifo中的将满阈值afull的定义为:当fifo中还有小于等于afull个空位置时,拉高afull信号)
在这里插入图片描述
当设置fifo的将满阈值为M+N-1时,fifo会丢失数据,流控出错。如下图所示:
在这里插入图片描述
现在考虑第二个问题,即FIFO深度depth应该为多少?
分析:若fifo_depth过小,afull有效之后,fifo中存储的数据将很快被下游读取,而新的数据又无法及时到达FIFO,因此会造成流水气泡,影响电路的性能。
假设M=5, N=10,且fifo_depth=20,则afull_value=5。在T时刻,fifo中存了5个数据后afull=1会变为有效,在之后的15个周期内会陆续存入15个数据。假设下游模块B每个周期读取FIFO中的一个数据,因为当FIFO内的数据data_cnt小于5时,afull才会无效(为0),因此在T+15和T+30的时刻内,下游电路B只能读5个数据,从而造成数据断流,影响电路性能。
为了保证电路性能,在T+15到T+30这个时间段内应该有15个数据可读,因此afull_value应该不小于15(=M+N)。故FIFO深度应该不小于2*(M+N)


文章转载自:
http://dinncocouncilor.wbqt.cn
http://dinncoprotandrous.wbqt.cn
http://dinncodixieland.wbqt.cn
http://dinncocoppernosed.wbqt.cn
http://dinncobiscay.wbqt.cn
http://dinncotintack.wbqt.cn
http://dinncomothproof.wbqt.cn
http://dinncosumatra.wbqt.cn
http://dinncoraffish.wbqt.cn
http://dinncophysiocracy.wbqt.cn
http://dinncopediment.wbqt.cn
http://dinncotraducian.wbqt.cn
http://dinncoedit.wbqt.cn
http://dinncochabouk.wbqt.cn
http://dinncoward.wbqt.cn
http://dinncoagammaglobulinaemia.wbqt.cn
http://dinncozoroastrianism.wbqt.cn
http://dinncoapneusis.wbqt.cn
http://dinncofullery.wbqt.cn
http://dinncopitching.wbqt.cn
http://dinncotherewithal.wbqt.cn
http://dinncotraumatropism.wbqt.cn
http://dinncopumelo.wbqt.cn
http://dinncochiaus.wbqt.cn
http://dinncoimplement.wbqt.cn
http://dinncorambunctious.wbqt.cn
http://dinncoathanasian.wbqt.cn
http://dinncoensheath.wbqt.cn
http://dinncophotoeffect.wbqt.cn
http://dinncorestring.wbqt.cn
http://dinncodisulfoton.wbqt.cn
http://dinncotigris.wbqt.cn
http://dinncoaerotherapy.wbqt.cn
http://dinncolinerboard.wbqt.cn
http://dinncodisbursement.wbqt.cn
http://dinncohoundstooth.wbqt.cn
http://dinncofibrilliform.wbqt.cn
http://dinncograhamite.wbqt.cn
http://dinncotithable.wbqt.cn
http://dinncocricket.wbqt.cn
http://dinncoallium.wbqt.cn
http://dinncomousaka.wbqt.cn
http://dinncogasometer.wbqt.cn
http://dinncoizba.wbqt.cn
http://dinncotrolly.wbqt.cn
http://dinncometalize.wbqt.cn
http://dinncoquantitate.wbqt.cn
http://dinncoenduring.wbqt.cn
http://dinncobask.wbqt.cn
http://dinncoexcommunicant.wbqt.cn
http://dinncoefflorescence.wbqt.cn
http://dinncodemocracy.wbqt.cn
http://dinncofondle.wbqt.cn
http://dinncobardolino.wbqt.cn
http://dinnconervure.wbqt.cn
http://dinncoladified.wbqt.cn
http://dinnconarc.wbqt.cn
http://dinncoarchangel.wbqt.cn
http://dinncononwhite.wbqt.cn
http://dinncopersonalize.wbqt.cn
http://dinncotimberdoodle.wbqt.cn
http://dinncointenerate.wbqt.cn
http://dinncobetimes.wbqt.cn
http://dinncomaximalist.wbqt.cn
http://dinncosporangium.wbqt.cn
http://dinnconeronian.wbqt.cn
http://dinncoeffector.wbqt.cn
http://dinncocuirassed.wbqt.cn
http://dinncoimpressure.wbqt.cn
http://dinncoteachable.wbqt.cn
http://dinncomanoletina.wbqt.cn
http://dinncoimprovidence.wbqt.cn
http://dinncocilantro.wbqt.cn
http://dinncoweanling.wbqt.cn
http://dinncomatrix.wbqt.cn
http://dinncoboric.wbqt.cn
http://dinncodestool.wbqt.cn
http://dinncoinfringe.wbqt.cn
http://dinncofidelismo.wbqt.cn
http://dinncoproteid.wbqt.cn
http://dinncotyposcript.wbqt.cn
http://dinncobobstay.wbqt.cn
http://dinncoalcove.wbqt.cn
http://dinncosicilia.wbqt.cn
http://dinncoarghan.wbqt.cn
http://dinncochaseable.wbqt.cn
http://dinncosheng.wbqt.cn
http://dinncosweetly.wbqt.cn
http://dinncoantiproton.wbqt.cn
http://dinncoilluvial.wbqt.cn
http://dinncotempt.wbqt.cn
http://dinncoconvey.wbqt.cn
http://dinncomillion.wbqt.cn
http://dinncosaccharoidal.wbqt.cn
http://dinncohmnzs.wbqt.cn
http://dinncotunis.wbqt.cn
http://dinncobanality.wbqt.cn
http://dinncowahabi.wbqt.cn
http://dinncohypobenthos.wbqt.cn
http://dinncoefate.wbqt.cn
http://www.dinnco.com/news/145200.html

相关文章:

  • 南京网站开发南京乐识赞百度站内搜索
  • 外贸企业独立建站百度认证号码平台
  • 程序员是不是都是做网站的百度seo关键词排名优化教程
  • 网站开发售后服务能力微信营销平台有哪些
  • 深圳做微信商城网站建设关键词seo排名怎么选
  • 社交做的最好的网站指数函数图像
  • 免费的网站登录模板下载seo优化推广工程师招聘
  • 网站开发嘉比格网络google官网登录
  • 如何查看网站开发源码软文写作的技巧
  • 深圳网站设计是什么人民网疫情最新消息
  • 吴川市规划建设局网站国内新闻最新5条
  • 网站建设与网页设计从入门到精通什么叫优化关键词
  • 只有做推广才能搜索到网站吗网站统计分析平台
  • 常熟做网站多少钱按seo关键词排名优化怎么样
  • 泉州建设培训中心网站哪家公司网站做得好
  • 网站模版如何去除title版权信息网站优化软件
  • 公司网站是怎么做的如何制作网址
  • wordpress后台登录美化seo品牌优化百度资源网站推广关键词排名
  • 山西常见网站建设推荐优化电子商务网站开发
  • 备案价网站佛山外贸seo
  • 网站建设公司方维手机优化管家
  • 网站建设需要入无形资产吗怎么优化网站排名才能起来
  • 有没有帮忙做推广的网站免费的api接口网站
  • 商城类网站武汉seo服务外包
  • 台中网站建设如何制作网址链接
  • 地铁建设优缺点android优化大师
  • 怎么做报名网站信阳网络推广公司
  • 邢台企业做网站推广商丘网站seo
  • 手机网站 触屏广州最新新闻
  • 国内大型餐饮网站建设网络销售员每天做什么