登录 免费注册 首页 | 行业黑名单 | 帮助
维库电子市场网
技术交流 | 电路欣赏 | 工控天地 | 数字广电 | 通信技术 | 电源技术 | 测控之家 | EMC技术 | ARM技术 | EDA技术 | PCB技术 | 嵌入式系统
驱动编程 | 集成电路 | 器件替换 | 模拟技术 | 新手园地 | 单 片 机 | DSP技术 | MCU技术 | IC 设计 | IC 产业 | CAN-bus/DeviceNe

为什么always语句不是电平触发?

作者:ckz100 栏目:EDA技术
为什么always语句不是电平触发?
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
用always @(negedge ale)
你相当于低电平有效了,

3楼: >>参与讨论
ckz100
楼上的,ALE要全局时钟吧
楼上的,ALE要全局时钟吧
我的硬件没把ALE接到全局时钟上
请问怎么样才能在没用全局时钟的情况下,得到下降沿?

4楼: >>参与讨论
zcs_1
我认为这个语句可行的,你试试看
 
5楼: >>参与讨论
吴明诗
你这么做综合成了多路选择,而不是锁存器
即使是锁存器,赋值就是变化的呀

6楼: >>参与讨论
zjz0319
RE:你这段代码错误百出!
你这段代码错误百出!如果你要用"temp_addrl <= addr_data;"就应该用边缘触发,  如果是用电平触发,就应该改成"temp_addrl = addr_data;,然后在敏感表里加"addr_data".我看了半天也没看出你要得到是什么逻辑.
"

7楼: >>参与讨论
chunyuan00
仅供参考
综合过程中会出现警告,然后综合工具(synopsys)会自动将addr_data添进敏感变量表进行综合.

8楼: >>参与讨论
ys3663391
同意zjz0319
同意zjz0319的观点,而且你的综合结果可能是个latch。

参与讨论
昵称:
讨论内容:
 
 
相关帖子
ALTERA CPLD下载编程问题
求帮
求EP1C6-Q240 的Datasheet
我是新人,想知道FPGA里有集成A/D,D/A能么?
有这样解释的吗在verilog
免费注册为维库电子开发网会员,参与电子工程师社区讨论,点此进入


Copyright © 1998-2006 www.dzsc.com 浙ICP证030469号