下载此文档

实验一平方根求解算法的实现.docx


文档分类:IT计算机 | 页数:约6页 举报非法文档有奖
1/6
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/6 下载此文档
文档列表 文档介绍
实验一平方根求解算法的实现
3011204173 通信二班刘西瑶
:
(1)实现程序:
module sqrt(
clk,
start,
over,
data,
result,
remain);
input clk; //时钟
input start; //开始信号
input wire [9:0] data; //输入数据
output reg over; //计算完成指示信号
output reg [9:0] result; //开方结果
output reg [9:0] remain; //余数
reg [2:0] STATE;
reg [9:0] M;
reg [3:0] N;
reg [9:0] CMP;
reg [9:0] X,R;
initial
begin
STATE=0;
over=0;
end
always@(posedge clk)
begin
case(STATE)
0:begin
over<=0;
if(start)
begin
STATE<=1;
X<=0;//00…00
R<=data;
M<=data>>8;//原数据右移8位后给M,也就是M存着data的最高位和次高位
N<=8;
end
end
1:begin
if(M>=1) //如果最高位和次高位不是00也就是01 10 11三种
begin
X<=1;//00…01
R<=R-(10'd1<<N);//位宽80的十进制的1左移78位
//以上的话就是让原数据减去次高位为1的一个数
//01-01=00;10-01=01;11-01=10
end
STATE<=2;//这是2状态
end
2:begin
N<=N-2; //N=76
X<=X<<1;//X左移一位 X=00…10
CMP<=(((X<<2)+1)<<(N-2));//1001左移74位的值=001001..0000
STATE<=3;//这是状态3
end
3:begin
if(R>=CMP)
begin
X<=X+1;
R<=R-CMP;
end
STATE<=4;//这是状态4
end
4:begin
if(N==0)//N为零时
begin
result<=X; //X的值就是结果
remain<=R; //R的值是余数
over<=1; //计算结束over置为1
STATE<=0; //回到0状态
end
else
STATE<=2; //不为零也就是还没算完时,回到状态2
end
default:begin
STATE<=0; //前面出错回到0状态
en

实验一平方根求解算法的实现 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数6
  • 收藏数0 收藏
  • 顶次数0
  • 上传人260933426
  • 文件大小169 KB
  • 时间2017-08-16