首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >初始化移位寄存器

初始化移位寄存器
EN

Stack Overflow用户
提问于 2013-11-14 20:50:24
回答 1查看 765关注 0票数 0

我为移位寄存器创建了一个模块,并试图通过变量值将其初始化为。但它不起作用

这是代码

代码语言:javascript
复制
module shiftreg(dataOut,EN, in, CLK, Q,init);
   parameter n = 4; 
   input [n-1:0] init; //the initial value of the register
   input EN; input in; 
   input CLK; output [n-1:0] Q; output dataOut; reg dataOut;
   reg [n-1:0] Q;  //needs to be saved for future shifts.

   initial 
   begin
      Q=init; dataOut=init[0];
   end

   always @(posedge CLK) 
   begin 
      if (EN) 
      begin
         Q={in,Q[n-1:1]}; 
         dataOut=Q[0];
      end 
   end 
endmodule
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-14 21:06:47

init需要是在initial块内部工作的内容,它只适用于RTL仿真和一些FPGA。大多数合成器忽略initial块。一种更好的方法是增加一些加载。将非阻塞的作业输出到寄存器是个好主意。您可以使用赋值语句使用dataOut保存失败。

代码语言:javascript
复制
always @(posedge CLK) begin
  if (LOAD)  Q <= init;
  else if (EN)    Q <= {in,Q[n-1:1]}; 
end
assign dataOut = Q[0];
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19988085

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档