📄 shift_div.v
字号:
module shift_div(clk,Enable,a,b,p,over);
parameter size=32;
input clk;
input Enable;
input [2*size:1]a;
input [size:1]b;
output [size:1]p;
output over;
reg over;//结束标志寄存器
reg [2*size:1]tempa;//除数寄存器
reg [size:1]tempb;//被除数寄存器
reg [size:1]tempc;//余数寄存器
reg [size:1]p;//商寄存器
reg [size:1]temp;//商缓存寄存器
reg c;//当前商数
integer i;
always@(posedge clk)
if(!Enable)
begin
if(i==0)
begin
over<=1'b1;
i<=2*size+1;
//p<=temp;//结果不四舍五入
p<=(tempc<tempb)?temp:(temp+1'b1);//结果四舍五入
tempa<=a;
tempb<=b;
tempc<=0;
temp<=0;
c<=1'b0;
end
else if(i>0)
begin
if(tempc<tempb)
begin
c=1'b0;
tempc<=(tempc<<1)+tempa[2*size];
end
else
begin
c=1'b1;
tempc<=((tempc-tempb)<<1)+tempa[2*size];
end
tempa<=tempa<<1;
temp<=(temp<<1)+c;
i<=i-1;
over<=1'b0;
end
end
else
begin
p<=0;
end
endmodule
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -