为了正常的体验网站,请在浏览器设置里面开启Javascript功能!
首页 > 赋值运算

赋值运算

2011-11-22 2页 doc 24KB 58阅读

用户头像

is_310391

暂无简介

举报
赋值运算 verilog:赋值运算分为连续赋值和过程赋值两种 赋值运算分为连续赋值和过程赋值两种。 (1)连续赋值 连续赋值语句和过程块一样也是一种行为描述语句,有的文献中将其称为数据流描述形式,但本书将其视为一种行为描述语句。 连续赋值语句只能用来对线网型变量进行赋值,而不能对寄存器变量进行赋值,其基本的语法格式为: 线网型变量类型 [线网型变量位宽] 线网型变量名; assign #(延时量) 线网型变量名 = 赋值表达式; 例如: wire a; assign a = 1'b1; 一个线网型变量一旦...
赋值运算
verilog:赋值运算分为连续赋值和过程赋值两种 赋值运算分为连续赋值和过程赋值两种。 (1)连续赋值 连续赋值语句和过程块一样也是一种行为描述语句,有的文献中将其称为数据流描述形式,但本书将其视为一种行为描述语句。 连续赋值语句只能用来对线网型变量进行赋值,而不能对寄存器变量进行赋值,其基本的语法格式为: 线网型变量类型 [线网型变量位宽] 线网型变量名; assign #(延时量) 线网型变量名 = 赋值表达式; 例如: wire a; assign a = 1'b1; 一个线网型变量一旦被连续赋值语句赋值之后,赋值语句右端赋值表达式的值将持续对被赋值变量产生连续驱动。只要右端表达式任一个操作数的值发生变化,就会立即触发对被赋值变量的更新操作。 在实际使用中,连续赋值语句有下列几种应用: · 对标量线网型赋值 wire a, b; assign a = b; · 对矢量线网型赋值 wire [7:0] a, b; assign a = b; · 对矢量线网型中的某一位赋值 wire [7:0] a, b; assign a[3] = b[1]; · 对矢量线网型中的某几位赋值 wire [7:0] a, b; assign a[3:0] = b[3:0]; · 对任意拼接的线网型赋值 wire a, b; wire [1:0] c; assign c ={a ,b}; (2)过程赋值 过程赋值主要用于两种结构化模块(initial模块和always模块)中的赋值语句。在过程块中只能使用过程赋值语句(不能在过程块中出现连续赋值语句),同时过程赋值语句也只能用在过程赋值模块中。 过程赋值语句的基本格式为: <被赋值变量><赋值操作符><赋值表达式> 其中,<赋值操作符>是“=”或“<=”,它分别代表了阻塞赋值和非阻塞赋值类型。3.5.1节对阻塞赋值和非阻塞赋值操作进行了详细解释。 过程赋值语句只能对寄存器类型的变量(reg、integer、real和time)进行操作,经过赋值后,上面这些变量的取值将保持不变,直到另一条赋值语句对变量重新赋值为止。过程赋值操作的具体目标可以是: · reg、integer、real和time型变量(矢量和标量); · 上述变量的一位或几位; · 上述变量用{}操作符所组成的矢量; · 存储器类型,只能对指定地址单元的整个字进行赋值,不能对其中某些位单独赋值。 例2-2 给出一个过程赋值的例子。 reg c; always @(a) begin c = 1'b0; end
/
本文档为【赋值运算】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索