1 Star 0 Fork 0

voiue/FPU

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
fsqrt.v 1.39 KB
一键复制 编辑 原始数据 按行查看 历史
YutaPic 提交于 2020-11-01 12:48 . Update fsqrt.v
`default_nettype none
`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company:
// Engineer: Yuta Fukushima
//
// Create Date: 2020/10/31 22:01:37
// Design Name:
// Module Name: fsqrt
// Project Name: C&P
// Target Devices: KCU105
// Tool Versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//////////////////////////////////////////////////////////////////////////////////
module fsqrt(
input wire clk,
input wire [31:0] a,
output wire [31:0] b
);
wire s = a[31];
wire [7:0] e = a[30:23];
wire [9:0] key = a[23:14];
wire [13:0] ml = a[13:0];
wire [22:0] c1;
wire [12:0] g1;
reg [13:0] ml1;
wire odd = (e[0] == 1) ? 1 : 0;
reg odd1;
wire [8:0] bei = e + 8'd127;
wire [7:0] be = odd ? bei>>1 : (bei - 1)>>1;
reg [7:0] be1;
(* ram_style = "block" *) fsqrt_const_table u1 (clk, key, c1);
(* ram_style = "block" *) fsqrt_grad_table u2 (clk, key, g1);
wire [36:0] gm = g1 * ml1;
wire [22:0] bm = odd1 ? c1 + (gm >> 14) : c1 + (gm >> 13);
initial begin
ml1 <= 0;
be1 <= 0;
odd1 <= 0;
end
always @(posedge clk) begin
ml1 <= ml;
be1 <= be;
odd1 <= odd;
end
assign b = (s == 1) ? 0 : {1'b0, be1, bm};
endmodule
`default_nettype wire
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/voiue/FPU.git
git@gitee.com:voiue/FPU.git
voiue
FPU
FPU
main

搜索帮助