打印
[CPLD]

请教一条VERILOG的语句

[复制链接]
945|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
小研究|  楼主 | 2016-7-20 09:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
设计了一道CPLD程序,出了点小问题,最初用的是:
assign IOR=((CSA&CSB==1'b0)&&XR_W==1'b1&&XRD==1'b0)?0:1;  //SCI READING
但IOR这个信号出不来。
将此语句该写为:
assign IOR=((CSA==0||CSB==0)&&XR_W==1'b1&&XRD==1'b0)?0:1;  //SCI READING
就可以了。
两者有什么差别?
谢谢。

相关帖子

沙发
zyingjie| | 2016-7-20 10:08 | 只看该作者
代码读不懂,为啥不多扩几个括号呢?

使用特权

评论回复
板凳
玄德| | 2016-7-20 11:03 | 只看该作者

CSA、CSB是几位宽度?


使用特权

评论回复
地板
小研究|  楼主 | 2016-7-20 13:44 | 只看该作者
搞明白了,的确是优先级的问题,&的优先级比==低。
或者多加括号。
谢谢。

使用特权

评论回复
5
小研究|  楼主 | 2016-7-20 13:46 | 只看该作者
CSA和CSB是一位的片选信号,这条语句想表达:
主CPU(DSP)片选选中芯片A或B,且对其进行读操作的时候,芯片A或B的读信号有效。

使用特权

评论回复
6
kk118a| | 2016-7-20 13:49 | 只看该作者
&和&&不 一样

使用特权

评论回复
7
小研究|  楼主 | 2016-7-20 14:10 | 只看该作者
对于一位的变量来说,&和&&是一样的。二者的优先级都比==低,这点跟C语言差别很大。

使用特权

评论回复
8
xmar| | 2016-7-20 14:29 | 只看该作者
本帖最后由 xmar 于 2016-7-20 14:49 编辑

第一个: IOR = /[(CSA*/CSB)*XR_W*/XRD]

第二个: IOR = /[(/CSA + /CSB)*XR_W*/XRD]

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

153

主题

869

帖子

8

粉丝