文档详情

硬件描述语言.ppt

发布:2025-03-13约1.21万字共10页下载文档
文本预览下载声明

GUETSchoolofInformationCommunicationsGUETSchoolofInformationCommunicationsGUETSchoolofInformationCommunicationsGUETSchoolofInformationCommunications*GUETSchoolofInformationCommunications*硬件描述语言及其在数字系统中的应用主讲:谢跃雷(副教授)第四讲数据流建模*GUETSchoolofInformationCommunications*01连续赋值语句02表达式、操作符03数据流建模实例门级建模特点:*GUETSchoolofInformationCommunications*在电路规模较小时,对于有数字逻辑电路基础的设计来说,门级建模简单直观。优点:直接简洁01数据流(dataflow)建模:描述数据在寄存器间的流动和处理过程。当今设计公司已经不在从门级结构角度进行设计,而是从更高的抽象层次设计,典型的是RTL(RegisterTransferLevel)设计,通常指的是数据流建模和行为建模的结合。缺点:电路规模较大时,繁琐易错,需要考虑高层次建模024.1连续赋值语句*GUETSchoolofInformationCommunications*连续赋值语句是verilog数据流建模的基本语句,用于对线网进行赋值。它等价于门级描述,然而是从更高的抽象角度来对电路进行描述。连续赋值语句必须以关键词assign开始,其语法如下:连续赋值语句的左值必须是一个标量或向量线网,或者是标量或向量线网的拼接,而不能是标量或向量寄存器连续赋值语句连续赋值语句特点:assign[delay]target=expression;*GUETSchoolofInformationCommunications*连续赋值语句总是处于激活状态。只要任意一个操作数发生变化,表达式就会被立即重新计算,并且将结果赋给等号左边的线网;操作数可以是标量或向量的线网或寄存器,也可以是函数调用;赋值延迟用于控制对线网赋予新值的时间,根据仿真时间单位进行说明。赋值延迟类似于门延迟.对于描述实际电路中的时序是非常有用的。//连续赋值语句,out是线网,i1和i2也是线网wireout,i1,i2;assignout=i1i2;//连续赋值语句,adr是线网,adr1_bits和adr2_bits是寄存器assignadr[15:0]=adr1_bits[15:0]^adr2_bits[15:0];*GUETSchoolofInformationCommunications*//连接操作,左边是一个标量线网和一个向量线网拼接assign{c_out,sum[3:0]}=a[3:0]+b[3:0]+c_in;隐式连续赋值//连续赋值语句,out是线网,i1和i2也是线网wireout;assignout=i1i2;//隐式连续赋值语句wireout=i1i2;等价//连续赋值语句,i1和i2也是线网wirei1,i2;assignout=i1i2;//out被自动认为是线网类型2.延迟*GUETSchoolofInformationCommunications*连续赋值语句中的延迟用于控制任一操作数发生变化到语句左值被赋予新值之间的时间间隔指定赋值延迟的方法有三种:隐式赋值延迟和线网声明延迟。普通赋值延迟://连续赋值语句,out是线网,in1和in2也是线网wireout,in1,in2;assign#10out=in1in2;in1和in2任一发生变化,计算in1in2新值赋于左边,会有10个单位延迟。在10单位延迟期间,若in1和in2再次变化,则取in1和in2当前值计算。也就是说,小于延迟的输入脉冲不影响输出隐式连续赋值延迟:*GUETSchoolofInformationCommunications*//隐式连续赋值语句wire#10out=i1i2;线网声明延迟://连续赋值语句,out是线网,i1和i2也是线网Wire#10out;assignout=i1i2;//连续赋值语句,out是线网,i1和i2也是线网wireout,i1,i2;assign#10o

显示全部
相似文档