资讯详情

Verilog中“=”和“<=”的区别

一般情况下使用<=,组合逻辑使用=赋值,时序逻辑使用<=赋值:

举个例子:初始化m=1,n=2,p=3;分别执行以下语句 1、begin m=n;n=p;p=m; end 2、begin m<=n; n<=p; p<=m; end 结果分别是:1、m=2,n=3,p=2;(在给p赋值时m=2已经生效) 2、m=2,n=3,p=1;(在begin-end过程中,m=2一直无效而是在整体执行完后才生效) 这两种赋值“=”用于阻塞式赋值;“<=”用于非阻塞式赋值中。 阻塞赋值:阻塞赋值语句是在这句之后所有语句执行之前执行的,即后边的语句必须在这句执行完毕才能执行,所以称为阻塞,实际上就是顺序执行。 非阻塞赋值:非阻塞赋值就是与后边相关语句同时执行,即就是并行执行。 所以一般时序电路使用非阻塞赋值,assign语句一般使用=阻塞赋值; 组合逻辑电路使用阻塞赋值; -电子元器件采购网(www.ruidan.com)是本土元器件目录分销商,采用“小批量、现货、样品”销售模式,致力于满足客户多型号、高质量、快速交付的采购需求。 自建高效智能仓储,拥有自营库存超过50,000种,提供一站式正品现货采购、个性化解决方案、选型替代等多元化服务。
锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台