PT100M222A 数据流建模
发布时间:2019/10/13 19:00:13 访问次数:1269
PT100M222A位拼接运算符的作用是将两个或多个信号的某些位拼接起来成为一个新的操作数,进行运算操作。例如,设A=1’b1,B=2’b10,C=2’b00,若将操作数B、C拼接起来,则得到{B,C}=4’b1000;若将操作数A、B的第1位和C的第0位拼接起来,则得到一个3位矢量的新操作数,即{A,B[1],C[0]}=31b110。若将操作数A、B、C和3i b101拼接起来,则得到一个8位矢量的新操作数,即{A,B,C,31b101}=81b11000101。
对同一个操作数重复拼接还可以使用双重大括号构成的运算符{{}},例如{4{A}}=4i b1111,{2{A},2{B},C}=8’b11101000。注意,参与拼接的操作数必须标明位宽。
条仵运算符有三个操作数,运算时根据条件表达式的值选择表达式。一般用法如下:
condition-expr?expr1:expr2; .
首先计算第一个操作数condiuon~expr的值,如果结果为逻辑1,则选择第二个操作数expr1的值作为结果返回,否则,选择第三个操作数expr2的值作为结果返回。该运算符的功能与条件语句(if-else)等效。例4.6.7是使用条件运算符的一个例子。
数据流建模举例,在Verilog语言中,数据流建模使用的基本语句是连续赋值语句,连续赋值语句用于对wire型变量进行赋值,它由关键词assign开始,后面跟着由操作数和运算符组成的逻辑表达式。例如,2选1数据选择器的连续赋值描述是:
wire A,B,SEL,L;//声明4个连线型变量
assngn L=(A&~SEL)|(B&SEL);//连续赋值
连续赋值语句的执行过程是:只要逻辑表达式右边变量的逻辑值发生变化,则等式右边表达式的值会立即被计算出来并赋给左边的变量。注意,在assign语句中,左边变量的数据类型必须是Wire型。
前面门级描述中介绍的2线-4线译码器和4位全加器的数据流描述分别如例4.6.4和例4.6.5所示。例4.6.4由4个逻辑表达式组成的连续赋值语句实现了2线一4线译码器的逻辑功能。仿真时,4条连续赋值语句是同时并行执行的。
例4.6.4
//Datanow description of a 2-to~4~1ine decoder, (See Fig・4.4.7)
1nodule decoder~df(A1,A0,E,Y);
input A1,A0,E;
PT100M222A位拼接运算符的作用是将两个或多个信号的某些位拼接起来成为一个新的操作数,进行运算操作。例如,设A=1’b1,B=2’b10,C=2’b00,若将操作数B、C拼接起来,则得到{B,C}=4’b1000;若将操作数A、B的第1位和C的第0位拼接起来,则得到一个3位矢量的新操作数,即{A,B[1],C[0]}=31b110。若将操作数A、B、C和3i b101拼接起来,则得到一个8位矢量的新操作数,即{A,B,C,31b101}=81b11000101。
对同一个操作数重复拼接还可以使用双重大括号构成的运算符{{}},例如{4{A}}=4i b1111,{2{A},2{B},C}=8’b11101000。注意,参与拼接的操作数必须标明位宽。
条仵运算符有三个操作数,运算时根据条件表达式的值选择表达式。一般用法如下:
condition-expr?expr1:expr2; .
首先计算第一个操作数condiuon~expr的值,如果结果为逻辑1,则选择第二个操作数expr1的值作为结果返回,否则,选择第三个操作数expr2的值作为结果返回。该运算符的功能与条件语句(if-else)等效。例4.6.7是使用条件运算符的一个例子。
数据流建模举例,在Verilog语言中,数据流建模使用的基本语句是连续赋值语句,连续赋值语句用于对wire型变量进行赋值,它由关键词assign开始,后面跟着由操作数和运算符组成的逻辑表达式。例如,2选1数据选择器的连续赋值描述是:
wire A,B,SEL,L;//声明4个连线型变量
assngn L=(A&~SEL)|(B&SEL);//连续赋值
连续赋值语句的执行过程是:只要逻辑表达式右边变量的逻辑值发生变化,则等式右边表达式的值会立即被计算出来并赋给左边的变量。注意,在assign语句中,左边变量的数据类型必须是Wire型。
前面门级描述中介绍的2线-4线译码器和4位全加器的数据流描述分别如例4.6.4和例4.6.5所示。例4.6.4由4个逻辑表达式组成的连续赋值语句实现了2线一4线译码器的逻辑功能。仿真时,4条连续赋值语句是同时并行执行的。
例4.6.4
//Datanow description of a 2-to~4~1ine decoder, (See Fig・4.4.7)
1nodule decoder~df(A1,A0,E,Y);
input A1,A0,E;