ANG 发表于 2010-6-27 23:12:48

这句verilog代码是什么意思?写得是否正确?

本帖最后由 fpgaw 于 2010-7-12 17:03 编辑

下面这句代码的逻辑怎么理解?
SPI_FifoWRn_r <= '1' when (reset='1') else SPI_FIFO_WRn_cs when (ADDR_s=A_FWR) else '1';


我仿照上面的代码写成下面的一个逻辑,是否正确呢?
we_SPI <= WRn_cs and tx_reg and ADSn when (addrbus_in(1 downto 0)="00") else WRn_cs and ADSn else '1';

我想表达的意思是:如果addrbus_in(1 downto 0)="00" 的话 we_SPI <= WRn_cs and tx_reg and ADSn
         如果addrbus_in(1 downto 0)="01"或者"10"或"11" 的话 we_SPI <= WRn_cs and ADSn
          最后的else '1'有没有必要加啊?

有没有更简单通用的表述方法?

ngtim 发表于 2010-6-28 00:20:08

else '1'确实没必要了<br>
前面已经有一个else WRn_cs and ADSn

ngtim 发表于 2010-6-28 00:56:27

仿照的也太死板了把,看看是什么对什么啊<br>
没必要加那个else 1拉
页: [1]
查看完整版本: 这句verilog代码是什么意思?写得是否正确?