程序求助:work_en_pos是干什么用的?

2019-07-17 02:13发布


  1. always @(posedge clk_sys or negedge rst_sys_n)
  2. begin
  3.     if(!rst_sys_n) work_en_1d <= #U_DLY 1'b0;
  4.     else work_en_1d <= #U_DLY work_en;
  5. end

  6. assign work_en_pos = (~work_en_1d)&work_en;

  7. always @(posedge clk_sys or negedge rst_sys_n)
  8. begin
  9.     if(!rst_sys_n) cnt_cycle[25:0] <= #U_DLY 26'd0;
  10.     else if(work_en_pos) cnt_cycle[25:0] <= #U_DLY CNT_INIT;
  11.     else if....
  12.      else....
  13. end

  14. work_en_pos是干什么用的?时钟一来不就变成0了吗。那else if(work_en_pos) cnt_cycle[25:0] <= #U_DLY CNT_INIT;这句不是永远也执行不了了吗?
复制代码
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
1条回答
assingle
1楼-- · 2019-07-17 04:43

work_en_pos只是个状态量,它由assign形成组合逻辑,但是在第一个always后面,由always里面的变化决定的。

一周热门 更多>