微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 请教关于always中敏感事件列表的问题

请教关于always中敏感事件列表的问题

时间:10-02 整理:3721RD 点击:
请教一下大家,如果我有三个信号:pa2, pa3, pa4,只有当他们同时都有下降沿的时候进入always语句,不知道这种的用Verilog该如何写?现在学到的只有or是“或”事件,而不是“与”事件,似乎在列表里面写and也会错误……

写行为还是RTL?

你为什么不在always里面判断他们三个呢,如果是时序逻辑,敏感列表里放clk触发,而在always块里面进行对这个三个信号的沿检测而进行相应的判断,如果是组合逻辑没有必要在always块里执行。

同时下降。怎么保证

assumption: the pa2, pa3 and pa4 are same the clock domain
always @(posedge clk or negedge RESETN)
  if(~RESETN)
      signal_stb <= 1'b0;
  else if(pa2 & pa3 & pa3)
      signal_stb <= 1'b1;

assumption: the pa2, pa3 and pa4 are the same clock domain
reg signal_stb;
always @(posedge clk or negedge RESETN)
  if(~RESETN)
     signal_stb <= 1'b0;
  else if(pa2 & pa3 & pa4)
     signal_stb <= 1'b1;
  else
     signal_stb <= 1'b0;

assumption: the pa2, pa3 and pa4 are the same clock domain
reg signal_stb;
always @(posedge clk or negedge RESETN)
  if(~RESETN)
     signal_stb <= 1'b0;
  else if(pa2 & pa3 & pa4)
     signal_stb <= 1'b1;
  else
     signal_stb <= 1'b0;



   assumption: the pa2, pa3 and pa4 are the same clock domain
reg signal_stb;

always @(posedge clk or negedge RESETN)
  if(~RESETN)
     signal_stb <= 1'b0;
  else if(pa2 & pa3 & pa4)
     signal_stb <= 1'b1;
  else
     signal_stb <= 1'b0;

应该是要先用一个高频时钟采样这三个信号,然后分别同步后作出一个上升沿脉冲,然后在高频采样时钟下着三个脉冲与一下



   是RTL……



   无需保证同时下降,只需检验是否同时上升即可。之所以做了3个,是防止电路的干扰,而三个同时都被干扰了的可能性不大……



   在always块里面就像是楼下朋友们给出的直接&即可对吧?

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top