|
技术交流 | 电路欣赏 | 工控天地 | 数字广电 | 通信技术 | 电源技术 | 测控之家 | EMC技术 | ARM技术 | EDA技术 | PCB技术 | 嵌入式系统 驱动编程 | 集成电路 | 器件替换 | 模拟技术 | 新手园地 | 单 片 机 | DSP技术 | MCU技术 | IC 设计 | IC 产业 | CAN-bus/DeviceNe |
为什么always语句不是电平触发? |
作者:ckz100 栏目:EDA技术 |
MODULE gsm_cpld(addr_data, ale, temp_addrl); input[7:0] addr_data; input ale; OUTPUT[7:0] temp_addrl; reg[7:0] temp_addrl; always @(ale) begin if (ale == 0'b0) temp_addrl <= addr_data; end endMODULE 很奇怪,仿真出来的结果是当ale=0时,temp_addrl会随着addr_data的改变而改变 书上说always语句是电平触发的,本来的的意图是想在ale下降对temp_addrl赋值的 请问这是为什么? |
2楼: | >>参与讨论 |
作者: zcs_1 于 2006/3/7 13:35:00 发布:
用always @(negedge ale) 你相当于低电平有效了, |
3楼: | >>参与讨论 |
作者: ckz100 于 2006/3/7 14:19:00 发布:
楼上的,ALE要全局时钟吧 楼上的,ALE要全局时钟吧 我的硬件没把ALE接到全局时钟上 请问怎么样才能在没用全局时钟的情况下,得到下降沿? |
4楼: | >>参与讨论 |
作者: zcs_1 于 2006/3/7 15:16:00 发布:
我认为这个语句可行的,你试试看 |
5楼: | >>参与讨论 |
作者: 吴明诗 于 2006/3/9 19:39:00 发布:
你这么做综合成了多路选择,而不是锁存器 即使是锁存器,赋值就是变化的呀 |
6楼: | >>参与讨论 |
作者: zjz0319 于 2006/3/19 10:39:00 发布:
RE:你这段代码错误百出! 你这段代码错误百出!如果你要用"temp_addrl <= addr_data;"就应该用边缘触发, 如果是用电平触发,就应该改成"temp_addrl = addr_data;,然后在敏感表里加"addr_data".我看了半天也没看出你要得到是什么逻辑. " |
7楼: | >>参与讨论 |
作者: chunyuan00 于 2006/3/19 14:20:00 发布:
仅供参考 综合过程中会出现警告,然后综合工具(synopsys)会自动将addr_data添进敏感变量表进行综合. |
8楼: | >>参与讨论 |
作者: ys3663391 于 2006/3/19 20:50:00 发布:
同意zjz0319 同意zjz0319的观点,而且你的综合结果可能是个latch。 |
|
|
免费注册为维库电子开发网会员,参与电子工程师社区讨论,点此进入 |
Copyright © 1998-2006 www.dzsc.com 浙ICP证030469号 |