4 第四讲 数据流建模.ppt

  1. 1、本文档共36页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第 四 讲 数 据 流 建 模 连续赋值语句(assign) 表达式与操作数 运算符 数据流建模 赋值延时与线网延时 举例 数据流建模 连续赋值语句(assign) 连续赋值语句将值赋给线网信号(连续赋值不能为寄存器信号赋值),它等价于门级描述,但是从更高的抽象角度来对电路进行描述。 它的格式如下(简单形式): assign net_value = expression(表达式); 例: assign out = i1 i2 ; //out, i1, i2均为线网; wire [3:0] Z, preset, clear; // 线网说明 assign Z = preset clear ; //连续赋值语句 Assign{c_out,sum[3:0]}=a[3:0]+b[3:0]+c_in; //拼接 连续赋值的简化形式: assign Mux = (S = = 0)? A : bz , Mux = (S = = 1)? B : bz , = Mux = (S = = 2)? C : bz , Mux = (S = = 3)? D : bz ; 连续赋值语句的特点 连续赋值语句的左值必须是一个标量或向量线网,或者是标量或向量线网的拼接,而不能是向量或向量寄存器。 连续赋值语句总是处于激活状态。只要任意一个操作数发生变化,表达式就会被立即重新计算,并将结果赋给等号左边的线网。 操作数可以是标量或向量线网或寄存器,也可以是函数调用。 隐式连续赋值和隐式线网声明 wire out , in1 , in2; //普通的连续赋值 assign out = in1 in2; //使用隐式连续赋值实际与上面两条语句同样的功能 wire out = in1 in2; //连续赋值,out也是线网类型 wire in1 , in2; assign out = in1 in2; //注意:out并未声明类型,但是Verilog //仿真器会推断out 是一个隐式声明的线网 表达式与操作数 表达式由操作数和运算符组成。 操作数可以是以下类型中的一种: 1) 常数:  35,4‘b10_11, 8’h0A; 2) 参数:   parameter LOAD = 4‘d12 ; 3) 线网信号(变量):    wire clk; 4) 寄存器信号(变量) :  reg [3:0] state; 5) 位选择信号(变量) :   state[2]; 6) 部分选择信号(变量) : state[2:1]; 7) 存储器单元信号(变量) :reg [7:0] mem[255:0]; 8) 函数调用值: $time; 运算符 运算符的优先级 算术运算符 +,- :一元或二元加、减。 一元加、减:+5, -4。用于表示操作数正负。 二元加、减:a+b; 3+2; 6-1; 无符号数加减: wire、reg信号和基数格式的整数是无符号数。 例:wire [3:0] a,b,sum,sub; assign a=4’b1001; assign b=4’b0100; assign sum=a+b; // 和sum=4’b1101; assign sub=a-b; // 差sub=4’b0101; 算术运算符 有符号数加减: integer、real变量和十进制整数、实数是有符号数。 例 integer a, b, sum, sub; real d1, d; reg [5:0] bar; initial begin a=10; b=-3; d1=3.5; sum= a+b; // sum=7 sub= a-b; // sub=13 d= d1-2.3; // d=1.2 bar= -4’d12; // bar=6’b110100。-12的补码

文档评论(0)

wxc6688 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档