- always @(posedge clk_sys or negedge rst_sys_n)
- begin
- if(!rst_sys_n) work_en_1d <= #U_DLY 1'b0;
- else work_en_1d <= #U_DLY work_en;
- end
- assign work_en_pos = (~work_en_1d)&work_en;
- always @(posedge clk_sys or negedge rst_sys_n)
- begin
- if(!rst_sys_n) cnt_cycle[25:0] <= #U_DLY 26'd0;
- else if(work_en_pos) cnt_cycle[25:0] <= #U_DLY CNT_INIT;
- else if....
- else....
- end
- work_en_pos是干什么用的?时钟一来不就变成0了吗。那else if(work_en_pos) cnt_cycle[25:0] <= #U_DLY CNT_INIT;这句不是永远也执行不了了吗?
复制代码
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
work_en_pos只是个状态量,它由assign形成组合逻辑,但是在第一个always后面,由always里面的变化决定的。
一周热门 更多>