Electronics 板


LINE

各位板友好 想问一个基本的问题 一般verilog 常见的写法可能是这样 //sequentail part always@(posedge clock) begin if (rst) begin //synchronous reset state <= state_1; ... end else begin state <= next_state; ... end end //combinational part always@(*) begin case(state) state_1: begin if (a==1) begin next_state = state_2; end end … endcase end 但如果如果想用一个讯号的 edge 来进到下个 state (asynchronous) 不知道怎麽作比较好 以下写法我知道不太合理 //sequentail part always@(posedge clock) begin if (rst) begin state <= state_1; ... end else begin state <= next_state; ... end end //combinational part always@(*) begin case(state) state_1: begin if (posedge a) begin next_state = state_2; end end … endcase end 请问各位前辈,正确的可以实现上面这个功能写法应该怎麽作? 谢谢! --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.112.77.56
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Electronics/M.1451751928.A.BE0.html
1F:推 kyo547896321: 照你这写法,还是得等clk才能换state吧? 01/03 01:51
这个写法连 ncVerilog 都不过 (更不用说合成了)
2F:→ kyo547896321: 如果是要和这block本身的clk不同步的话,那把你的a 01/03 01:53
3F:→ kyo547896321: 当作另一个DFF的clk来写,a的edge一来就能换state 01/03 01:54
确实觉得可能需要灌进去 clock,但 Verilog 有办法合成出这样的电路吗?
4F:→ kyo547896321: 不知道有没有误会你想问的问题就是了 01/03 01:54
5F:推 kyo547896321: 毕竟你的code和你描述的作法不是同一件事情 01/03 02:02
6F:→ kyo547896321: 1.用posedge a改next_state 2.用posedge a改state 01/03 02:07
7F:→ kyo547896321: 你的code是1但你的描述看起来像2 01/03 02:09
1的功能应该是 synchronous (在state_1时,如果a==1,posedge clock时会到state_2)
8F:→ kyo547896321: 要不要先说一下你的"进到下一个state" 01/03 03:56
9F:→ kyo547896321: 是改变state还是next_state 01/03 03:57
10F:→ kyo547896321: 如果是改state,那将a当作另一个DFF的clk是可行的 01/03 04:02
11F:→ kyo547896321: 毕竟不同block本来就可能用到不同的clk 01/03 04:03
12F:→ kyo547896321: 只是你得考虑multiple clk domain面临的麻烦就是 01/03 04:04
当然是改变 state,只是先在 conbinational part 输出到DFF的D,在sequentail part posedge clock 时存进去(D → Q)
13F:→ Baneling: 建议你先有能力把基本能合成的code直接变成电路的能力 01/03 14:30
14F:→ Baneling: 再来想这些... 不过通常你弄懂电路的概念之後, 大概就知 01/03 14:31
15F:→ Baneling: 到你现在乱写code的"点"在哪了 01/03 14:31
我想把 Verilog code 画成电路这我作的到 想了一段时间,不知道 sequentail part 这样写是不是一个方法? //sequentail part always@(posedge clock or posedge a) begin if (rst) begin //synchronous reset state <= state_1; ... end else if (a && state==state_1) begin state <= state_2; end else begin state <= next_state; ... end end ※ 编辑: FTICR (219.70.169.149), 01/03/2016 16:07:20
16F:推 ptta: 就是把一个 之 comb signal当成 clock,可以合成,十年前就看 01/03 17:11
17F:→ ptta: 过了 01/03 17:11
18F:推 Leadgen: Comb signal当clock,不怕有glitch吗? 01/04 00:04
19F:推 obov: 理论上可以 实务上非常不建议 01/04 02:32
20F:推 Battie: a要glitch free,然後再delay,造出个pulse,才能sample自己 02/15 00:52
21F:→ Battie: state要gray code过,而且会常常sample到不是当下的state 02/15 00:55
22F:→ Battie: 不如全部改成同步设计 02/15 00:55







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Gossiping站内搜寻

TOP