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位就好
1module sig2component(clk, rst_n, din, dout)
inputclk
inputrst_n
input [7:0]din
output [7:0] dout
always @ (posedge clk or negedge rst_n)
if (!rst_n)
dout <= 0
else if (din[7]) begin
dout[6:0] <= ~din[6:0] + 7'游猜d1
dout[7] <= din[7]
end
else
dout <神型型= din
endmodule
2
module compare(clk, rst_n, din, flag_out)
input clk, rst_n
input [3:0]din
output flag_out
always @ (posedge clk or negedge rst_n)
if (!rst_n)
flag_out <= 0
else if (din >租念 4'd4)
flag_out <= 1'b1
else
flag_out <= 1'b0
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)