module kjasdja(a,option,b,result)
input option,a,b
output result
always @(a,b,option)
begin
result_r=0 //结果寄存器清零
case(option)
+:result_r=a+b
-:result_r=a-b
*:result_r=a*b
/:result_r=a/b
assign result =result_r
endmodule
大概算法就腔桥拦这样。写的仓促,语法可能消扒有误。另外除法reg类型只能存储整数部分,小数通过移位 *** 作实伍胡现,比较麻烦。比如3/5=0.6
做的时候先3=30,然后30/5=6,然后对6在数码管的显示进行调整就好。把6显示在小数点后面1位就好
verilog在调用模块的时候,信号端口可以通过位置或名称关联。
调用形式:module and (C,A,B);input A,B;output C;... endmoduleand A1 (T3, A1, B 1)//A1为调用and这个模块的一个加法器,在对A1进行实例化时采用位置关联,T3对应输出端口C,A对应A1,B对应B1。and A2(.C(T3),.A(A2),.B(B2));//在对A2实例化时采用名字卖世友关联,C是and 器件的端中槐口,其与信号T3相连,A对应A2,B对应B2。
Verilog HDL是目前应用最为广泛的硬件描述语言。Verilog HDL可以用来进行各种层次的逻辑设计,也可以进行数字系统的逻辑综合,仿真验证和时序分析等。Verilog HDL适合算法级,寄存器级,逻辑级,门级和版图级等各个层次的设计和描述返谈。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)