Matlab学习心得与体会

对于基本单元逻辑电路,使用Verilog语言提供的门级元件模型描述电路非常方便。

但随着电路复杂性的增加,使用的逻辑门较多时,使用HDL门级描述的工作效率就很低。

数据流建模能够在较高的抽象级别描述电路的逻辑功能,并且通过逻辑综合软件,能够自动地将数据流描述转换成为门级电路。

数据流建模主要使用逻辑表达式,所以要了解各种运算符和表达式。

数据流建模

数据流建模使用的连续赋值语句,由关键词assign开始,后面跟着由操作数和运算符等组成的逻辑表达式。

一般用法如下:

wire [位宽说明] 变量名1,变量名2,……,变量名n;assign 变量名=表达式;1.2.

注意,assign 语句只能对wire型变量进行赋值,所以等号左边变量名的数据类型必须是wire型。

例:用数据流描述方式建立模型

Verilog HDL数据流建模与运算符_建模

module mux2to1_dataflow(D0, D1, S, Y );  input D0, D1, S;    output Y;  wire Y ; //下面是逻辑功能描述  assign Y = (~S & D0) | (S & D1);  //表达式左边Y必须是wire型endmodule1.2.3.4.5.6.7.8.9.

例:用条件运算符描述2选1的数据选择器。

module mux2x1_df (D0,D1,S,L);   input D0,D1,S;   output L;   assign L = S ? D1 : D0;endmodule1.2.3.4.5.6.7.

条件运算符:如果S=1,则输出L=D1;否则L=D0。

例:用数据流建模方法对2线-4线译码器的行为进行描述。

Verilog HDL数据流建模与运算符_运算符_03

登录后复制

module decoder_df (A1,A0,E,Y);   input A1,A0,E;   output [3:0] Y;       assign Y[0] = ~(~A1 & ~A0 & ~E);       assign Y[1] = ~(~A1 &   A0 & ~E);       assign Y[2] = ~(  A1 & ~A0 & ~E);       assign Y[3] = ~(  A1 &   A0 & ~E);endmodule1.2.3.4.5.6.7.8.

运算符及其优先级

运算符 (9类)

Verilog HDL数据流建模与运算符_建模_04

位拼接运算符

作用是将两个或多个信号的某些位拼接起来成为一个新的操作数,进行运算操作。

设A=1’b1,B=2’b10,C=2’b00则{B,C}=4’b1000{A,B[1],C[0]}=3’b110{A,B,C,3’b101}=8’b11000101。1.2.3.4.5.

对同一个操作数的重复拼接还可以双重大括号构成的运算符{{}}

例如{4{A}}=4’b1111,{2{A},2{B},C}=8’b11101000。

A:4’b1010 、B:4’b1111,

Verilog HDL数据流建模与运算符_建模_05

相等与全等运算符

==(逻辑相等), !=(逻辑不等)

     ===(条件全等),!==(条件不全等)

a、b的初值同为4’b0100,c和d的初值同为4’b10x0


a= =ba!=ba= = =ba!= =b
1010
c= =dc!=dc= = =dc!= =d
xx10
条件运算符

是三目运算符,运算时根据条件表达式的值选择表达式。

一般用法:

condition_expr ? expr1 : expr2;1.

首先计算第一个操作数condition_expr的值,如果结果为逻辑1,则选择第二个操作数expr1的值作为结果返回;如果结果为逻辑0,则选择第三个操作数expr2的值作为结果返回。

运算符的优先级

优先级的顺序从下向上依次增加。


类型符号优先级别
取反! ~ -(求2的补码)最高优先级
算术*** /** + -
移位>> <<
关系< <= > >=
等于== !=
缩位& ~&^ ^~| ~|
逻辑&&||
条件?:最低优先级


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空