现在利用VerilogHDL代码来具体描述这种连续赋值与过程赋值区别;这段代码是描述LED轻量级密码算法实现有限域乘法模块。

连续赋值实现代码:

`timescale1ns/1ns

moduleFieldMutil(c,a,b);

input[0:3]a,b;

output[0:3]c;

wire[0:3]s2,s1,s0;//定义为线网型变量

assigns2=(a[0]==1)?{a[1:2],!a[3],1‘b1}:{a[1:3],1’b0};//使用assign进行赋值

assigns1=(s2[0]==1)?{s2[1:2],!s2[3],1‘b1}:{s2[1:3],1’b0};

assigns0=(s1[0]==1)?{s1[1:2],!s1[3],1‘b1}:{s1[1:3],1’b0};

assignc=((b[3]==1)?a:0)^((b[2]==1)?s2:0)^((b[1]==1)?s1:0)^((b[0]==1)?s0:0);

endmodule

过程赋值实现代码:

`timescale1ns/1ns

moduleFieldMutil(c,a,b,clk);

inputclk;

input[3:0]a,b;

output[3:0]c;

reg[3:0]c;//定义为寄存器类型变量

regk;

always@(posedgeclk)begin//使用always关键字,来进行赋值,并且clk时钟信号

c=0;

k=c[3];

c=c《《1;

c={c[3:2],c[1]^k,c[0]^k};//modf(z)

if(b[3]==1)c=c^a;//c=c*z+a;

if(b[2]==1)c=c^a;

if(b[1]==1)c=c^a;

if(b[0]==1)c=c^a;

end

endmodule

VerilogHDL语言连续赋值与过程赋值方式区分方法与理解运用已经给大家讲清楚了。

关于EDA,IC设计就介绍完了,您有什么想法可以联系小编。

  • UC3846控制芯片工作原理控制图 逆变焊机原理与用途
  • 数字万用表电阻档测试二极管正反向没有阻值(使用万用表测量二极管的正向电阻,为什么各档)
  • 学单片机需要学数电模电吗(学单片机要先学数电模电吗)
  • 电工怎么选择适合自己用的万用表(电工初学者买什么样的万用表好)
  • 单片机需要同时运行多个任务怎么办(单片机怎么同时执行多个任务)
  • 电机保护的方案取决于负载的机械特性
  • 绝缘电阻表正负搭接不复零位是怎么回事
  • 短路怎么用万用表查