完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
` 本帖最后由 dlzhao18 于 2017-6-3 13:13 编辑 大神们好, 本人现在初学verilog,现在在学习夏宇闻老师翻译的《verilog HDL 入门》,其中在看到关于状态机的例子的时候有一个关于时序的疑惑问题,例子如下: module interacting_fsm(clock); input clock; parameter M1=0, M2=1, M3=2; parameter T1=0, T2=1, T3=2, T4=3; reg[0:1]mp_state; reg[0:1]tx_state; reg load_tx, tx_busy; always @ (negedge clock) begin : mp case(mp_state) M1: begin load_tx <= 1; mp_state <= M2; end M2: if(tx_busy) begin mp_state <= M3; load_tx <= 0; end M3: if (~tx_busy) mp_state <= M1; endcase end always @ (negedge clock) begin : tx case(tx_state) T1: if(load _tx) begin tx_state <= T2; tx_busy <= 1; end T2: tx_state <= T3; T3: tx_state <= T4; T4: begin tx_busy <= 0; tx_state <= T1; end endcase end endmodule 我的疑问是,从代码中看在M1的时候load_tx <= 1,这个时候load_tx应该为高电平了,那为什么在例题的波形图中还是低电平信号(看附件图片),在后一个时钟下降沿的时候才变成高电平信号,和我理解的正好延迟了一个时钟周期,这个问题应该怎么理解才对,请大神指导,小弟先叩谢了! ` |
|
相关推荐
1 个讨论
|
|
只有小组成员才能发言,加入小组>>
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-2 12:19 , Processed in 0.626015 second(s), Total 55, Slave 41 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号