⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 adm.v

📁 verilog實現算術運算後利用7段顯示器將結果輸出
💻 V
字号:
module adm(mua,mub,out,en,st,done,clk);
input en,st,clk;
input [3:0]mua,mub;
output [7:0]out;
output done;
reg [7:0]out;
reg done;
reg [7:0]ws,a;
reg [3:0]sta,q;
parameter s0=4'b0000,s1=4'b0001,s2=4'b0010,s3=4'b0011;
always@(posedge clk)
begin  
if((en==1)&&(st==1))
case(sta)
s0:
  begin
  if(!(q==1))
  begin  a[3:0]=mua[3:0]&{mub[0],mub[0],mub[0],mub[0]}; q=1;end
  else  if(q==1) 
 begin q=0;ws=ws+a; done=0;a=8'b0;sta=s1;end
 end  
 
s1:begin
  if(!(q==1))
  begin  a[4:1]=mua[3:0]&{mub[1],mub[1],mub[1],mub[1]}; q=1;end
  else  if(q==1) 
 begin q=0;ws=ws+a; done=0;a=8'b0;sta=s2;end
 end  

s2:begin
  if(!(q==1))
  begin  a[5:2]=mua[3:0]&{mub[2],mub[2],mub[2],mub[2]}; q=1;end
  else  if(q==1) 
 begin q=0;ws=ws+a; done=0;a=8'b0;sta=s3;end
 end  

s3:begin
  if(!(q==1))
  begin  a[6:3]=mua[3:0]&{mub[3],mub[3],mub[3],mub[3]}; q=1;end
  else  if(q==1) 
 begin ws=ws+a; done=1;a=8'b0;out=ws;end
 end  


endcase

else if((en==1)&&(st==0))
begin  out=0;ws=0;sta=s0; q=0;end
else if(en==0)
begin  out=out; end

end
endmodule

 


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -