mirror of
https://github.com/vortexgpgpu/vortex.git
synced 2025-04-23 13:27:29 -04:00
added altera fpu modules
This commit is contained in:
parent
d8bdaa2b4e
commit
ffd9515881
48 changed files with 8888 additions and 459 deletions
|
@ -1,12 +1,20 @@
|
|||
#!/bin/bash
|
||||
|
||||
dir_list='../rtl/libs ../rtl/cache ../rtl/interfaces ../rtl ../rtl/fp_cores/fpnew/src/common_cells/include ../rtl/fp_cores ../rtl/fp_cores/altera ../rtl/fp_cores/fpnew/src/common_cells/src ../rtl/fp_cores/fpnew/src/fpu_div_sqrt_mvp/hdl ../rtl/fp_cores/fpnew/src'
|
||||
dir_list='../rtl/libs ../rtl/cache ../rtl/interfaces ../rtl ../rtl/fp_cores/fpnew/src/common_cells/include ../rtl/fp_cores ../rtl/fp_cores/altera'
|
||||
exclude_list='VX_fpnew.v'
|
||||
|
||||
# read design sources
|
||||
for dir in $dir_list; do
|
||||
echo "+incdir+$dir"
|
||||
for file in $(find $dir -maxdepth 1 -name '*.v' -o -name '*.sv' -type f)
|
||||
do
|
||||
echo $file
|
||||
for file in $(find $dir -maxdepth 1 -name '*.v' -o -name '*.sv' -type f); do
|
||||
exclude=0
|
||||
for fe in $exclude_list; do
|
||||
if [[ $file =~ $fe ]]; then
|
||||
exclude=1
|
||||
fi
|
||||
done
|
||||
if [[ $exclude == 0 ]]; then
|
||||
echo $file
|
||||
fi
|
||||
done
|
||||
done
|
|
@ -1,6 +1,7 @@
|
|||
+define+NUM_CORES=1
|
||||
|
||||
#+define+SCOPE
|
||||
+define+SYNTHESIS
|
||||
|
||||
#+define+DBG_PRINT_CORE_ICACHE
|
||||
#+define+DBG_PRINT_CORE_DCACHE
|
||||
|
|
|
@ -38,9 +38,16 @@
|
|||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
`define LATENCY_IDIV 24
|
||||
`define LATENCY_IDIV 22
|
||||
`define LATENCY_IMUL 2
|
||||
|
||||
`define LATENCY_FDIV 16
|
||||
`define LATENCY_FSQRT 10
|
||||
`define LATENCY_FTOI 5
|
||||
`define LATENCY_FTOU 4
|
||||
`define LATENCY_ITOF 8
|
||||
`define LATENCY_UTOF 7
|
||||
|
||||
`define LATENCY_FMULADD 2
|
||||
`define LATENCY_FDIVSQRT 2
|
||||
`define LATENCY_FCONV 2
|
||||
|
@ -193,6 +200,12 @@
|
|||
`define FRM_RMM 3'b100 // round to nearest max magnitude
|
||||
`define FRM_DYN 3'b111 // dynamic mode
|
||||
`define FRM_BITS 3
|
||||
|
||||
`define FFG_NX 0 // inexact
|
||||
`define FFG_UF 1 // underflow
|
||||
`define FFG_OF 2 // overflow
|
||||
`define FFG_DZ 3 // division by zero
|
||||
`define FFG_NV 4 // invalid
|
||||
`define FFG_BITS 5
|
||||
|
||||
`define GPU_TMC 3'h0
|
||||
|
@ -415,6 +428,16 @@ typedef struct packed {
|
|||
logic [31:0] curr_PC;
|
||||
logic [`NR_BITS-1:0] rd;
|
||||
logic wb;
|
||||
} is_data_t;
|
||||
} issue_data_t;
|
||||
|
||||
typedef struct packed {
|
||||
logic is_normal;
|
||||
logic is_zero;
|
||||
logic is_subnormal;
|
||||
logic is_inf;
|
||||
logic is_nan;
|
||||
logic is_signaling;
|
||||
logic is_quiet;
|
||||
} fp_type_t;
|
||||
|
||||
`endif
|
||||
|
|
|
@ -16,7 +16,7 @@ module VX_gpr_stage #(
|
|||
|
||||
wire [`NUM_THREADS-1:0][31:0] rs1_data;
|
||||
wire [`NUM_THREADS-1:0][31:0] rs2_data;
|
||||
wire [`NW_BITS+`NR_BITS-1:0] raddr1;
|
||||
wire [`NW_BITS+`NR_BITS-1:0] raddr1;
|
||||
|
||||
VX_gpr_ram gpr_ram (
|
||||
.clk (clk),
|
||||
|
|
|
@ -86,7 +86,7 @@ module VX_lsu_unit #(
|
|||
.reset (reset),
|
||||
.stall (stall_in),
|
||||
.flush (0),
|
||||
.in ({lsu_req_if.valid, lsu_req_if.warp_num, lsu_req_if.thread_mask, lsu_req_if.issue_tag, full_address, mem_req_sext, lsu_req_if.rw, mem_req_addr, mem_req_offset, mem_req_byteen, mem_req_data, lsu_req_if.rd, lsu_req_if.wb, lsu_req_if.curr_PC}),
|
||||
.in ({lsu_req_if.valid, lsu_req_if.warp_num, lsu_req_if.thread_mask, lsu_req_if.issue_tag, full_address, mem_req_sext, lsu_req_if.rw, mem_req_addr, mem_req_offset, mem_req_byteen, mem_req_data, lsu_req_if.rd, lsu_req_if.wb, lsu_req_if.curr_PC}),
|
||||
.out ({use_valid, use_warp_num, use_thread_mask, use_issue_tag, use_address, use_req_sext, use_req_rw, use_req_addr, use_req_offset, use_req_byteen, use_req_data, use_rd, use_wb, use_pc})
|
||||
);
|
||||
|
||||
|
@ -126,7 +126,7 @@ module VX_lsu_unit #(
|
|||
mem_rsp_rd_buf [use_issue_tag] <= use_rd;
|
||||
end
|
||||
if (dcache_rsp_fire) begin
|
||||
mem_rsp_mask_buf [rsp_issue_tag] <= mem_rsp_mask_n;
|
||||
mem_rsp_mask_buf [rsp_issue_tag] <= mem_rsp_mask_n;
|
||||
mem_rsp_data_all_buf [rsp_issue_tag] <= mem_rsp_data_all | mem_rsp_data_curr;
|
||||
end
|
||||
end
|
||||
|
|
|
@ -104,7 +104,7 @@ module VX_mul_unit #(
|
|||
VX_shift_register #(
|
||||
.DATAW(1 + `ISTAG_BITS + 1),
|
||||
.DEPTH(`LATENCY_IMUL)
|
||||
) mul_delay (
|
||||
) mul_shift_reg (
|
||||
.clk(clk),
|
||||
.reset(reset),
|
||||
.enable(~stall_mul),
|
||||
|
@ -115,7 +115,7 @@ module VX_mul_unit #(
|
|||
VX_shift_register #(
|
||||
.DATAW(1 + `ISTAG_BITS + `NUM_THREADS),
|
||||
.DEPTH(`LATENCY_IDIV)
|
||||
) div_delay (
|
||||
) div_shift_reg (
|
||||
.clk(clk),
|
||||
.reset(reset),
|
||||
.enable(~stall_div),
|
||||
|
|
|
@ -67,7 +67,7 @@ module VX_scheduler #(
|
|||
wire issue_fire = decode_if.valid && ~stall;
|
||||
|
||||
VX_cam_buffer #(
|
||||
.DATAW ($bits(is_data_t)),
|
||||
.DATAW ($bits(issue_data_t)),
|
||||
.SIZE (`ISSUEQ_SIZE),
|
||||
.RPORTS (`NUM_EXS)
|
||||
) issue_buffer (
|
||||
|
|
|
@ -123,12 +123,12 @@ module VX_warp_sched #(
|
|||
thread_masks[join_if.warp_num] <= join_tm;
|
||||
didnt_split <= 0;
|
||||
end else if (warp_ctl_if.is_split) begin
|
||||
warp_stalled[warp_ctl_if.warp_num] <= 0;
|
||||
warp_stalled[warp_ctl_if.warp_num] <= 0;
|
||||
if (warp_ctl_if.do_split) begin
|
||||
thread_masks[warp_ctl_if.warp_num] <= warp_ctl_if.split_new_mask;
|
||||
didnt_split <= 0;
|
||||
didnt_split <= 0;
|
||||
end else begin
|
||||
didnt_split <= 1;
|
||||
didnt_split <= 1;
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -206,11 +206,8 @@ module VX_warp_sched #(
|
|||
|
||||
genvar i;
|
||||
for (i = 0; i < `NUM_WARPS; i++) begin
|
||||
wire correct_warp_s = (i == warp_ctl_if.warp_num);
|
||||
wire correct_warp_j = (i == join_if.warp_num);
|
||||
|
||||
wire push = (warp_ctl_if.is_split && warp_ctl_if.do_split) && correct_warp_s;
|
||||
wire pop = join_if.is_join && correct_warp_j;
|
||||
wire push = warp_ctl_if.is_split && warp_ctl_if.do_split && (i == warp_ctl_if.warp_num);
|
||||
wire pop = join_if.is_join && (i == join_if.warp_num);
|
||||
|
||||
VX_ipdom_stack #(
|
||||
.WIDTH(1+32+`NUM_THREADS),
|
||||
|
@ -234,7 +231,7 @@ module VX_warp_sched #(
|
|||
|
||||
assign real_schedule = schedule && !warp_stalled[warp_to_schedule] && !total_barrier_stall[warp_to_schedule] && !warp_lock[0];
|
||||
|
||||
assign global_stall = (stall || wstall_this_cycle || hazard || !real_schedule || join_if.is_join);
|
||||
assign global_stall = stall || wstall_this_cycle || hazard || !real_schedule || join_if.is_join;
|
||||
|
||||
assign scheduled_warp = !(wstall_this_cycle || hazard || !real_schedule || join_if.is_join) && !reset;
|
||||
|
||||
|
|
|
@ -25,8 +25,8 @@ module VX_writeback #(
|
|||
reg [31:0] wb_curr_PC_table [`ISSUEQ_SIZE-1:0];
|
||||
reg [`NR_BITS-1:0] wb_rd_table [`ISSUEQ_SIZE-1:0];
|
||||
|
||||
reg [`ISSUEQ_SIZE-1:0] wb_pending;
|
||||
reg [`ISSUEQ_SIZE-1:0] wb_pending_n;
|
||||
reg [`ISSUEQ_SIZE-1:0] wb_valid_table;
|
||||
reg [`ISSUEQ_SIZE-1:0] wb_valid_table_n;
|
||||
|
||||
reg [`ISTAG_BITS-1:0] wb_index;
|
||||
wire [`ISTAG_BITS-1:0] wb_index_n;
|
||||
|
@ -35,40 +35,40 @@ module VX_writeback #(
|
|||
wire wb_valid_n;
|
||||
|
||||
always @(*) begin
|
||||
wb_pending_n = wb_pending;
|
||||
wb_valid_table_n = wb_valid_table;
|
||||
|
||||
if (wb_valid) begin
|
||||
wb_pending_n[wb_index] = 0;
|
||||
wb_valid_table_n[wb_index] = 0;
|
||||
end
|
||||
|
||||
if (alu_commit_if.valid) begin
|
||||
wb_pending_n [alu_commit_if.issue_tag] = cmt_to_issue_if.alu_data.wb;
|
||||
wb_valid_table_n [alu_commit_if.issue_tag] = cmt_to_issue_if.alu_data.wb;
|
||||
end
|
||||
if (lsu_commit_if.valid) begin
|
||||
wb_pending_n [lsu_commit_if.issue_tag] = cmt_to_issue_if.lsu_data.wb;
|
||||
wb_valid_table_n [lsu_commit_if.issue_tag] = cmt_to_issue_if.lsu_data.wb;
|
||||
end
|
||||
if (csr_commit_if.valid) begin
|
||||
wb_pending_n [csr_commit_if.issue_tag] = cmt_to_issue_if.csr_data.wb;
|
||||
wb_valid_table_n [csr_commit_if.issue_tag] = cmt_to_issue_if.csr_data.wb;
|
||||
end
|
||||
if (mul_commit_if.valid) begin
|
||||
wb_pending_n [mul_commit_if.issue_tag] = cmt_to_issue_if.mul_data.wb;
|
||||
wb_valid_table_n [mul_commit_if.issue_tag] = cmt_to_issue_if.mul_data.wb;
|
||||
end
|
||||
if (fpu_commit_if.valid) begin
|
||||
wb_pending_n [fpu_commit_if.issue_tag] = cmt_to_issue_if.fpu_data.wb;
|
||||
wb_valid_table_n [fpu_commit_if.issue_tag] = cmt_to_issue_if.fpu_data.wb;
|
||||
end
|
||||
end
|
||||
|
||||
VX_priority_encoder #(
|
||||
.N(`ISSUEQ_SIZE)
|
||||
) wb_select (
|
||||
.data_in (wb_pending_n),
|
||||
.data_in (wb_valid_table_n),
|
||||
.data_out (wb_index_n),
|
||||
.valid_out (wb_valid_n)
|
||||
);
|
||||
|
||||
always @(posedge clk) begin
|
||||
if (reset) begin
|
||||
wb_pending <= 0;
|
||||
wb_valid_table <= 0;
|
||||
wb_index <= 0;
|
||||
wb_valid <= 0;
|
||||
end else begin
|
||||
|
@ -112,7 +112,7 @@ module VX_writeback #(
|
|||
wb_rd_table [fpu_commit_if.issue_tag] <= cmt_to_issue_if.fpu_data.rd;
|
||||
end
|
||||
|
||||
wb_pending <= wb_pending_n;
|
||||
wb_valid_table <= wb_valid_table_n;
|
||||
wb_index <= wb_index_n;
|
||||
wb_valid <= wb_valid_n && writeback_if.ready;
|
||||
end
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
`include "VX_define.vh"
|
||||
`include "dspba_library_ver.sv"
|
||||
|
||||
module VX_fp_fpga (
|
||||
input wire clk,
|
||||
|
@ -25,68 +26,234 @@ module VX_fp_fpga (
|
|||
input wire out_ready,
|
||||
output wire out_valid
|
||||
);
|
||||
wire fpnew_in_ready;
|
||||
wire [`NUM_THREADS-1:0][31:0] fpnew_result;
|
||||
localparam NUM_FPC = 12;
|
||||
localparam FPC_BITS = `LOG2UP(NUM_FPC);
|
||||
|
||||
reg [FPC_BITS-1:0] core_select;
|
||||
|
||||
wire [NUM_FPC-1:0] core_in_ready;
|
||||
wire [NUM_FPC-1:0][`NUM_THREADS-1:0][31:0] core_result;
|
||||
wire fpnew_has_fflags;
|
||||
wire [`NUM_THREADS-1:0][`FFG_BITS-1:0] fpnew_fflags;
|
||||
wire [`ISTAG_BITS-1:0] fpnew_out_tag;
|
||||
wire fpnew_out_ready;
|
||||
wire fpnew_out_valid;
|
||||
wire [NUM_FPC-1:0][`ISTAG_BITS-1:0] core_out_tag;
|
||||
wire [NUM_FPC-1:0] core_out_ready;
|
||||
wire [NUM_FPC-1:0] core_out_valid;
|
||||
|
||||
wire [`NUM_THREADS-1:0][31:0] add_result;
|
||||
wire add_out_ready;
|
||||
|
||||
VX_fpnew #(
|
||||
.FMULADD (0),
|
||||
.FDIVSQRT (0),
|
||||
.FNONCOMP (1),
|
||||
.FCONV (0)
|
||||
) fp_core (
|
||||
.clk (clk),
|
||||
.reset (reset),
|
||||
|
||||
.in_valid (in_valid),
|
||||
.in_ready (fpnew_in_ready),
|
||||
|
||||
.in_tag (in_tag),
|
||||
|
||||
.op (op),
|
||||
.frm (frm),
|
||||
|
||||
.dataa (dataa),
|
||||
.datab (datab),
|
||||
.datac (datac),
|
||||
.result (fpnew_result),
|
||||
|
||||
.has_fflags (fpnew_has_fflags),
|
||||
.fflags (fpnew_fflags),
|
||||
|
||||
.out_tag (fpnew_out_tag),
|
||||
|
||||
.out_ready (fpnew_out_ready),
|
||||
.out_valid (fpnew_out_valid)
|
||||
);
|
||||
reg negate_output;
|
||||
|
||||
genvar i;
|
||||
for (i = 0; i < `NUM_THREADS; i++) begin
|
||||
acl_fp_add fp_add (
|
||||
.clock (clk),
|
||||
.dataa (dataa),
|
||||
.datab (datab),
|
||||
.enable (add_out_ready),
|
||||
.result (add_result[i])
|
||||
);
|
||||
|
||||
always @(*) begin
|
||||
core_select = 0;
|
||||
negate_output = 0;
|
||||
case (op)
|
||||
`FPU_ADD: core_select = 1;
|
||||
`FPU_SUB: core_select = 2;
|
||||
`FPU_MUL: core_select = 3;
|
||||
`FPU_MADD: core_select = 4;
|
||||
`FPU_MSUB: core_select = 5;
|
||||
`FPU_NMSUB: begin core_select = 4; negate_output = 1; end
|
||||
`FPU_NMADD: begin core_select = 5; negate_output = 1; end
|
||||
`FPU_DIV: core_select = 6;
|
||||
`FPU_SQRT: core_select = 7;
|
||||
`FPU_CVTWS: core_select = 8;
|
||||
`FPU_CVTWUS: core_select = 9;
|
||||
`FPU_CVTSW: core_select = 10;
|
||||
`FPU_CVTSWU: core_select = 11;
|
||||
default:;
|
||||
endcase
|
||||
end
|
||||
|
||||
assign in_reqady = fpnew_in_ready;
|
||||
assign has_fflags = fpnew_has_fflags;
|
||||
assign fflags = fpnew_fflags;
|
||||
assign out_tag = fpnew_out_tag;
|
||||
assign fpnew_out_ready = out_ready;
|
||||
VX_fp_noncomp fp_noncomp (
|
||||
.clk (clk),
|
||||
.reset (reset),
|
||||
.in_valid (in_valid && (core_select == 0)),
|
||||
.in_ready (core_in_ready[0]),
|
||||
.in_tag (in_tag),
|
||||
.op (op),
|
||||
.frm (frm),
|
||||
.dataa (dataa),
|
||||
.datab (datab),
|
||||
.result (core_result[0]),
|
||||
.has_fflags (fpnew_has_fflags),
|
||||
.fflags (fpnew_fflags),
|
||||
.out_tag (core_out_tag[0]),
|
||||
.out_ready (core_out_ready[0]),
|
||||
.out_valid (core_out_valid[0])
|
||||
);
|
||||
|
||||
VX_fp_add fp_add (
|
||||
.clk (clk),
|
||||
.reset (reset),
|
||||
.in_valid (in_valid && (core_select == 1)),
|
||||
.in_ready (core_in_ready[1]),
|
||||
.in_tag (in_tag),
|
||||
.dataa (dataa),
|
||||
.datab (datab),
|
||||
.result (core_result[1]),
|
||||
.out_tag (core_out_tag[1]),
|
||||
.out_ready (core_out_ready[1]),
|
||||
.out_valid (core_out_valid[1])
|
||||
);
|
||||
|
||||
assign add_out_ready = out_ready;
|
||||
VX_fp_sub fp_sub (
|
||||
.clk (clk),
|
||||
.reset (reset),
|
||||
.in_valid (in_valid && (core_select == 2)),
|
||||
.in_ready (core_in_ready[2]),
|
||||
.in_tag (in_tag),
|
||||
.dataa (dataa),
|
||||
.datab (datab),
|
||||
.result (core_result[2]),
|
||||
.out_tag (core_out_tag[2]),
|
||||
.out_ready (core_out_ready[2]),
|
||||
.out_valid (core_out_valid[2])
|
||||
);
|
||||
|
||||
assign result = fpnew_out_valid ? fpnew_result : add_result;
|
||||
assign out_valid = fpnew_out_valid;
|
||||
VX_fp_mul fp_mul (
|
||||
.clk (clk),
|
||||
.reset (reset),
|
||||
.in_valid (in_valid && (core_select == 3)),
|
||||
.in_ready (core_in_ready[3]),
|
||||
.in_tag (in_tag),
|
||||
.dataa (dataa),
|
||||
.datab (datab),
|
||||
.result (core_result[3]),
|
||||
.out_tag (core_out_tag[3]),
|
||||
.out_ready (core_out_ready[3]),
|
||||
.out_valid (core_out_valid[3])
|
||||
);
|
||||
|
||||
VX_fp_madd fp_madd (
|
||||
.clk (clk),
|
||||
.reset (reset),
|
||||
.in_valid (in_valid && (core_select == 4)),
|
||||
.in_ready (core_in_ready[4]),
|
||||
.in_tag (in_tag),
|
||||
.negate (negate_output),
|
||||
.dataa (dataa),
|
||||
.datab (datab),
|
||||
.datac (datac),
|
||||
.result (core_result[4]),
|
||||
.out_tag (core_out_tag[4]),
|
||||
.out_ready (core_out_ready[4]),
|
||||
.out_valid (core_out_valid[4])
|
||||
);
|
||||
|
||||
VX_fp_msub fp_msub (
|
||||
.clk (clk),
|
||||
.reset (reset),
|
||||
.in_valid (in_valid && (core_select == 5)),
|
||||
.in_ready (core_in_ready[5]),
|
||||
.in_tag (in_tag),
|
||||
.negate (negate_output),
|
||||
.dataa (dataa),
|
||||
.datab (datab),
|
||||
.datac (datac),
|
||||
.result (core_result[5]),
|
||||
.out_tag (core_out_tag[5]),
|
||||
.out_ready (core_out_ready[5]),
|
||||
.out_valid (core_out_valid[5])
|
||||
);
|
||||
|
||||
VX_fp_div fp_div (
|
||||
.clk (clk),
|
||||
.reset (reset),
|
||||
.in_valid (in_valid && (core_select == 6)),
|
||||
.in_ready (core_in_ready[6]),
|
||||
.in_tag (in_tag),
|
||||
.dataa (dataa),
|
||||
.datab (datab),
|
||||
.result (core_result[6]),
|
||||
.out_tag (core_out_tag[6]),
|
||||
.out_ready (core_out_ready[6]),
|
||||
.out_valid (core_out_valid[6])
|
||||
);
|
||||
|
||||
VX_fp_sqrt fp_sqrt (
|
||||
.clk (clk),
|
||||
.reset (reset),
|
||||
.in_valid (in_valid && (core_select == 7)),
|
||||
.in_ready (core_in_ready[7]),
|
||||
.in_tag (in_tag),
|
||||
.dataa (dataa),
|
||||
.result (core_result[7]),
|
||||
.out_tag (core_out_tag[7]),
|
||||
.out_ready (core_out_ready[7]),
|
||||
.out_valid (core_out_valid[7])
|
||||
);
|
||||
|
||||
VX_fp_ftoi fp_ftoi (
|
||||
.clk (clk),
|
||||
.reset (reset),
|
||||
.in_valid (in_valid && (core_select == 8)),
|
||||
.in_ready (core_in_ready[8]),
|
||||
.in_tag (in_tag),
|
||||
.dataa (dataa),
|
||||
.result (core_result[8]),
|
||||
.out_tag (core_out_tag[8]),
|
||||
.out_ready (core_out_ready[8]),
|
||||
.out_valid (core_out_valid[8])
|
||||
);
|
||||
|
||||
VX_fp_ftou fp_ftou (
|
||||
.clk (clk),
|
||||
.reset (reset),
|
||||
.in_valid (in_valid && (core_select == 9)),
|
||||
.in_ready (core_in_ready[9]),
|
||||
.in_tag (in_tag),
|
||||
.dataa (dataa),
|
||||
.result (core_result[9]),
|
||||
.out_tag (core_out_tag[9]),
|
||||
.out_ready (core_out_ready[9]),
|
||||
.out_valid (core_out_valid[9])
|
||||
);
|
||||
|
||||
VX_fp_itof fp_itof (
|
||||
.clk (clk),
|
||||
.reset (reset),
|
||||
.in_valid (in_valid && (core_select == 10)),
|
||||
.in_ready (core_in_ready[10]),
|
||||
.in_tag (in_tag),
|
||||
.dataa (dataa),
|
||||
.result (core_result[10]),
|
||||
.out_tag (core_out_tag[10]),
|
||||
.out_ready (core_out_ready[10]),
|
||||
.out_valid (core_out_valid[10])
|
||||
);
|
||||
|
||||
VX_fp_utof fp_utof (
|
||||
.clk (clk),
|
||||
.reset (reset),
|
||||
.in_valid (in_valid && (core_select == 11)),
|
||||
.in_ready (core_in_ready[11]),
|
||||
.in_tag (in_tag),
|
||||
.dataa (dataa),
|
||||
.result (core_result[11]),
|
||||
.out_tag (core_out_tag[11]),
|
||||
.out_ready (core_out_ready[11]),
|
||||
.out_valid (core_out_valid[11])
|
||||
);
|
||||
|
||||
wire [FPC_BITS-1:0] fp_index;
|
||||
wire fp_valid;
|
||||
|
||||
VX_priority_encoder #(
|
||||
.N(NUM_FPC)
|
||||
) wb_select (
|
||||
.data_in (core_out_valid),
|
||||
.data_out (fp_index),
|
||||
.valid_out (fp_valid)
|
||||
);
|
||||
|
||||
for (i = 0; i < NUM_FPC; i++) begin
|
||||
assign core_out_ready[i] = out_ready && (i == fp_index);
|
||||
end
|
||||
|
||||
assign has_fflags = fpnew_has_fflags && (fp_index == 0);
|
||||
assign fflags = fpnew_fflags;
|
||||
assign out_tag = core_out_tag[fp_index];
|
||||
assign result = core_result[fp_index];
|
||||
assign out_valid = fp_valid;
|
||||
|
||||
endmodule
|
243
hw/rtl/fp_cores/VX_fp_noncomp.v
Normal file
243
hw/rtl/fp_cores/VX_fp_noncomp.v
Normal file
|
@ -0,0 +1,243 @@
|
|||
`include "VX_define.vh"
|
||||
|
||||
module VX_fp_noncomp (
|
||||
input wire clk,
|
||||
input wire reset,
|
||||
|
||||
output wire in_ready,
|
||||
input wire in_valid,
|
||||
|
||||
input wire [`ISTAG_BITS-1:0] in_tag,
|
||||
|
||||
input wire [`FPU_BITS-1:0] op,
|
||||
input wire [`FRM_BITS-1:0] frm,
|
||||
|
||||
input wire [`NUM_THREADS-1:0][31:0] dataa,
|
||||
input wire [`NUM_THREADS-1:0][31:0] datab,
|
||||
output wire [`NUM_THREADS-1:0][31:0] result,
|
||||
|
||||
output wire has_fflags,
|
||||
output wire [`NUM_THREADS-1:0][`FFG_BITS-1:0] fflags,
|
||||
|
||||
output wire [`ISTAG_BITS-1:0] out_tag,
|
||||
|
||||
input wire out_ready,
|
||||
output wire out_valid
|
||||
);
|
||||
localparam NEG_INF = 32'h00000001,
|
||||
NEG_NORM = 32'h00000002,
|
||||
NEG_SUBNORM = 32'h00000004,
|
||||
NEG_ZERO = 32'h00000008,
|
||||
POS_ZERO = 32'h00000010,
|
||||
POS_SUBNORM = 32'h00000020,
|
||||
POS_NORM = 32'h00000040,
|
||||
POS_INF = 32'h00000080,
|
||||
SIG_NAN = 32'h00000100,
|
||||
QUT_NAN = 32'h00000200;
|
||||
|
||||
wire [`NUM_THREADS-1:0] a_sign, b_sign;
|
||||
wire [`NUM_THREADS-1:0][7:0] a_exponent, b_exponent;
|
||||
wire [`NUM_THREADS-1:0][22:0] a_mantissa, b_mantissa;
|
||||
fp_type_t [`NUM_THREADS-1:0] a_type, b_type;
|
||||
|
||||
wire [`NUM_THREADS-1:0] a_smaller, ab_equal;
|
||||
|
||||
reg [`NUM_THREADS-1:0][31:0] fclass_mask; // generate a 10-bit mask for integer reg
|
||||
reg [`NUM_THREADS-1:0][31:0] fminmax_res; // result of fmin/fmax
|
||||
reg [`NUM_THREADS-1:0][31:0] fsgnj_res; // result of sign injection
|
||||
reg [`NUM_THREADS-1:0][31:0] fcmp_res; // result of comparison
|
||||
reg [`NUM_THREADS-1:0][ 4:0] fcmp_excp; // exception of comparison
|
||||
|
||||
genvar i;
|
||||
|
||||
// Setup
|
||||
for (i = 0; i < `NUM_THREADS; i++) begin
|
||||
assign a_sign[i] = dataa[i][31];
|
||||
assign a_exponent[i] = dataa[i][30:23];
|
||||
assign a_mantissa[i] = dataa[i][22:0];
|
||||
|
||||
assign b_sign[i] = datab[i][31];
|
||||
assign b_exponent[i] = datab[i][30:23];
|
||||
assign b_mantissa[i] = datab[i][22:0];
|
||||
|
||||
assign a_smaller[i] = (dataa[i] < datab[i]) ^ (a_sign[i] || b_sign[i]);
|
||||
assign ab_equal[i] = (dataa[i] == datab[i]) | (a_type[i][4] & b_type[i][4]);
|
||||
|
||||
VX_fp_type fp_type_a (
|
||||
.exponent(a_exponent[i]),
|
||||
.mantissa(a_mantissa[i]),
|
||||
.o_type(a_type[i])
|
||||
);
|
||||
|
||||
VX_fp_type fp_type_b (
|
||||
.exponent(b_exponent[i]),
|
||||
.mantissa(b_mantissa[i]),
|
||||
.o_type(b_type[i])
|
||||
);
|
||||
end
|
||||
|
||||
// FCLASS
|
||||
for (i = 0; i < `NUM_THREADS; i++) begin
|
||||
always @(*) begin
|
||||
if (a_type[i].is_normal) begin
|
||||
fclass_mask[i] = a_sign[i] ? NEG_NORM : POS_NORM;
|
||||
end
|
||||
else if (a_type[i].is_inf) begin
|
||||
fclass_mask[i] = a_sign[i] ? NEG_INF : POS_INF;
|
||||
end
|
||||
else if (a_type[i].is_zero) begin
|
||||
fclass_mask[i] = a_sign[i] ? NEG_ZERO : POS_ZERO;
|
||||
end
|
||||
else if (a_type[i].is_subnormal) begin
|
||||
fclass_mask[i] = a_sign[i] ? NEG_SUBNORM : POS_SUBNORM;
|
||||
end
|
||||
else if (a_type[i].is_nan) begin
|
||||
fclass_mask[i] = {22'h0, a_type[i].is_quiet, a_type[i].is_signaling, 8'h0};
|
||||
end
|
||||
else begin
|
||||
fclass_mask[i] = QUT_NAN;
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
// Min/Max
|
||||
for (i = 0; i < `NUM_THREADS; i++) begin
|
||||
always @(*) begin
|
||||
if (a_type[i].is_nan && b_type[i].is_nan)
|
||||
fminmax_res[i] = {1'b0, 8'hff, 1'b1, 22'd0}; // canonical qNaN
|
||||
else if (a_type[i].is_nan)
|
||||
fminmax_res[i] = datab[i];
|
||||
else if (b_type[i].is_nan)
|
||||
fminmax_res[i] = dataa[i];
|
||||
else begin
|
||||
case (op) // use LSB to distinguish MIN and MAX
|
||||
`FPU_MIN: fminmax_res[i] = a_smaller[i] ? dataa[i] : datab[i];
|
||||
`FPU_MAX: fminmax_res[i] = a_smaller[i] ? datab[i] : dataa[i];
|
||||
default: fminmax_res[i] = 32'hdeadbeaf; // don't care value
|
||||
endcase
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
// Sign Injection
|
||||
for (i = 0; i < `NUM_THREADS; i++) begin
|
||||
always @(*) begin
|
||||
case (op)
|
||||
`FPU_SGNJ: fsgnj_res[i] = { b_sign[i], a_exponent[i], a_mantissa[i]};
|
||||
`FPU_SGNJN: fsgnj_res[i] = {~b_sign[i], a_exponent[i], a_mantissa[i]};
|
||||
`FPU_SGNJX: fsgnj_res[i] = { a_sign[i] ^ b_sign[i], a_exponent[i], a_mantissa[i]};
|
||||
default: fsgnj_res[i] = 32'hdeadbeaf; // don't care value
|
||||
endcase
|
||||
end
|
||||
end
|
||||
|
||||
// Comparison
|
||||
for (i = 0; i < `NUM_THREADS; i++) begin
|
||||
always @(*) begin
|
||||
case (frm)
|
||||
`FRM_RNE: begin
|
||||
if (a_type[i].is_nan || b_type[i].is_nan) begin
|
||||
fcmp_res[i] = 32'h0; // result is 0 when either operand is NaN
|
||||
fcmp_excp[i] = {1'b1, 4'h0}; // raise NV flag when either operand is NaN
|
||||
end
|
||||
else begin
|
||||
fcmp_res[i] = {31'h0, (a_smaller[i] | ab_equal[i])};
|
||||
fcmp_excp[i] = 5'h0;
|
||||
end
|
||||
end
|
||||
`FRM_RTZ: begin
|
||||
if (a_type[i].is_nan || b_type[i].is_nan) begin
|
||||
fcmp_res[i] = 32'h0; // result is 0 when either operand is NaN
|
||||
fcmp_excp[i] = {1'b1, 4'h0}; // raise NV flag when either operand is NaN
|
||||
end
|
||||
else begin
|
||||
fcmp_res[i] = {31'h0, (a_smaller[i] & ~ab_equal[i])};
|
||||
fcmp_excp[i] = 5'h0;
|
||||
end
|
||||
end
|
||||
`FRM_RDN: begin
|
||||
if (a_type[i].is_nan || b_type[i].is_nan) begin
|
||||
fcmp_res[i] = 32'h0; // result is 0 when either operand is NaN
|
||||
// ** FEQS only raise NV flag when either operand is signaling NaN
|
||||
fcmp_excp[i] = {(a_type[i].is_signaling | b_type[i].is_signaling), 4'h0};
|
||||
end
|
||||
else begin
|
||||
fcmp_res[i] = {31'h0, ab_equal[i]};
|
||||
fcmp_excp[i] = 5'h0;
|
||||
end
|
||||
end
|
||||
default: begin
|
||||
fcmp_res[i] = 32'hdeadbeaf; // don't care value
|
||||
fcmp_excp[i] = 5'h0;
|
||||
end
|
||||
endcase
|
||||
end
|
||||
end
|
||||
|
||||
// outputs
|
||||
|
||||
reg tmp_valid;
|
||||
reg tmp_has_fflags;
|
||||
reg [`NUM_THREADS-1:0][`FFG_BITS-1:0] tmp_fflags;
|
||||
reg [`NUM_THREADS-1:0][31:0] tmp_result;
|
||||
|
||||
always @(*) begin
|
||||
case (op)
|
||||
`FPU_SGNJ: tmp_has_fflags = 0;
|
||||
`FPU_SGNJN: tmp_has_fflags = 0;
|
||||
`FPU_SGNJX: tmp_has_fflags = 0;
|
||||
`FPU_MVXW: tmp_has_fflags = 0;
|
||||
`FPU_MVWX: tmp_has_fflags = 0;
|
||||
`FPU_CLASS: tmp_has_fflags = 0;
|
||||
default: tmp_has_fflags = 1;
|
||||
endcase
|
||||
end
|
||||
|
||||
for (i = 0; i < `NUM_THREADS; i++) begin
|
||||
always @(*) begin
|
||||
tmp_valid = 1'b1;
|
||||
case (op)
|
||||
`FPU_CLASS: begin
|
||||
tmp_result[i] = fclass_mask[i];
|
||||
{tmp_fflags[i][`FFG_NV], tmp_fflags[i][`FFG_DZ], tmp_fflags[i][`FFG_OF], tmp_fflags[i][`FFG_UF], tmp_fflags[i][`FFG_NX]} = 5'h0;
|
||||
end
|
||||
`FPU_MVXW,`FPU_MVWX: begin
|
||||
tmp_result[i] = dataa[i];
|
||||
{tmp_fflags[i][`FFG_NV], tmp_fflags[i][`FFG_DZ], tmp_fflags[i][`FFG_OF], tmp_fflags[i][`FFG_UF], tmp_fflags[i][`FFG_NX]} = 5'h0;
|
||||
end
|
||||
`FPU_MIN,`FPU_MAX: begin
|
||||
tmp_result[i] = fminmax_res[i];
|
||||
{tmp_fflags[i][`FFG_NV], tmp_fflags[i][`FFG_DZ], tmp_fflags[i][`FFG_OF], tmp_fflags[i][`FFG_UF], tmp_fflags[i][`FFG_NX]} = {a_type[i][0] | b_type[i][0], 4'h0};
|
||||
end
|
||||
`FPU_SGNJ,`FPU_SGNJN,`FPU_SGNJX: begin
|
||||
tmp_result[i] = fsgnj_res[i];
|
||||
{tmp_fflags[i][`FFG_NV], tmp_fflags[i][`FFG_DZ], tmp_fflags[i][`FFG_OF], tmp_fflags[i][`FFG_UF], tmp_fflags[i][`FFG_NX]} = 5'h0;
|
||||
end
|
||||
`FPU_CMP: begin
|
||||
tmp_result[i] = fcmp_res[i];
|
||||
{tmp_fflags[i][`FFG_NV], tmp_fflags[i][`FFG_DZ], tmp_fflags[i][`FFG_OF], tmp_fflags[i][`FFG_UF], tmp_fflags[i][`FFG_NX]} = fcmp_excp[i];
|
||||
end
|
||||
default: begin
|
||||
tmp_result[i] = 32'hdeadbeaf;
|
||||
{tmp_fflags[i][`FFG_NV], tmp_fflags[i][`FFG_DZ], tmp_fflags[i][`FFG_OF], tmp_fflags[i][`FFG_UF], tmp_fflags[i][`FFG_NX]} = 5'h0;
|
||||
tmp_valid = 1'b0;
|
||||
end
|
||||
endcase
|
||||
end
|
||||
end
|
||||
|
||||
wire stall = ~out_ready && out_valid;
|
||||
assign in_ready = ~stall;
|
||||
|
||||
VX_generic_register #(
|
||||
.N(1 + `ISTAG_BITS + (`NUM_THREADS * 32) + 1 + `FFG_BITS)
|
||||
) nc_reg (
|
||||
.clk (clk),
|
||||
.reset (reset),
|
||||
.stall (stall),
|
||||
.flush (1'b0),
|
||||
.in ({tmp_valid, in_tag, tmp_result, tmp_has_fflags, tmp_fflags}),
|
||||
.out ({out_valid, out_tag, result, has_fflags, fflags})
|
||||
);
|
||||
|
||||
endmodule
|
19
hw/rtl/fp_cores/VX_fp_type.v
Normal file
19
hw/rtl/fp_cores/VX_fp_type.v
Normal file
|
@ -0,0 +1,19 @@
|
|||
|
||||
`include "VX_define.vh"
|
||||
|
||||
module VX_fp_type (
|
||||
// inputs
|
||||
input [7:0] exponent,
|
||||
input [22:0] mantissa,
|
||||
// outputs
|
||||
output fp_type_t o_type
|
||||
);
|
||||
assign o_type.is_normal = (exponent != 8'd0) && (exponent != 8'hff);
|
||||
assign o_type.is_zero = (exponent == 8'd0) && (mantissa == 23'd0);
|
||||
assign o_type.is_subnormal = (exponent == 8'd0) && !o_type.is_zero;
|
||||
assign o_type.is_inf = ((exponent == 8'hff) && (mantissa == 23'd0));
|
||||
assign o_type.is_nan = ((exponent == 8'hff) && (mantissa != 23'd0));
|
||||
assign o_type.is_signaling = o_type.is_nan && (mantissa[22] == 1'b0);
|
||||
assign o_type.is_quiet = o_type.is_nan && !o_type.is_signaling;
|
||||
|
||||
endmodule
|
|
@ -83,13 +83,13 @@ module VX_fpnew #(
|
|||
reg [FOP_BITS-1:0] fpu_op;
|
||||
reg [`FRM_BITS-1:0] fpu_rnd;
|
||||
reg fpu_op_mod;
|
||||
reg fflags_en, fflags_en_o;
|
||||
reg fpu_has_fflags, fpu_has_fflags_o;
|
||||
|
||||
always @(*) begin
|
||||
fpu_op = fpnew_pkg::SGNJ;
|
||||
fpu_rnd = frm;
|
||||
fpu_op_mod = 0;
|
||||
fflags_en = 1;
|
||||
fpu_has_fflags = 1;
|
||||
fpu_operands[0] = dataa;
|
||||
fpu_operands[1] = datab;
|
||||
fpu_operands[2] = datac;
|
||||
|
@ -112,18 +112,18 @@ module VX_fpnew #(
|
|||
`FPU_MSUB: begin fpu_op = fpnew_pkg::FMADD; fpu_op_mod = 1; end
|
||||
`FPU_NMSUB: begin fpu_op = fpnew_pkg::FNMSUB; end
|
||||
`FPU_NMADD: begin fpu_op = fpnew_pkg::FNMSUB; fpu_op_mod = 1; end
|
||||
`FPU_SGNJ: begin fpu_op = fpnew_pkg::SGNJ; fpu_rnd = `FRM_RNE; fflags_en = 0; end
|
||||
`FPU_SGNJN: begin fpu_op = fpnew_pkg::SGNJ; fpu_rnd = `FRM_RTZ; fflags_en = 0; end
|
||||
`FPU_SGNJX: begin fpu_op = fpnew_pkg::SGNJ; fpu_rnd = `FRM_RDN; fflags_en = 0; end
|
||||
`FPU_SGNJ: begin fpu_op = fpnew_pkg::SGNJ; fpu_rnd = `FRM_RNE; fpu_has_fflags = 0; end
|
||||
`FPU_SGNJN: begin fpu_op = fpnew_pkg::SGNJ; fpu_rnd = `FRM_RTZ; fpu_has_fflags = 0; end
|
||||
`FPU_SGNJX: begin fpu_op = fpnew_pkg::SGNJ; fpu_rnd = `FRM_RDN; fpu_has_fflags = 0; end
|
||||
`FPU_MIN: begin fpu_op = fpnew_pkg::MINMAX; fpu_rnd = `FRM_RNE; end
|
||||
`FPU_MAX: begin fpu_op = fpnew_pkg::MINMAX; fpu_rnd = `FRM_RTZ; end
|
||||
`FPU_CVTWS: begin fpu_op = fpnew_pkg::F2I; end
|
||||
`FPU_CVTWUS:begin fpu_op = fpnew_pkg::F2I; fpu_op_mod = 1; end
|
||||
`FPU_CVTSW: begin fpu_op = fpnew_pkg::I2F; end
|
||||
`FPU_CVTSWU:begin fpu_op = fpnew_pkg::I2F; fpu_op_mod = 1; end
|
||||
`FPU_MVXW: begin fpu_op = fpnew_pkg::SGNJ; fpu_rnd = `FRM_RUP; fflags_en = 0; end
|
||||
`FPU_MVWX: begin fpu_op = fpnew_pkg::SGNJ; fpu_rnd = `FRM_RUP; fflags_en = 0; end
|
||||
`FPU_CLASS: begin fpu_op = fpnew_pkg::CLASSIFY; fflags_en = 0; end
|
||||
`FPU_MVXW: begin fpu_op = fpnew_pkg::SGNJ; fpu_rnd = `FRM_RUP; fpu_has_fflags = 0; end
|
||||
`FPU_MVWX: begin fpu_op = fpnew_pkg::SGNJ; fpu_rnd = `FRM_RUP; fpu_has_fflags = 0; end
|
||||
`FPU_CLASS: begin fpu_op = fpnew_pkg::CLASSIFY; fpu_has_fflags = 0; end
|
||||
`FPU_CMP: begin fpu_op = fpnew_pkg::CMP; end
|
||||
default:;
|
||||
endcase
|
||||
|
@ -150,13 +150,13 @@ module VX_fpnew #(
|
|||
.dst_fmt_i (fpnew_pkg::fp_format_e'(fpu_dst_fmt)),
|
||||
.int_fmt_i (fpnew_pkg::int_format_e'(fpu_int_fmt)),
|
||||
.vectorial_op_i (1'b0),
|
||||
.tag_i ({fpu_in_tag, fflags_en, is_class_op_i}),
|
||||
.tag_i ({fpu_in_tag, fpu_has_fflags, is_class_op_i}),
|
||||
.in_valid_i (fpu_in_valid),
|
||||
.in_ready_o (fpu_in_ready),
|
||||
.flush_i (reset),
|
||||
.result_o (fpu_result[0]),
|
||||
.status_o (fpu_status[0]),
|
||||
.tag_o ({fpu_out_tag, fflags_en_o, is_class_op_o}),
|
||||
.tag_o ({fpu_out_tag, fpu_has_fflags_o, is_class_op_o}),
|
||||
.out_valid_o (fpu_out_valid),
|
||||
.out_ready_i (fpu_out_ready),
|
||||
`UNUSED_PIN (busy_o)
|
||||
|
@ -201,14 +201,14 @@ module VX_fpnew #(
|
|||
|
||||
assign result = fpu_result;
|
||||
|
||||
assign has_fflags = fflags_en_o;
|
||||
assign has_fflags = fpu_has_fflags_o;
|
||||
|
||||
for (i = 0; i < `NUM_THREADS; i++) begin
|
||||
assign fflags[i][0] = fpu_status[i].NX;
|
||||
assign fflags[i][1] = fpu_status[i].UF;
|
||||
assign fflags[i][2] = fpu_status[i].OF;
|
||||
assign fflags[i][3] = fpu_status[i].DZ;
|
||||
assign fflags[i][4] = fpu_status[i].NV;
|
||||
assign fflags[i][`FFG_NX] = fpu_status[i].NX;
|
||||
assign fflags[i][`FFG_UF] = fpu_status[i].UF;
|
||||
assign fflags[i][`FFG_OF] = fpu_status[i].OF;
|
||||
assign fflags[i][`FFG_DZ] = fpu_status[i].DZ;
|
||||
assign fflags[i][`FFG_NV] = fpu_status[i].NV;
|
||||
end
|
||||
|
||||
assign out_valid = fpu_out_valid;
|
||||
|
|
80
hw/rtl/fp_cores/altera/VX_fp_add.v
Normal file
80
hw/rtl/fp_cores/altera/VX_fp_add.v
Normal file
|
@ -0,0 +1,80 @@
|
|||
`include "VX_define.vh"
|
||||
|
||||
module VX_fp_add (
|
||||
input wire clk,
|
||||
input wire reset,
|
||||
|
||||
output wire in_ready,
|
||||
input wire in_valid,
|
||||
|
||||
input wire [`ISTAG_BITS-1:0] in_tag,
|
||||
|
||||
input wire [`NUM_THREADS-1:0][31:0] dataa,
|
||||
input wire [`NUM_THREADS-1:0][31:0] datab,
|
||||
output wire [`NUM_THREADS-1:0][31:0] result,
|
||||
|
||||
output wire [`ISTAG_BITS-1:0] out_tag,
|
||||
|
||||
input wire out_ready,
|
||||
output wire out_valid
|
||||
);
|
||||
wire stall = ~out_ready && out_valid;
|
||||
wire enable = ~stall;
|
||||
assign in_ready = enable;
|
||||
|
||||
genvar i;
|
||||
|
||||
for (i = 0; i < `NUM_THREADS; i++) begin
|
||||
twentynm_fp_mac mac_fp_wys (
|
||||
// inputs
|
||||
.accumulate(),
|
||||
.chainin_overflow(),
|
||||
.chainin_invalid(),
|
||||
.chainin_underflow(),
|
||||
.chainin_inexact(),
|
||||
.ax(dataa[i]),
|
||||
.ay(datab[i]),
|
||||
.az(),
|
||||
.clk({2'b00,clk}),
|
||||
.ena({2'b11,enable}),
|
||||
.aclr(2'b00),
|
||||
.chainin(),
|
||||
// outputs
|
||||
.overflow(),
|
||||
.invalid(),
|
||||
.underflow(),
|
||||
.inexact(),
|
||||
.chainout_overflow(),
|
||||
.chainout_invalid(),
|
||||
.chainout_underflow(),
|
||||
.chainout_inexact(),
|
||||
.resulta(result[i]),
|
||||
.chainout()
|
||||
);
|
||||
defparam mac_fp_wys.operation_mode = "sp_add";
|
||||
defparam mac_fp_wys.use_chainin = "false";
|
||||
defparam mac_fp_wys.adder_subtract = "false";
|
||||
defparam mac_fp_wys.ax_clock = "0";
|
||||
defparam mac_fp_wys.ay_clock = "0";
|
||||
defparam mac_fp_wys.az_clock = "none";
|
||||
defparam mac_fp_wys.output_clock = "0";
|
||||
defparam mac_fp_wys.accumulate_clock = "none";
|
||||
defparam mac_fp_wys.ax_chainin_pl_clock = "none";
|
||||
defparam mac_fp_wys.accum_pipeline_clock = "none";
|
||||
defparam mac_fp_wys.mult_pipeline_clock = "none";
|
||||
defparam mac_fp_wys.adder_input_clock = "0";
|
||||
defparam mac_fp_wys.accum_adder_clock = "none";
|
||||
end
|
||||
|
||||
VX_shift_register #(
|
||||
.DATAW(`ISTAG_BITS + 1),
|
||||
.DEPTH(1)
|
||||
) shift_reg (
|
||||
.clk(clk),
|
||||
.reset(reset),
|
||||
.enable(enable),
|
||||
.in({in_tag, in_valid}),
|
||||
.out({out_tag, out_valid})
|
||||
);
|
||||
|
||||
endmodule
|
49
hw/rtl/fp_cores/altera/VX_fp_div.v
Normal file
49
hw/rtl/fp_cores/altera/VX_fp_div.v
Normal file
|
@ -0,0 +1,49 @@
|
|||
`include "VX_define.vh"
|
||||
|
||||
module VX_fp_div (
|
||||
input wire clk,
|
||||
input wire reset,
|
||||
|
||||
output wire in_ready,
|
||||
input wire in_valid,
|
||||
|
||||
input wire [`ISTAG_BITS-1:0] in_tag,
|
||||
|
||||
input wire [`NUM_THREADS-1:0][31:0] dataa,
|
||||
input wire [`NUM_THREADS-1:0][31:0] datab,
|
||||
output wire [`NUM_THREADS-1:0][31:0] result,
|
||||
|
||||
output wire [`ISTAG_BITS-1:0] out_tag,
|
||||
|
||||
input wire out_ready,
|
||||
output wire out_valid
|
||||
);
|
||||
wire stall = ~out_ready && out_valid;
|
||||
wire enable = ~stall;
|
||||
assign in_ready = enable;
|
||||
|
||||
genvar i;
|
||||
|
||||
for (i = 0; i < `NUM_THREADS; i++) begin
|
||||
acl_fp_div fdiv (
|
||||
.clk (clk),
|
||||
.areset (1'b0),
|
||||
.en (enable),
|
||||
.a (dataa[i]),
|
||||
.b (datab[i]),
|
||||
.q (result[i])
|
||||
);
|
||||
end
|
||||
|
||||
VX_shift_register #(
|
||||
.DATAW(`ISTAG_BITS + 1),
|
||||
.DEPTH(`LATENCY_FDIV)
|
||||
) shift_reg (
|
||||
.clk(clk),
|
||||
.reset(reset),
|
||||
.enable(enable),
|
||||
.in({in_tag, in_valid}),
|
||||
.out({out_tag, out_valid})
|
||||
);
|
||||
|
||||
endmodule
|
47
hw/rtl/fp_cores/altera/VX_fp_ftoi.v
Normal file
47
hw/rtl/fp_cores/altera/VX_fp_ftoi.v
Normal file
|
@ -0,0 +1,47 @@
|
|||
`include "VX_define.vh"
|
||||
|
||||
module VX_fp_ftoi (
|
||||
input wire clk,
|
||||
input wire reset,
|
||||
|
||||
output wire in_ready,
|
||||
input wire in_valid,
|
||||
|
||||
input wire [`ISTAG_BITS-1:0] in_tag,
|
||||
|
||||
input wire [`NUM_THREADS-1:0][31:0] dataa,
|
||||
output wire [`NUM_THREADS-1:0][31:0] result,
|
||||
|
||||
output wire [`ISTAG_BITS-1:0] out_tag,
|
||||
|
||||
input wire out_ready,
|
||||
output wire out_valid
|
||||
);
|
||||
wire stall = ~out_ready && out_valid;
|
||||
wire enable = ~stall;
|
||||
assign in_ready = enable;
|
||||
|
||||
genvar i;
|
||||
|
||||
for (i = 0; i < `NUM_THREADS; i++) begin
|
||||
acl_fp_ftoi ftoi (
|
||||
.clk (clk),
|
||||
.areset (1'b0),
|
||||
.en (enable),
|
||||
.a (dataa[i]),
|
||||
.q (result[i])
|
||||
);
|
||||
end
|
||||
|
||||
VX_shift_register #(
|
||||
.DATAW(`ISTAG_BITS + 1),
|
||||
.DEPTH(`LATENCY_FTOI)
|
||||
) shift_reg (
|
||||
.clk(clk),
|
||||
.reset(reset),
|
||||
.enable(enable),
|
||||
.in({in_tag, in_valid}),
|
||||
.out({out_tag, out_valid})
|
||||
);
|
||||
|
||||
endmodule
|
47
hw/rtl/fp_cores/altera/VX_fp_ftou.v
Normal file
47
hw/rtl/fp_cores/altera/VX_fp_ftou.v
Normal file
|
@ -0,0 +1,47 @@
|
|||
`include "VX_define.vh"
|
||||
|
||||
module VX_fp_ftou (
|
||||
input wire clk,
|
||||
input wire reset,
|
||||
|
||||
output wire in_ready,
|
||||
input wire in_valid,
|
||||
|
||||
input wire [`ISTAG_BITS-1:0] in_tag,
|
||||
|
||||
input wire [`NUM_THREADS-1:0][31:0] dataa,
|
||||
output wire [`NUM_THREADS-1:0][31:0] result,
|
||||
|
||||
output wire [`ISTAG_BITS-1:0] out_tag,
|
||||
|
||||
input wire out_ready,
|
||||
output wire out_valid
|
||||
);
|
||||
wire stall = ~out_ready && out_valid;
|
||||
wire enable = ~stall;
|
||||
assign in_ready = enable;
|
||||
|
||||
genvar i;
|
||||
|
||||
for (i = 0; i < `NUM_THREADS; i++) begin
|
||||
acl_fp_ftou ftou (
|
||||
.clk (clk),
|
||||
.areset (1'b0),
|
||||
.en (enable),
|
||||
.a (dataa[i]),
|
||||
.q (result[i])
|
||||
);
|
||||
end
|
||||
|
||||
VX_shift_register #(
|
||||
.DATAW(`ISTAG_BITS + 1),
|
||||
.DEPTH(`LATENCY_FTOU)
|
||||
) shift_reg (
|
||||
.clk(clk),
|
||||
.reset(reset),
|
||||
.enable(enable),
|
||||
.in({in_tag, in_valid}),
|
||||
.out({out_tag, out_valid})
|
||||
);
|
||||
|
||||
endmodule
|
47
hw/rtl/fp_cores/altera/VX_fp_itof.v
Normal file
47
hw/rtl/fp_cores/altera/VX_fp_itof.v
Normal file
|
@ -0,0 +1,47 @@
|
|||
`include "VX_define.vh"
|
||||
|
||||
module VX_fp_itof (
|
||||
input wire clk,
|
||||
input wire reset,
|
||||
|
||||
output wire in_ready,
|
||||
input wire in_valid,
|
||||
|
||||
input wire [`ISTAG_BITS-1:0] in_tag,
|
||||
|
||||
input wire [`NUM_THREADS-1:0][31:0] dataa,
|
||||
output wire [`NUM_THREADS-1:0][31:0] result,
|
||||
|
||||
output wire [`ISTAG_BITS-1:0] out_tag,
|
||||
|
||||
input wire out_ready,
|
||||
output wire out_valid
|
||||
);
|
||||
wire stall = ~out_ready && out_valid;
|
||||
wire enable = ~stall;
|
||||
assign in_ready = enable;
|
||||
|
||||
genvar i;
|
||||
|
||||
for (i = 0; i < `NUM_THREADS; i++) begin
|
||||
acl_fp_itof itof (
|
||||
.clk (clk),
|
||||
.areset (1'b0),
|
||||
.en (enable),
|
||||
.a (dataa[i]),
|
||||
.q (result[i])
|
||||
);
|
||||
end
|
||||
|
||||
VX_shift_register #(
|
||||
.DATAW(`ISTAG_BITS + 1),
|
||||
.DEPTH(`LATENCY_ITOF)
|
||||
) shift_reg (
|
||||
.clk(clk),
|
||||
.reset(reset),
|
||||
.enable(enable),
|
||||
.in({in_tag, in_valid}),
|
||||
.out({out_tag, out_valid})
|
||||
);
|
||||
|
||||
endmodule
|
145
hw/rtl/fp_cores/altera/VX_fp_madd.v
Normal file
145
hw/rtl/fp_cores/altera/VX_fp_madd.v
Normal file
|
@ -0,0 +1,145 @@
|
|||
`include "VX_define.vh"
|
||||
|
||||
module VX_fp_madd (
|
||||
input wire clk,
|
||||
input wire reset,
|
||||
|
||||
output wire in_ready,
|
||||
input wire in_valid,
|
||||
|
||||
input wire [`ISTAG_BITS-1:0] in_tag,
|
||||
|
||||
input wire [`NUM_THREADS-1:0][31:0] dataa,
|
||||
input wire [`NUM_THREADS-1:0][31:0] datab,
|
||||
input wire [`NUM_THREADS-1:0][31:0] datac,
|
||||
output wire [`NUM_THREADS-1:0][31:0] result,
|
||||
|
||||
input wire negate,
|
||||
|
||||
output wire [`ISTAG_BITS-1:0] out_tag,
|
||||
|
||||
input wire out_ready,
|
||||
output wire out_valid
|
||||
);
|
||||
wire enable0, enable1;
|
||||
assign in_ready = enable0 && enable1;
|
||||
|
||||
wire [`NUM_THREADS-1:0][31:0] result_st0, result_st1;
|
||||
wire [`ISTAG_BITS-1:0] out_tag_st0, out_tag_st1;
|
||||
wire in_valid_st0, out_valid_st0, out_valid_st1;
|
||||
|
||||
genvar i;
|
||||
|
||||
for (i = 0; i < `NUM_THREADS; i++) begin
|
||||
twentynm_fp_mac mac_fp_wys0 (
|
||||
// inputs
|
||||
.accumulate(),
|
||||
.chainin_overflow(),
|
||||
.chainin_invalid(),
|
||||
.chainin_underflow(),
|
||||
.chainin_inexact(),
|
||||
.ax(datac[i]),
|
||||
.ay(datab[i]),
|
||||
.az(dataa[i]),
|
||||
.clk({2'b00,clk}),
|
||||
.ena({2'b11,enable0}),
|
||||
.aclr(2'b00),
|
||||
.chainin(),
|
||||
// outputs
|
||||
.overflow(),
|
||||
.invalid(),
|
||||
.underflow(),
|
||||
.inexact(),
|
||||
.chainout_overflow(),
|
||||
.chainout_invalid(),
|
||||
.chainout_underflow(),
|
||||
.chainout_inexact(),
|
||||
.resulta(result_st0[i]),
|
||||
.chainout()
|
||||
);
|
||||
defparam mac_fp_wys0.operation_mode = "sp_mult_add";
|
||||
defparam mac_fp_wys0.use_chainin = "false";
|
||||
defparam mac_fp_wys0.adder_subtract = "false";
|
||||
defparam mac_fp_wys0.ax_clock = "0";
|
||||
defparam mac_fp_wys0.ay_clock = "0";
|
||||
defparam mac_fp_wys0.az_clock = "0";
|
||||
defparam mac_fp_wys0.output_clock = "0";
|
||||
defparam mac_fp_wys0.accumulate_clock = "none";
|
||||
defparam mac_fp_wys0.ax_chainin_pl_clock = "0";
|
||||
defparam mac_fp_wys0.accum_pipeline_clock = "none";
|
||||
defparam mac_fp_wys0.mult_pipeline_clock = "0";
|
||||
defparam mac_fp_wys0.adder_input_clock = "0";
|
||||
defparam mac_fp_wys0.accum_adder_clock = "none";
|
||||
|
||||
twentynm_fp_mac mac_fp_wys1 (
|
||||
// inputs
|
||||
.accumulate(),
|
||||
.chainin_overflow(),
|
||||
.chainin_invalid(),
|
||||
.chainin_underflow(),
|
||||
.chainin_inexact(),
|
||||
.ax(32'h0),
|
||||
.ay(result_st0[i]),
|
||||
.az(),
|
||||
.clk({2'b00,clk}),
|
||||
.ena({2'b11,enable1}),
|
||||
.aclr(2'b00),
|
||||
.chainin(),
|
||||
// outputs
|
||||
.overflow(),
|
||||
.invalid(),
|
||||
.underflow(),
|
||||
.inexact(),
|
||||
.chainout_overflow(),
|
||||
.chainout_invalid(),
|
||||
.chainout_underflow(),
|
||||
.chainout_inexact(),
|
||||
.resulta(result_st1[i]),
|
||||
.chainout()
|
||||
);
|
||||
defparam mac_fp_wys1.operation_mode = "sp_add";
|
||||
defparam mac_fp_wys1.use_chainin = "false";
|
||||
defparam mac_fp_wys1.adder_subtract = "true";
|
||||
defparam mac_fp_wys1.ax_clock = "0";
|
||||
defparam mac_fp_wys1.ay_clock = "0";
|
||||
defparam mac_fp_wys1.az_clock = "none";
|
||||
defparam mac_fp_wys1.output_clock = "0";
|
||||
defparam mac_fp_wys1.accumulate_clock = "none";
|
||||
defparam mac_fp_wys1.ax_chainin_pl_clock = "none";
|
||||
defparam mac_fp_wys1.accum_pipeline_clock = "none";
|
||||
defparam mac_fp_wys1.mult_pipeline_clock = "none";
|
||||
defparam mac_fp_wys1.adder_input_clock = "0";
|
||||
defparam mac_fp_wys1.accum_adder_clock = "none";
|
||||
end
|
||||
|
||||
VX_shift_register #(
|
||||
.DATAW(`ISTAG_BITS + 1 + 1),
|
||||
.DEPTH(1)
|
||||
) shift_reg0 (
|
||||
.clk(clk),
|
||||
.reset(reset),
|
||||
.enable(enable0),
|
||||
.in({in_tag, (in_valid && ~negate), (in_valid && negate)}),
|
||||
.out({out_tag_st0, out_valid_st0, in_valid_st0})
|
||||
);
|
||||
|
||||
VX_shift_register #(
|
||||
.DATAW(`ISTAG_BITS + 1),
|
||||
.DEPTH(1)
|
||||
) shift_reg1 (
|
||||
.clk(clk),
|
||||
.reset(reset),
|
||||
.enable(enable1),
|
||||
.in({in_tag_st0, in_valid_st0}),
|
||||
.out({out_tag_st1, out_valid_st1})
|
||||
);
|
||||
|
||||
wire out_stall = ~out_ready && out_valid;
|
||||
assign enable0 = ~out_stall;
|
||||
assign enable1 = ~out_stall && ~(out_valid_st0 && out_valid_st1); // stall the negate stage if dual outputs
|
||||
|
||||
assign result = out_valid_st0 ? result_st0 : result_st1;
|
||||
assign out_tag = out_valid_st0 ? out_tag_st0 : out_tag_st1;
|
||||
assign out_valid = out_valid_st0 || out_valid_st1;
|
||||
|
||||
endmodule
|
145
hw/rtl/fp_cores/altera/VX_fp_msub.v
Normal file
145
hw/rtl/fp_cores/altera/VX_fp_msub.v
Normal file
|
@ -0,0 +1,145 @@
|
|||
`include "VX_define.vh"
|
||||
|
||||
module VX_fp_msub (
|
||||
input wire clk,
|
||||
input wire reset,
|
||||
|
||||
output wire in_ready,
|
||||
input wire in_valid,
|
||||
|
||||
input wire [`ISTAG_BITS-1:0] in_tag,
|
||||
|
||||
input wire [`NUM_THREADS-1:0][31:0] dataa,
|
||||
input wire [`NUM_THREADS-1:0][31:0] datab,
|
||||
input wire [`NUM_THREADS-1:0][31:0] datac,
|
||||
output wire [`NUM_THREADS-1:0][31:0] result,
|
||||
|
||||
input wire negate,
|
||||
|
||||
output wire [`ISTAG_BITS-1:0] out_tag,
|
||||
|
||||
input wire out_ready,
|
||||
output wire out_valid
|
||||
);
|
||||
wire enable0, enable1;
|
||||
assign in_ready = enable0 && enable1;
|
||||
|
||||
wire [`NUM_THREADS-1:0][31:0] result_st0, result_st1;
|
||||
wire [`ISTAG_BITS-1:0] out_tag_st0, out_tag_st1;
|
||||
wire in_valid_st0, out_valid_st0, out_valid_st1;
|
||||
|
||||
genvar i;
|
||||
|
||||
for (i = 0; i < `NUM_THREADS; i++) begin
|
||||
twentynm_fp_mac mac_fp_wys0 (
|
||||
// inputs
|
||||
.accumulate(),
|
||||
.chainin_overflow(),
|
||||
.chainin_invalid(),
|
||||
.chainin_underflow(),
|
||||
.chainin_inexact(),
|
||||
.ax(datac[i]),
|
||||
.ay(datab[i]),
|
||||
.az(dataa[i]),
|
||||
.clk({2'b00,clk}),
|
||||
.ena({2'b11,enable0}),
|
||||
.aclr(2'b00),
|
||||
.chainin(),
|
||||
// outputs
|
||||
.overflow(),
|
||||
.invalid(),
|
||||
.underflow(),
|
||||
.inexact(),
|
||||
.chainout_overflow(),
|
||||
.chainout_invalid(),
|
||||
.chainout_underflow(),
|
||||
.chainout_inexact(),
|
||||
.resulta(result_st0[i]),
|
||||
.chainout()
|
||||
);
|
||||
defparam mac_fp_wys0.operation_mode = "sp_mult_add";
|
||||
defparam mac_fp_wys0.use_chainin = "false";
|
||||
defparam mac_fp_wys0.adder_subtract = "true";
|
||||
defparam mac_fp_wys0.ax_clock = "0";
|
||||
defparam mac_fp_wys0.ay_clock = "0";
|
||||
defparam mac_fp_wys0.az_clock = "0";
|
||||
defparam mac_fp_wys0.output_clock = "0";
|
||||
defparam mac_fp_wys0.accumulate_clock = "none";
|
||||
defparam mac_fp_wys0.ax_chainin_pl_clock = "0";
|
||||
defparam mac_fp_wys0.accum_pipeline_clock = "none";
|
||||
defparam mac_fp_wys0.mult_pipeline_clock = "0";
|
||||
defparam mac_fp_wys0.adder_input_clock = "0";
|
||||
defparam mac_fp_wys0.accum_adder_clock = "none";
|
||||
|
||||
twentynm_fp_mac mac_fp_wys1 (
|
||||
// inputs
|
||||
.accumulate(),
|
||||
.chainin_overflow(),
|
||||
.chainin_invalid(),
|
||||
.chainin_underflow(),
|
||||
.chainin_inexact(),
|
||||
.ax(32'h0),
|
||||
.ay(result_st0[i]),
|
||||
.az(),
|
||||
.clk({2'b00,clk}),
|
||||
.ena({2'b11,enable1}),
|
||||
.aclr(2'b00),
|
||||
.chainin(),
|
||||
// outputs
|
||||
.overflow(),
|
||||
.invalid(),
|
||||
.underflow(),
|
||||
.inexact(),
|
||||
.chainout_overflow(),
|
||||
.chainout_invalid(),
|
||||
.chainout_underflow(),
|
||||
.chainout_inexact(),
|
||||
.resulta(result_st1[i]),
|
||||
.chainout()
|
||||
);
|
||||
defparam mac_fp_wys1.operation_mode = "sp_add";
|
||||
defparam mac_fp_wys1.use_chainin = "false";
|
||||
defparam mac_fp_wys1.adder_subtract = "true";
|
||||
defparam mac_fp_wys1.ax_clock = "0";
|
||||
defparam mac_fp_wys1.ay_clock = "0";
|
||||
defparam mac_fp_wys1.az_clock = "none";
|
||||
defparam mac_fp_wys1.output_clock = "0";
|
||||
defparam mac_fp_wys1.accumulate_clock = "none";
|
||||
defparam mac_fp_wys1.ax_chainin_pl_clock = "none";
|
||||
defparam mac_fp_wys1.accum_pipeline_clock = "none";
|
||||
defparam mac_fp_wys1.mult_pipeline_clock = "none";
|
||||
defparam mac_fp_wys1.adder_input_clock = "0";
|
||||
defparam mac_fp_wys1.accum_adder_clock = "none";
|
||||
end
|
||||
|
||||
VX_shift_register #(
|
||||
.DATAW(`ISTAG_BITS + 1 + 1),
|
||||
.DEPTH(1)
|
||||
) shift_reg0 (
|
||||
.clk(clk),
|
||||
.reset(reset),
|
||||
.enable(enable0),
|
||||
.in({in_tag, (in_valid && ~negate), (in_valid && negate)}),
|
||||
.out({out_tag_st0, out_valid_st0, in_valid_st0})
|
||||
);
|
||||
|
||||
VX_shift_register #(
|
||||
.DATAW(`ISTAG_BITS + 1),
|
||||
.DEPTH(1)
|
||||
) shift_reg1 (
|
||||
.clk(clk),
|
||||
.reset(reset),
|
||||
.enable(enable1),
|
||||
.in({in_tag_st0, in_valid_st0}),
|
||||
.out({out_tag_st1, out_valid_st1})
|
||||
);
|
||||
|
||||
wire out_stall = ~out_ready && out_valid;
|
||||
assign enable0 = ~out_stall;
|
||||
assign enable1 = ~out_stall && ~(out_valid_st0 && out_valid_st1); // stall the negate stage if dual outputs
|
||||
|
||||
assign result = out_valid_st0 ? result_st0 : result_st1;
|
||||
assign out_tag = out_valid_st0 ? out_tag_st0 : out_tag_st1;
|
||||
assign out_valid = out_valid_st0 || out_valid_st1;
|
||||
|
||||
endmodule
|
80
hw/rtl/fp_cores/altera/VX_fp_mul.v
Normal file
80
hw/rtl/fp_cores/altera/VX_fp_mul.v
Normal file
|
@ -0,0 +1,80 @@
|
|||
`include "VX_define.vh"
|
||||
|
||||
module VX_fp_mul (
|
||||
input wire clk,
|
||||
input wire reset,
|
||||
|
||||
output wire in_ready,
|
||||
input wire in_valid,
|
||||
|
||||
input wire [`ISTAG_BITS-1:0] in_tag,
|
||||
|
||||
input wire [`NUM_THREADS-1:0][31:0] dataa,
|
||||
input wire [`NUM_THREADS-1:0][31:0] datab,
|
||||
output wire [`NUM_THREADS-1:0][31:0] result,
|
||||
|
||||
output wire [`ISTAG_BITS-1:0] out_tag,
|
||||
|
||||
input wire out_ready,
|
||||
output wire out_valid
|
||||
);
|
||||
wire stall = ~out_ready && out_valid;
|
||||
wire enable = ~stall;
|
||||
assign in_ready = enable;
|
||||
|
||||
genvar i;
|
||||
|
||||
for (i = 0; i < `NUM_THREADS; i++) begin
|
||||
twentynm_fp_mac mac_fp_wys (
|
||||
// inputs
|
||||
.accumulate(),
|
||||
.chainin_overflow(),
|
||||
.chainin_invalid(),
|
||||
.chainin_underflow(),
|
||||
.chainin_inexact(),
|
||||
.ax(),
|
||||
.ay(datab[i]),
|
||||
.az(dataa[i]),
|
||||
.clk({2'b00,clk}),
|
||||
.ena({2'b11,enable}),
|
||||
.aclr(2'b00),
|
||||
.chainin(),
|
||||
// outputs
|
||||
.overflow(),
|
||||
.invalid(),
|
||||
.underflow(),
|
||||
.inexact(),
|
||||
.chainout_overflow(),
|
||||
.chainout_invalid(),
|
||||
.chainout_underflow(),
|
||||
.chainout_inexact(),
|
||||
.resulta(result[i]),
|
||||
.chainout()
|
||||
);
|
||||
defparam mac_fp_wys.operation_mode = "sp_mult";
|
||||
defparam mac_fp_wys.use_chainin = "false";
|
||||
defparam mac_fp_wys.adder_subtract = "false";
|
||||
defparam mac_fp_wys.ax_clock = "none";
|
||||
defparam mac_fp_wys.ay_clock = "0";
|
||||
defparam mac_fp_wys.az_clock = "0";
|
||||
defparam mac_fp_wys.output_clock = "0";
|
||||
defparam mac_fp_wys.accumulate_clock = "none";
|
||||
defparam mac_fp_wys.ax_chainin_pl_clock = "none";
|
||||
defparam mac_fp_wys.accum_pipeline_clock = "none";
|
||||
defparam mac_fp_wys.mult_pipeline_clock = "0";
|
||||
defparam mac_fp_wys.adder_input_clock = "none";
|
||||
defparam mac_fp_wys.accum_adder_clock = "none";
|
||||
end
|
||||
|
||||
VX_shift_register #(
|
||||
.DATAW(`ISTAG_BITS + 1),
|
||||
.DEPTH(1)
|
||||
) shift_reg (
|
||||
.clk(clk),
|
||||
.reset(reset),
|
||||
.enable(enable),
|
||||
.in({in_tag, in_valid}),
|
||||
.out({out_tag, out_valid})
|
||||
);
|
||||
|
||||
endmodule
|
47
hw/rtl/fp_cores/altera/VX_fp_sqrt.v
Normal file
47
hw/rtl/fp_cores/altera/VX_fp_sqrt.v
Normal file
|
@ -0,0 +1,47 @@
|
|||
`include "VX_define.vh"
|
||||
|
||||
module VX_fp_sqrt (
|
||||
input wire clk,
|
||||
input wire reset,
|
||||
|
||||
output wire in_ready,
|
||||
input wire in_valid,
|
||||
|
||||
input wire [`ISTAG_BITS-1:0] in_tag,
|
||||
|
||||
input wire [`NUM_THREADS-1:0][31:0] dataa,
|
||||
output wire [`NUM_THREADS-1:0][31:0] result,
|
||||
|
||||
output wire [`ISTAG_BITS-1:0] out_tag,
|
||||
|
||||
input wire out_ready,
|
||||
output wire out_valid
|
||||
);
|
||||
wire stall = ~out_ready && out_valid;
|
||||
wire enable = ~stall;
|
||||
assign in_ready = enable;
|
||||
|
||||
genvar i;
|
||||
|
||||
for (i = 0; i < `NUM_THREADS; i++) begin
|
||||
acl_fp_sqrt fsqrt (
|
||||
.clk (clk),
|
||||
.areset (1'b0),
|
||||
.en (enable),
|
||||
.a (dataa[i]),
|
||||
.q (result[i])
|
||||
);
|
||||
end
|
||||
|
||||
VX_shift_register #(
|
||||
.DATAW(`ISTAG_BITS + 1),
|
||||
.DEPTH(`LATENCY_FSQRT)
|
||||
) shift_reg (
|
||||
.clk(clk),
|
||||
.reset(reset),
|
||||
.enable(enable),
|
||||
.in({in_tag, in_valid}),
|
||||
.out({out_tag, out_valid})
|
||||
);
|
||||
|
||||
endmodule
|
80
hw/rtl/fp_cores/altera/VX_fp_sub.v
Normal file
80
hw/rtl/fp_cores/altera/VX_fp_sub.v
Normal file
|
@ -0,0 +1,80 @@
|
|||
`include "VX_define.vh"
|
||||
|
||||
module VX_fp_sub (
|
||||
input wire clk,
|
||||
input wire reset,
|
||||
|
||||
output wire in_ready,
|
||||
input wire in_valid,
|
||||
|
||||
input wire [`ISTAG_BITS-1:0] in_tag,
|
||||
|
||||
input wire [`NUM_THREADS-1:0][31:0] dataa,
|
||||
input wire [`NUM_THREADS-1:0][31:0] datab,
|
||||
output wire [`NUM_THREADS-1:0][31:0] result,
|
||||
|
||||
output wire [`ISTAG_BITS-1:0] out_tag,
|
||||
|
||||
input wire out_ready,
|
||||
output wire out_valid
|
||||
);
|
||||
wire stall = ~out_ready && out_valid;
|
||||
wire enable = ~stall;
|
||||
assign in_ready = enable;
|
||||
|
||||
genvar i;
|
||||
|
||||
for (i = 0; i < `NUM_THREADS; i++) begin
|
||||
twentynm_fp_mac mac_fp_wys (
|
||||
// inputs
|
||||
.accumulate(),
|
||||
.chainin_overflow(),
|
||||
.chainin_invalid(),
|
||||
.chainin_underflow(),
|
||||
.chainin_inexact(),
|
||||
.ax(dataa[i]),
|
||||
.ay(datab[i]),
|
||||
.az(),
|
||||
.clk({2'b00,clk}),
|
||||
.ena({2'b11,enable}),
|
||||
.aclr(2'b00),
|
||||
.chainin(),
|
||||
// outputs
|
||||
.overflow(),
|
||||
.invalid(),
|
||||
.underflow(),
|
||||
.inexact(),
|
||||
.chainout_overflow(),
|
||||
.chainout_invalid(),
|
||||
.chainout_underflow(),
|
||||
.chainout_inexact(),
|
||||
.resulta(result[i]),
|
||||
.chainout()
|
||||
);
|
||||
defparam mac_fp_wys.operation_mode = "sp_add";
|
||||
defparam mac_fp_wys.use_chainin = "false";
|
||||
defparam mac_fp_wys.adder_subtract = "true";
|
||||
defparam mac_fp_wys.ax_clock = "0";
|
||||
defparam mac_fp_wys.ay_clock = "0";
|
||||
defparam mac_fp_wys.az_clock = "none";
|
||||
defparam mac_fp_wys.output_clock = "0";
|
||||
defparam mac_fp_wys.accumulate_clock = "none";
|
||||
defparam mac_fp_wys.ax_chainin_pl_clock = "none";
|
||||
defparam mac_fp_wys.accum_pipeline_clock = "none";
|
||||
defparam mac_fp_wys.mult_pipeline_clock = "none";
|
||||
defparam mac_fp_wys.adder_input_clock = "0";
|
||||
defparam mac_fp_wys.accum_adder_clock = "none";
|
||||
end
|
||||
|
||||
VX_shift_register #(
|
||||
.DATAW(`ISTAG_BITS + 1),
|
||||
.DEPTH(1)
|
||||
) shift_reg (
|
||||
.clk(clk),
|
||||
.reset(reset),
|
||||
.enable(enable),
|
||||
.in({in_tag, in_valid}),
|
||||
.out({out_tag, out_valid})
|
||||
);
|
||||
|
||||
endmodule
|
47
hw/rtl/fp_cores/altera/VX_fp_utof.v
Normal file
47
hw/rtl/fp_cores/altera/VX_fp_utof.v
Normal file
|
@ -0,0 +1,47 @@
|
|||
`include "VX_define.vh"
|
||||
|
||||
module VX_fp_utof (
|
||||
input wire clk,
|
||||
input wire reset,
|
||||
|
||||
output wire in_ready,
|
||||
input wire in_valid,
|
||||
|
||||
input wire [`ISTAG_BITS-1:0] in_tag,
|
||||
|
||||
input wire [`NUM_THREADS-1:0][31:0] dataa,
|
||||
output wire [`NUM_THREADS-1:0][31:0] result,
|
||||
|
||||
output wire [`ISTAG_BITS-1:0] out_tag,
|
||||
|
||||
input wire out_ready,
|
||||
output wire out_valid
|
||||
);
|
||||
wire stall = ~out_ready && out_valid;
|
||||
wire enable = ~stall;
|
||||
assign in_ready = enable;
|
||||
|
||||
genvar i;
|
||||
|
||||
for (i = 0; i < `NUM_THREADS; i++) begin
|
||||
acl_fp_utof utof (
|
||||
.clk (clk),
|
||||
.areset (1'b0),
|
||||
.en (enable),
|
||||
.a (dataa[i]),
|
||||
.q (result[i])
|
||||
);
|
||||
end
|
||||
|
||||
VX_shift_register #(
|
||||
.DATAW(`ISTAG_BITS + 1),
|
||||
.DEPTH(`LATENCY_UTOF)
|
||||
) shift_reg (
|
||||
.clk(clk),
|
||||
.reset(reset),
|
||||
.enable(enable),
|
||||
.in({in_tag, in_valid}),
|
||||
.out({out_tag, out_valid})
|
||||
);
|
||||
|
||||
endmodule
|
|
@ -1,67 +0,0 @@
|
|||
// (C) 1992-2016 Intel Corporation.
|
||||
// Intel, the Intel logo, Intel, MegaCore, NIOS II, Quartus and TalkBack words
|
||||
// and logos are trademarks of Intel Corporation or its subsidiaries in the U.S.
|
||||
// and/or other countries. Other marks and brands may be claimed as the property
|
||||
// of others. See Trademarks on intel.com for full list of Intel trademarks or
|
||||
// the Trademarks & Brands Names Database (if Intel) or See www.Intel.com/legal (if Altera)
|
||||
// Your use of Intel Corporation's design tools, logic functions and other
|
||||
// software and tools, and its AMPP partner logic functions, and any output
|
||||
// files any of the foregoing (including device programming or simulation
|
||||
// files), and any associated documentation or information are expressly subject
|
||||
// to the terms and conditions of the Altera Program License Subscription
|
||||
// Agreement, Intel MegaCore Function License Agreement, or other applicable
|
||||
// license agreement, including, without limitation, that your use is for the
|
||||
// sole purpose of programming logic devices manufactured by Intel and sold by
|
||||
// Intel or its authorized distributors. Please refer to the applicable
|
||||
// agreement for further details.
|
||||
|
||||
module acl_fp_add(dataa, datab, clock, enable, result);
|
||||
|
||||
input [31:0] dataa;
|
||||
input [31:0] datab;
|
||||
input clock, enable;
|
||||
|
||||
output [31:0] result;
|
||||
|
||||
// FP MAC wysiwyg
|
||||
twentynm_fp_mac mac_fp_wys (
|
||||
// inputs
|
||||
.accumulate(),
|
||||
.chainin_overflow(),
|
||||
.chainin_invalid(),
|
||||
.chainin_underflow(),
|
||||
.chainin_inexact(),
|
||||
.ax(dataa),
|
||||
.ay(datab),
|
||||
.az(),
|
||||
.clk({2'b00,clock}),
|
||||
.ena({2'b11,enable}),
|
||||
.aclr(2'b00),
|
||||
.chainin(),
|
||||
// outputs
|
||||
.overflow(),
|
||||
.invalid(),
|
||||
.underflow(),
|
||||
.inexact(),
|
||||
.chainout_overflow(),
|
||||
.chainout_invalid(),
|
||||
.chainout_underflow(),
|
||||
.chainout_inexact(),
|
||||
.resulta(result),
|
||||
.chainout()
|
||||
);
|
||||
defparam mac_fp_wys.operation_mode = "sp_add";
|
||||
defparam mac_fp_wys.use_chainin = "false";
|
||||
defparam mac_fp_wys.adder_subtract = "false";
|
||||
defparam mac_fp_wys.ax_clock = "0";
|
||||
defparam mac_fp_wys.ay_clock = "0";
|
||||
defparam mac_fp_wys.az_clock = "none";
|
||||
defparam mac_fp_wys.output_clock = "0";
|
||||
defparam mac_fp_wys.accumulate_clock = "none";
|
||||
defparam mac_fp_wys.ax_chainin_pl_clock = "none";
|
||||
defparam mac_fp_wys.accum_pipeline_clock = "none";
|
||||
defparam mac_fp_wys.mult_pipeline_clock = "none";
|
||||
defparam mac_fp_wys.adder_input_clock = "0";
|
||||
defparam mac_fp_wys.accum_adder_clock = "none";
|
||||
|
||||
endmodule
|
1605
hw/rtl/fp_cores/altera/acl_fp_div.sv
Normal file
1605
hw/rtl/fp_cores/altera/acl_fp_div.sv
Normal file
File diff suppressed because it is too large
Load diff
|
@ -0,0 +1,514 @@
|
|||
:020000040000FA
|
||||
:0400000020000004D8
|
||||
:040001001FF00800E4
|
||||
:040002001FE01FE4F8
|
||||
:040003001FD047992A
|
||||
:040004001FC07F0694
|
||||
:040005001FB0C6154D
|
||||
:040006001FA11CAE6C
|
||||
:040007001F9182BA09
|
||||
:040008001F81F82339
|
||||
:040009001F727CD214
|
||||
:04000A001F6310B1AF
|
||||
:04000B001F53B3A824
|
||||
:04000C001F4465A286
|
||||
:04000D001F352689EC
|
||||
:04000E001F25F6486C
|
||||
:04000F001F16D4C81C
|
||||
:040010001F07C1F411
|
||||
:040011001EF8BDB761
|
||||
:040012001EE9C7FC20
|
||||
:040013001EDAE0AE63
|
||||
:040014001ECC07B740
|
||||
:040015001EBD3D03CC
|
||||
:040016001EAE807F1B
|
||||
:040017001E9FD21442
|
||||
:040018001E9131B054
|
||||
:040019001E829F3E66
|
||||
:04001A001E741AA98D
|
||||
:04001B001E65A3E0DB
|
||||
:04001C001E573ACD64
|
||||
:04001D001E48DF5D3D
|
||||
:04001E001E3A917E77
|
||||
:04001F001E2C511B27
|
||||
:040020001E1E1E2260
|
||||
:040021001E0FF88036
|
||||
:040022001E01E022B9
|
||||
:040023001DF3D4F500
|
||||
:040024001DE5D6E818
|
||||
:040025001DD7E5E717
|
||||
:040026001DCA01E10D
|
||||
:040027001DBC2AC210
|
||||
:040028001DAE607B2E
|
||||
:040029001DA0A2F77D
|
||||
:04002A001D92F2270A
|
||||
:04002B001D854DF8EA
|
||||
:04002C001D77B6592D
|
||||
:04002D001D6A2B38E5
|
||||
:04002E001D5CAC8425
|
||||
:04002F001D4F3A2DFA
|
||||
:040030001D41D42179
|
||||
:040031001D347A50B0
|
||||
:040032001D272CA8B2
|
||||
:040033001D19EB198F
|
||||
:040034001D0CB59357
|
||||
:040035001CFF8C061A
|
||||
:040036001CF26E60EA
|
||||
:040037001CE55C93D5
|
||||
:040038001CD8568DED
|
||||
:040039001CCB5C3F41
|
||||
:04003A001CBE6D9AE1
|
||||
:04003B001CB18A8DDD
|
||||
:04003C001CA4B30944
|
||||
:04003D001C97E6FF27
|
||||
:04003E001C8B265F92
|
||||
:04003F001C7E711A98
|
||||
:040040001C71C72048
|
||||
:040041001C652864AE
|
||||
:040042001C5894D5DD
|
||||
:040043001C4C0C65E0
|
||||
:040044001C3F8F06C8
|
||||
:040045001C331CA8A4
|
||||
:040046001C26B53D82
|
||||
:040047001C1A58B770
|
||||
:040048001C0E07077C
|
||||
:040049001C01C020B6
|
||||
:04004A001BF583F22D
|
||||
:04004B001BE95271EA
|
||||
:04004C001BDD2B8EFF
|
||||
:04004D001BD10F3A7A
|
||||
:04004E001BC4FD6969
|
||||
:04004F001BB8F60DD7
|
||||
:040050001BACF919D3
|
||||
:040051001BA1067E6B
|
||||
:040052001B951E2FAD
|
||||
:040053001B89401FA6
|
||||
:040054001B7D6C4262
|
||||
:040055001B71A289F0
|
||||
:040056001B65E2E85C
|
||||
:040057001B5A2D51B2
|
||||
:040058001B4E81B901
|
||||
:040059001B42E01254
|
||||
:04005A001B37484FB9
|
||||
:04005B001B2BBA643D
|
||||
:04005C001B203644EB
|
||||
:04005D001B14BBE4D1
|
||||
:04005E001B094B36F9
|
||||
:04005F001AFDE42E74
|
||||
:040060001AF286C149
|
||||
:040061001AE732E187
|
||||
:040062001ADBE88439
|
||||
:040063001AD0A79C6C
|
||||
:040064001AC5701F2A
|
||||
:040065001ABA420081
|
||||
:040066001AAF1D337D
|
||||
:040067001AA401AE28
|
||||
:040068001A98EF648F
|
||||
:040069001A8DE64ABC
|
||||
:04006A001A82E655BB
|
||||
:04006B001A77EF7998
|
||||
:04006C001A6D01AB5D
|
||||
:04006D001A621CDF18
|
||||
:04006E001A57410BD1
|
||||
:04006F001A4C6E2495
|
||||
:040070001A41A41E6F
|
||||
:040071001A36E2EF6A
|
||||
:040072001A2C2A8C8E
|
||||
:040073001A217AE9EB
|
||||
:040074001A16D3FD88
|
||||
:040075001A0C35BD6F
|
||||
:040076001A01A01EAD
|
||||
:0400770019F713154D
|
||||
:0400780019EC8E9958
|
||||
:0400790019E2129ED8
|
||||
:04007A0019D79F1BD8
|
||||
:04007B0019CD340661
|
||||
:04007C0019C2D15381
|
||||
:04007D0019B876F93F
|
||||
:04007E0019AE24EEA5
|
||||
:04007F0019A3DB28BE
|
||||
:040080001999999E93
|
||||
:04008100198F60442F
|
||||
:0400820019852F129B
|
||||
:04008300197B05FDE3
|
||||
:040084001970E4FC0F
|
||||
:040085001966CC0626
|
||||
:04008600195CBB1036
|
||||
:040087001952B21147
|
||||
:040088001948B10161
|
||||
:04008900193EB7D590
|
||||
:04008A001934C684DB
|
||||
:04008B00192ADD044D
|
||||
:04008C001920FB4EEE
|
||||
:04008D0019172157C7
|
||||
:04008E00190D4F16E3
|
||||
:04008F00190384834A
|
||||
:0400900018F9C19406
|
||||
:0400910018F006401D
|
||||
:0400920018E6527F9B
|
||||
:0400930018DCA64887
|
||||
:0400940018D30191EB
|
||||
:0400950018C96453CF
|
||||
:0400960018BFCE843D
|
||||
:0400970018B6401D3A
|
||||
:0400980018ACB913D4
|
||||
:0400990018A339600F
|
||||
:04009A001899C0FAF7
|
||||
:04009B0018904FD991
|
||||
:04009C001886E5F5E8
|
||||
:04009D00187D834502
|
||||
:04009E00187427C1EA
|
||||
:04009F00186AD361A7
|
||||
:0400A0001861861C41
|
||||
:0400A10018583FECC0
|
||||
:0400A200184F00C62D
|
||||
:0400A3001845C8A58F
|
||||
:0400A400183C977FEE
|
||||
:0400A50018336D4C53
|
||||
:0400A600182A4A05C5
|
||||
:0400A70018212DA34C
|
||||
:0400A8001818181CF0
|
||||
:0400A900180F096AB9
|
||||
:0400AA0018060184AF
|
||||
:0400AB0017FD0064D9
|
||||
:0400AC0017F406013E
|
||||
:0400AD0017EB1254E7
|
||||
:0400AE0017E22555DB
|
||||
:0400AF0017D93EFE21
|
||||
:0400B00017D05F45C1
|
||||
:0400B10017C78625C2
|
||||
:0400B20017BEB3962C
|
||||
:0400B30017B5E79006
|
||||
:0400B40017AD220D55
|
||||
:0400B50017A4630425
|
||||
:0400B600179BAA707A
|
||||
:0400B7001792F8485C
|
||||
:0400B800178A4C85D2
|
||||
:0400B9001781A722E2
|
||||
:0400BA001779081694
|
||||
:0400BB0017706F5AF1
|
||||
:0400BC001767DCE8FE
|
||||
:0400BD00175F50B9C0
|
||||
:0400BE001756CAC641
|
||||
:0400BF00174E4B0885
|
||||
:0400C0001745D17897
|
||||
:0400C100173D5E1079
|
||||
:0400C2001734F0C936
|
||||
:0400C300172C899CD1
|
||||
:0400C4001724288352
|
||||
:0400C500171BCD77C1
|
||||
:0400C6001713787222
|
||||
:0400C700170B296C7E
|
||||
:0400C8001702E060DB
|
||||
:0400C90016FA9D473F
|
||||
:0400CA0016F2601BAF
|
||||
:0400CB0016EA28D534
|
||||
:0400CC0016E1F76FD3
|
||||
:0400CD0016D9CBE392
|
||||
:0400CE0016D1A62A77
|
||||
:0400CF0016C9863F89
|
||||
:0400D00016C16C1BCE
|
||||
:0400D10016B957B74E
|
||||
:0400D20016B1490F0B
|
||||
:0400D30016A9401B0F
|
||||
:0400D40016A13CD560
|
||||
:0400D50016993F3900
|
||||
:0400D6001691473FF9
|
||||
:0400D700168954E151
|
||||
:0400D8001681681A0B
|
||||
:0400D900167980E52F
|
||||
:0400DA0016719F3AC2
|
||||
:0400DB001669C314CB
|
||||
:0400DC001661EC6E4F
|
||||
:0400DD00165A1B4252
|
||||
:0400DE0016524F89DE
|
||||
:0400DF00164A893FF5
|
||||
:0400E0001642C85D9F
|
||||
:0400E100163B0CDEE0
|
||||
:0400E200163356BDBE
|
||||
:0400E300162BA5F340
|
||||
:0400E4001623FA7B6A
|
||||
:0400E500161C545041
|
||||
:0400E6001614B36CCD
|
||||
:0400E700160D17CA11
|
||||
:0400E8001605816414
|
||||
:0400E90015FDF035DC
|
||||
:0400EA0015F664386B
|
||||
:0400EB0015EEDD67CA
|
||||
:0400EC0015E75BBDFC
|
||||
:0400ED0015DFDF3408
|
||||
:0400EE0015D867C8F2
|
||||
:0400EF0015D0F573C0
|
||||
:0400F00015C9883076
|
||||
:0400F10015C21FF91C
|
||||
:0400F20015BABCCAB5
|
||||
:0400F30015B35E9E45
|
||||
:0400F40015AC056FD3
|
||||
:0400F50015A4B13865
|
||||
:0400F600159D61F5FE
|
||||
:0400F700159617A0A3
|
||||
:0400F800158ED2345B
|
||||
:0400F900158791AD29
|
||||
:0400FA001580560512
|
||||
:0400FB0015791F381C
|
||||
:0400FC001571ED404D
|
||||
:0400FD00156AC019A7
|
||||
:0400FE00156397BE31
|
||||
:0400FF00155C742BED
|
||||
:0401000015555559E3
|
||||
:04010100154E3B4616
|
||||
:04010200154725EB8D
|
||||
:04010300154015444A
|
||||
:040104001539094D53
|
||||
:0401050015320201AC
|
||||
:04010600152AFF5B5C
|
||||
:040107001524015664
|
||||
:04010800151D07EFCB
|
||||
:040109001516132094
|
||||
:04010A00150F22E5C6
|
||||
:04010B001508373A62
|
||||
:04010C001501501970
|
||||
:04010D0014FA6D7FF4
|
||||
:04010E0014F38F67F0
|
||||
:04010F0014ECB5CC6B
|
||||
:0401100014E5E0AB67
|
||||
:0401110014DF0FFFE9
|
||||
:0401120014D843C3F7
|
||||
:0401130014D17BF395
|
||||
:0401140014CAB88BC6
|
||||
:0401150014C3F9878F
|
||||
:0401160014BD3EE2F4
|
||||
:0401170014B68898FA
|
||||
:0401180014AFD6A4A6
|
||||
:0401190014A92904F8
|
||||
:04011A0014A27FB1FB
|
||||
:04011B00149BDAA9AE
|
||||
:04011C00149539E815
|
||||
:04011D00148E9D6837
|
||||
:04011E001488052616
|
||||
:04011F001481711EB8
|
||||
:04012000147AE14C20
|
||||
:04012100147455AB52
|
||||
:04012200146DCE3852
|
||||
:0401230014674AEF24
|
||||
:040124001460CBCCCC
|
||||
:04012500145A50CA4E
|
||||
:040126001453D9E7AE
|
||||
:04012700144D671DEF
|
||||
:040128001446F86918
|
||||
:0401290014408DC829
|
||||
:04012A00143A273527
|
||||
:04012B001433C4AC19
|
||||
:04012C00142D662AFE
|
||||
:04012D0014270BABDD
|
||||
:04012E001420B52ABA
|
||||
:04012F00141A62A597
|
||||
:040130001414141877
|
||||
:04013100140DC97E62
|
||||
:04013200140782D557
|
||||
:04013300140140185B
|
||||
:0401340013FB014474
|
||||
:0401350013F4C654A5
|
||||
:0401360013EE8F47EE
|
||||
:0401370013E85C1756
|
||||
:0401380013E22CC1E1
|
||||
:0401390013DC014290
|
||||
:04013A0013D5D9966A
|
||||
:04013B0013CFB5B970
|
||||
:04013C0013C995A8A6
|
||||
:04013D0013C379600F
|
||||
:04013E0013BD60DDB0
|
||||
:04013F0013B74C1B8B
|
||||
:0401400013B13B18A4
|
||||
:0401410013AB2DCF00
|
||||
:0401420013A5243CA1
|
||||
:04014300139F1E5E8A
|
||||
:0401440013991C30BF
|
||||
:0401450013931DAF44
|
||||
:04014600138D22D71C
|
||||
:0401470013872BA649
|
||||
:0401480013813817D0
|
||||
:04014900137B4829B3
|
||||
:04014A0013755BD6F8
|
||||
:04014B00136F731C9F
|
||||
:04014C0013698DF8AE
|
||||
:04014D001363AC6626
|
||||
:04014E00135DCE640B
|
||||
:04014F001357F3ED62
|
||||
:0401500013521CFF2B
|
||||
:04015100134C49976B
|
||||
:04015200134679B126
|
||||
:040153001340AD4A5E
|
||||
:04015400133AE45F17
|
||||
:0401550013351EED53
|
||||
:04015600132F5CF116
|
||||
:0401570013299E6862
|
||||
:040158001323E34E3C
|
||||
:04015900131E2BA1A5
|
||||
:04015A001318775DA2
|
||||
:04015B001312C67F36
|
||||
:04015C00130D190561
|
||||
:04015D0013076EEB2B
|
||||
:04015E001301C82F92
|
||||
:04015F0012FC24CD9D
|
||||
:0401600012F684C24D
|
||||
:0401610012F0E80BA5
|
||||
:0401620012EB4EA6A8
|
||||
:0401630012E5B88F5A
|
||||
:0401640012E025C4BC
|
||||
:0401650012DA9642D2
|
||||
:0401660012D50A059F
|
||||
:0401670012CF810B27
|
||||
:0401680012C9FB516C
|
||||
:0401690012C478D56F
|
||||
:04016A0012BEF99236
|
||||
:04016B0012B97D87C1
|
||||
:04016C0012B404B114
|
||||
:04016D0012AE8F0C33
|
||||
:04016E0012A91C971F
|
||||
:04016F0012A3AD4EDC
|
||||
:04017000129E412E6C
|
||||
:040171001298D835D3
|
||||
:040172001293726012
|
||||
:04017300128E0FAC2D
|
||||
:040174001288B01726
|
||||
:040175001283539D01
|
||||
:04017600127DFA3DBF
|
||||
:040177001278A3F364
|
||||
:04017800127350BCF2
|
||||
:04017900126E00976B
|
||||
:04017A001268B381D3
|
||||
:04017B00126369762C
|
||||
:04017C00125E227479
|
||||
:04017D001258DE7ABC
|
||||
:04017E0012539D83F8
|
||||
:04017F00124E5F8D30
|
||||
:040180001249249666
|
||||
:040181001243EC9C9D
|
||||
:04018200123EB79BD7
|
||||
:040183001239859216
|
||||
:040184001234567D5E
|
||||
:04018500122F2A5AB1
|
||||
:04018600122A012711
|
||||
:040187001224DAE183
|
||||
:04018800121FB78506
|
||||
:04018900121A97129D
|
||||
:04018A00121579844D
|
||||
:04018B0012105EDA16
|
||||
:04018C00120B4710FB
|
||||
:04018D0012063225FF
|
||||
:04018E001201201624
|
||||
:04018F0011FC10E06F
|
||||
:0401900011F70482DD
|
||||
:0401910011F1FAF876
|
||||
:0401920011ECF44038
|
||||
:0401930011E7F05927
|
||||
:0401940011E2EF3F46
|
||||
:0401950011DDF0F197
|
||||
:0401960011D8F56B1C
|
||||
:0401970011D3FCACD8
|
||||
:0401980011CF06B2CB
|
||||
:0401990011CA1379FB
|
||||
:04019A0011C5230068
|
||||
:04019B0011C0354515
|
||||
:04019C0011BB4A4405
|
||||
:04019D0011B661FD39
|
||||
:04019E0011B17C6CB3
|
||||
:04019F0011AC998F77
|
||||
:0401A00011A7B96585
|
||||
:0401A10011A2DBEBE1
|
||||
:0401A200119E011E8B
|
||||
:0401A300119928FD89
|
||||
:0401A40011945385DA
|
||||
:0401A500118F80B482
|
||||
:0401A600118AB08882
|
||||
:0401A7001185E2FEDE
|
||||
:0401A8001181181594
|
||||
:0401A900117C4FCBAB
|
||||
:0401AA0011778A1D22
|
||||
:0401AB001172C709FD
|
||||
:0401AC00116E068D3D
|
||||
:0401AD00116948A7E5
|
||||
:0401AE0011648D55F6
|
||||
:0401AF00115FD49474
|
||||
:0401B000115B1E635E
|
||||
:0401B10011566AC0B9
|
||||
:0401B2001151B9A886
|
||||
:0401B300114D0B19C6
|
||||
:0401B40011485F127D
|
||||
:0401B5001143B590AD
|
||||
:0401B600113F0E9156
|
||||
:0401B700113A6A147B
|
||||
:0401B8001135C81520
|
||||
:0401B9001131289444
|
||||
:0401BA00112C8B8EEB
|
||||
:0401BB001127F10116
|
||||
:0401BC00112358EBC8
|
||||
:0401BD00111EC34B01
|
||||
:0401BE00111A301EC4
|
||||
:0401BF0011159F6215
|
||||
:0401C00011111115F3
|
||||
:0401C100110C853662
|
||||
:0401C2001107FBC264
|
||||
:0401C300110374B8F8
|
||||
:0401C40010FEF01524
|
||||
:0401C50010FA6DD8E7
|
||||
:0401C60010F5EDFF44
|
||||
:0401C70010F170873C
|
||||
:0401C80010ECF570D2
|
||||
:0401C90010E87CB707
|
||||
:0401CA0010E40659DE
|
||||
:0401CB0010DF925758
|
||||
:0401CC0010DB20AD77
|
||||
:0401CD0010D6B1593E
|
||||
:0401CE0010D2445AAD
|
||||
:0401CF0010CDD9AEC8
|
||||
:0401D00010C971548D
|
||||
:0401D10010C50B4802
|
||||
:0401D20010C0A78B27
|
||||
:0401D30010BC4618FE
|
||||
:0401D40010B7E6F08A
|
||||
:0401D50010B38A10C9
|
||||
:0401D60010AF2F76C1
|
||||
:0401D70010AAD72172
|
||||
:0401D80010A6810EDE
|
||||
:0401D90010A22D3D06
|
||||
:0401DA00109DDBABEE
|
||||
:0401DB0010998C5695
|
||||
:0401DC0010953F3DFE
|
||||
:0401DD001090F45E2C
|
||||
:0401DE00108CABB71F
|
||||
:0401DF0010886547D8
|
||||
:0401E0001084210C5A
|
||||
:0401E100107FDF04A8
|
||||
:0401E200107B9F2EC1
|
||||
:0401E30010776187A9
|
||||
:0401E4001073260E60
|
||||
:0401E500106EECC2EA
|
||||
:0401E600106AB5A046
|
||||
:0401E700106680A876
|
||||
:0401E80010624DD77D
|
||||
:0401E900105E1D2C5B
|
||||
:0401EA001059EEA416
|
||||
:0401EB001055C240A9
|
||||
:0401EC00105197FC1B
|
||||
:0401ED00104D6FD76B
|
||||
:0401EE00104949D09B
|
||||
:0401EF00104525E5AD
|
||||
:0401F00010410414A2
|
||||
:0401F100103CE45C7E
|
||||
:0401F2001038C6BC3F
|
||||
:0401F3001034AB30E9
|
||||
:0401F400103091B97D
|
||||
:0401F500102C7A54FC
|
||||
:0401F6001028650068
|
||||
:0401F700102451BCC3
|
||||
:0401F800102040850E
|
||||
:0401F900101C315A4B
|
||||
:0401FA001018243A7B
|
||||
:0401FB0010141923A0
|
||||
:0401FC0010101014BB
|
||||
:0401FD00100C090BCE
|
||||
:0401FE0010080406DB
|
||||
:0401FF0010040104E3
|
||||
:00000001ff
|
|
@ -0,0 +1,514 @@
|
|||
:020000040000FA
|
||||
:03000000100002EB
|
||||
:03000100100FF6E7
|
||||
:03000200101FD2FA
|
||||
:03000300102F9526
|
||||
:03000400103F4466
|
||||
:03000500104ED9C1
|
||||
:03000600105E5831
|
||||
:03000700106DC1B8
|
||||
:03000800107D1454
|
||||
:03000900108C4D0B
|
||||
:03000A00109B6FD9
|
||||
:03000B0010AA7FB9
|
||||
:03000C0010B977B1
|
||||
:03000D0010C85BBD
|
||||
:03000E0010D726E2
|
||||
:03000F0010E5DC1D
|
||||
:0300100010F47E6B
|
||||
:0300110011030CCC
|
||||
:0300120011118148
|
||||
:03001300111FE1D9
|
||||
:03001400112E2F7B
|
||||
:03001500113C6A31
|
||||
:03001600114A8DFF
|
||||
:0300170011589FDE
|
||||
:03001800116699D5
|
||||
:03001900117480DF
|
||||
:03001A00118258F8
|
||||
:03001B001190162B
|
||||
:03001C00119DC370
|
||||
:03001D0011AB5FC5
|
||||
:03001E0011B8E333
|
||||
:03001F0011C657B0
|
||||
:0300200011D3B841
|
||||
:0300210011E105E5
|
||||
:0300220011EE3F9D
|
||||
:0300230011FB6965
|
||||
:0300240012087D42
|
||||
:0300250012158130
|
||||
:0300260012227033
|
||||
:03002700122F5342
|
||||
:03002800123C1D6A
|
||||
:030029001248DD9D
|
||||
:03002A00125585E7
|
||||
:03002B0012621D41
|
||||
:03002C00126EA3AE
|
||||
:03002D00127B192A
|
||||
:03002E00128781B5
|
||||
:03002F001293D455
|
||||
:0300300012A01605
|
||||
:0300310012AC47C7
|
||||
:0300320012B86A97
|
||||
:0300330012C47C78
|
||||
:0300340012D07C6B
|
||||
:0300350012DC6A70
|
||||
:0300360012E84B82
|
||||
:0300370012F419A7
|
||||
:0300380012FFDBD9
|
||||
:03003900130B8C1A
|
||||
:03003A0013172B6E
|
||||
:03003B001322BDD0
|
||||
:03003C00132E3E42
|
||||
:03003D001339AFC5
|
||||
:03003E0013451156
|
||||
:03003F00135063F8
|
||||
:03004000135BAAA5
|
||||
:030041001366DD66
|
||||
:0300420013720531
|
||||
:03004300137D1D0D
|
||||
:03004400138824FA
|
||||
:0300450013931FF3
|
||||
:03004600139E0CFA
|
||||
:0300470013A8E813
|
||||
:0300480013B3BA35
|
||||
:0300490013BE786B
|
||||
:03004A0013C92EA9
|
||||
:03004B0013D3D0FC
|
||||
:03004C0013DE6759
|
||||
:03004D0013E8F2C3
|
||||
:03004E0013F36E3B
|
||||
:03004F0013FDDDC1
|
||||
:0300500014083A57
|
||||
:0300510014128EF8
|
||||
:03005200141CD4A7
|
||||
:0300530014270E61
|
||||
:030054001431372D
|
||||
:03005500143B5603
|
||||
:03005600144567E7
|
||||
:03005700144F6DD6
|
||||
:03005800145962D6
|
||||
:0300590014634DE0
|
||||
:03005A00146D2CF6
|
||||
:03005B001476FD1B
|
||||
:03005C001480C449
|
||||
:03005D00148A7B87
|
||||
:03005E00149428CF
|
||||
:03005F00149DC825
|
||||
:0300600014A75B87
|
||||
:0300610014B0E4F4
|
||||
:0300620014BA5F6E
|
||||
:0300630014C3D1F2
|
||||
:0300640014CD3484
|
||||
:0300650014D68C22
|
||||
:0300660014DFDCC8
|
||||
:0300670014E91D7C
|
||||
:0300680014F2523D
|
||||
:0300690014FB7E07
|
||||
:03006A0015049BDF
|
||||
:03006B00150DADC3
|
||||
:03006C001516B6B0
|
||||
:03006D00151FB5A7
|
||||
:03006E001528A7AB
|
||||
:03006F0015318DBB
|
||||
:03007000153A69D5
|
||||
:03007100154339FB
|
||||
:03007200154BFE2D
|
||||
:030073001554BE63
|
||||
:03007400155D6FA8
|
||||
:03007500156614F9
|
||||
:03007600156EAE56
|
||||
:03007700157742B8
|
||||
:03007800157FC62B
|
||||
:03007900158846A1
|
||||
:03007A001590B727
|
||||
:03007B0015991DB7
|
||||
:03007C0015A17C4F
|
||||
:03007D0015A9D1F1
|
||||
:03007E0015B21C9C
|
||||
:03007F0015BA5B54
|
||||
:0300800015C28F17
|
||||
:0300810015CABBE2
|
||||
:0300820015D2DDB7
|
||||
:0300830015DAF794
|
||||
:0300840015E3067B
|
||||
:0300850015EB0B6D
|
||||
:0300860015F30768
|
||||
:0300870015FAFC6B
|
||||
:030088001602E37A
|
||||
:03008900160AC292
|
||||
:03008A00161298B3
|
||||
:03008B00161A69D9
|
||||
:03008C0016222A0F
|
||||
:03008D001629E54C
|
||||
:03008E0016319890
|
||||
:03008F0016393FE0
|
||||
:030090001640DF38
|
||||
:0300910016487896
|
||||
:0300920016500500
|
||||
:0300930016578A73
|
||||
:03009400165F09EB
|
||||
:0300950016667C70
|
||||
:03009600166DE8FC
|
||||
:0300970016754893
|
||||
:03009800167CA52E
|
||||
:030099001683F5D6
|
||||
:03009A00168B3F83
|
||||
:03009B0016927F3B
|
||||
:03009C001699B6FC
|
||||
:03009D0016A0E6C4
|
||||
:03009E0016A80F92
|
||||
:03009F0016AF2F6A
|
||||
:0300A00016B64849
|
||||
:0300A10016BD5534
|
||||
:0300A20016C46021
|
||||
:0300A30016CB5D1C
|
||||
:0300A40016D2551C
|
||||
:0300A50016D94524
|
||||
:0300A60016E02F32
|
||||
:0300A70016E70C4D
|
||||
:0300A80016EDE66C
|
||||
:0300A90016F4B694
|
||||
:0300AA0016FB80C2
|
||||
:0300AB00170240F9
|
||||
:0300AC001708FA38
|
||||
:0300AD00170FAD7D
|
||||
:0300AE00171657CB
|
||||
:0300AF00171CF823
|
||||
:0300B0001723987B
|
||||
:0300B100172A2CDF
|
||||
:0300B2001730B94B
|
||||
:0300B30017373EBE
|
||||
:0300B400173DBC39
|
||||
:0300B500174434B9
|
||||
:0300B600174AA244
|
||||
:0300B70017510BD3
|
||||
:0300B80017577067
|
||||
:0300B900175DC808
|
||||
:0300BA0017641DAB
|
||||
:0300BB00176A6C55
|
||||
:0300BC001770B208
|
||||
:0300BD001776F1C2
|
||||
:0300BE00177D2982
|
||||
:0300BF0017835B49
|
||||
:0300C00017898815
|
||||
:0300C100178FACEA
|
||||
:0300C2001795C9C6
|
||||
:0300C300179BE1A7
|
||||
:0300C40017A1F091
|
||||
:0300C50017A7F981
|
||||
:0300C60017ADFB78
|
||||
:0300C70017B3F973
|
||||
:0300C80017B9F075
|
||||
:0300C90017BFDF7F
|
||||
:0300CA0017C5C98E
|
||||
:0300CB0017CBADA3
|
||||
:0300CC0017D18ABF
|
||||
:0300CD0017D75FE3
|
||||
:0300CE0017DD3209
|
||||
:0300CF0017E2FA3B
|
||||
:0300D00017E8BD71
|
||||
:0300D10017EE7CAB
|
||||
:0300D20017F431EF
|
||||
:0300D30017F9E436
|
||||
:0300D40017FF9182
|
||||
:0300D500180534D7
|
||||
:0300D600180AD431
|
||||
:0300D70018106F8F
|
||||
:0300D800181605F2
|
||||
:0300D900181B9061
|
||||
:0300DA0018211AD0
|
||||
:0300DB0018269E46
|
||||
:0300DC00182C19C4
|
||||
:0300DD0018318F48
|
||||
:0300DE00183701CF
|
||||
:0300DF00183C6B5F
|
||||
:0300E0001841D1F3
|
||||
:0300E1001847318C
|
||||
:0300E200184C892E
|
||||
:0300E3001851DFD2
|
||||
:0300E4001857307A
|
||||
:0300E500185C7A2A
|
||||
:0300E6001861BFDF
|
||||
:0300E7001866FE9A
|
||||
:0300E800186C3958
|
||||
:0300E90018716D1E
|
||||
:0300EA0018769BEA
|
||||
:0300EB00187BC3BC
|
||||
:0300EC001880E891
|
||||
:0300ED001886076B
|
||||
:0300EE00188B204C
|
||||
:0300EF0018903432
|
||||
:0300F0001895431D
|
||||
:0300F100189A500A
|
||||
:0300F200189F55FF
|
||||
:0300F30018A453FB
|
||||
:0300F40018A94FF9
|
||||
:0300F50018AE46FC
|
||||
:0300F60018B33606
|
||||
:0300F70018B82115
|
||||
:0300F80018BD0A26
|
||||
:0300F90018C1EB40
|
||||
:0300FA0018C6C85D
|
||||
:0300FB0018CB9F80
|
||||
:0300FC0018D074A5
|
||||
:0300FD0018D543D0
|
||||
:0300FE0018DA0B02
|
||||
:0300FF0018DECE3A
|
||||
:0301000018E38F72
|
||||
:0301010018E848B3
|
||||
:0301020018ED00F5
|
||||
:0301030018F1B33D
|
||||
:0301040018F65F8B
|
||||
:0301050018FB06DE
|
||||
:0301060018FFAB34
|
||||
:0301070019044C8C
|
||||
:030108001908E6ED
|
||||
:03010900190D7C51
|
||||
:03010A0019120DBA
|
||||
:03010B0019169A28
|
||||
:03010C00191B2498
|
||||
:03010D00191FA80F
|
||||
:03010E0019242889
|
||||
:03010F001928A507
|
||||
:03011000192D1B8B
|
||||
:0301110019318C15
|
||||
:030112001935FBA1
|
||||
:03011300193A6630
|
||||
:03011400193ECBC6
|
||||
:0301150019432B60
|
||||
:03011600194787FF
|
||||
:03011700194BE1A0
|
||||
:0301180019503843
|
||||
:03011900195486F0
|
||||
:03011A001958D79A
|
||||
:03011B00195D1E4D
|
||||
:03011C0019615F07
|
||||
:03011D001965A0C1
|
||||
:03011E001969DC80
|
||||
:03011F00196E1343
|
||||
:030120001972470A
|
||||
:03012100197678D4
|
||||
:03012200197AA5A2
|
||||
:03012300197ECC76
|
||||
:030124001982EF4E
|
||||
:0301250019871027
|
||||
:03012600198B2A08
|
||||
:03012700198F43EA
|
||||
:03012800199358D0
|
||||
:03012900199766BD
|
||||
:03012A00199B72AC
|
||||
:03012B00199F7B9E
|
||||
:03012C0019A37F95
|
||||
:03012D0019A7808F
|
||||
:03012E0019AB808A
|
||||
:03012F0019AF7A8B
|
||||
:0301300019B36D93
|
||||
:0301310019B7619A
|
||||
:0301320019BB4EA8
|
||||
:0301330019BF38B9
|
||||
:0301340019C31DCF
|
||||
:0301350019C703E4
|
||||
:0301360019CAE003
|
||||
:0301370019CEBD21
|
||||
:0301380019D29643
|
||||
:0301390019D66A6A
|
||||
:03013A0019DA3B94
|
||||
:03013B0019DE0BBF
|
||||
:03013C0019E1D7EF
|
||||
:03013D0019E59D24
|
||||
:03013E0019E9605C
|
||||
:03013F0019ED1F98
|
||||
:0301400019F0D8DB
|
||||
:0301410019F4911D
|
||||
:0301420019F84B5E
|
||||
:0301430019FBFBAA
|
||||
:0301440019FFAAF6
|
||||
:030145001A035545
|
||||
:030146001A06FE98
|
||||
:030147001A0AA0F1
|
||||
:030148001A0E4547
|
||||
:030149001A11DEAA
|
||||
:03014A001A157A09
|
||||
:03014B001A19126C
|
||||
:03014C001A1CA6D4
|
||||
:03014D001A20373E
|
||||
:03014E001A23C3AE
|
||||
:03014F001A274F1D
|
||||
:030150001A2AD692
|
||||
:030151001A2E590A
|
||||
:030152001A31DA85
|
||||
:030153001A355901
|
||||
:030154001A38D581
|
||||
:030155001A3C4C05
|
||||
:030156001A3FC08D
|
||||
:030157001A432F19
|
||||
:030158001A469EA6
|
||||
:030159001A4A0738
|
||||
:03015A001A4D70CB
|
||||
:03015B001A50D760
|
||||
:03015C001A5438FA
|
||||
:03015D001A579698
|
||||
:03015E001A5AF03A
|
||||
:03015F001A5E48DD
|
||||
:030160001A619F82
|
||||
:030161001A64F32A
|
||||
:030162001A6843D5
|
||||
:030163001A6B9282
|
||||
:030164001A6EDB35
|
||||
:030165001A7221EA
|
||||
:030166001A7567A0
|
||||
:030167001A78A95A
|
||||
:030168001A7BE718
|
||||
:030169001A7F21D9
|
||||
:03016A001A825C9A
|
||||
:03016B001A859161
|
||||
:03016C001A88C42A
|
||||
:03016D001A8BF5F5
|
||||
:03016E001A8F21C4
|
||||
:03016F001A924B96
|
||||
:030170001A957469
|
||||
:030171001A989841
|
||||
:030172001A9BBB1A
|
||||
:030173001A9EDBF6
|
||||
:030174001AA1F8D5
|
||||
:030175001AA513B5
|
||||
:030176001AA82A9A
|
||||
:030177001AAB3F81
|
||||
:030178001AAE5666
|
||||
:030179001AB16454
|
||||
:03017A001AB46F45
|
||||
:03017B001AB77A36
|
||||
:03017C001ABA8527
|
||||
:03017D001ABD8523
|
||||
:03017E001AC0891B
|
||||
:03017F001AC38B15
|
||||
:030180001AC68913
|
||||
:030181001AC98315
|
||||
:030182001ACC7B19
|
||||
:030183001ACF6F21
|
||||
:030184001AD26329
|
||||
:030185001AD55434
|
||||
:030186001AD84242
|
||||
:030187001ADB2E52
|
||||
:030188001ADE1A62
|
||||
:030189001AE10078
|
||||
:03018A001AE3E68F
|
||||
:03018B001AE6C7AA
|
||||
:03018C001AE9A8C5
|
||||
:03018D001AEC84E5
|
||||
:03018E001AEF5F06
|
||||
:03018F001AF2372A
|
||||
:030190001AF50B52
|
||||
:030191001AF7DF7B
|
||||
:030192001AFAB3A3
|
||||
:030193001AFD81D1
|
||||
:030194001B004D00
|
||||
:030195001B031633
|
||||
:030196001B05DF67
|
||||
:030197001B08A49E
|
||||
:030198001B0B66D8
|
||||
:030199001B0E2812
|
||||
:03019A001B10E651
|
||||
:03019B001B13A291
|
||||
:03019C001B165DD2
|
||||
:03019D001B191417
|
||||
:03019E001B1BCA5E
|
||||
:03019F001B1E7FA5
|
||||
:0301A0001B212EF2
|
||||
:0301A1001B23DB42
|
||||
:0301A2001B268891
|
||||
:0301A3001B2932E3
|
||||
:0301A4001B2BDA38
|
||||
:0301A5001B2E808E
|
||||
:0301A6001B3125E5
|
||||
:0301A7001B33C93E
|
||||
:0301A8001B36699A
|
||||
:0301A9001B3905FA
|
||||
:0301AA001B3BA05C
|
||||
:0301AB001B3E3ABE
|
||||
:0301AC001B40D124
|
||||
:0301AD001B43658C
|
||||
:0301AE001B45F8F6
|
||||
:0301AF001B488A60
|
||||
:0301B0001B4B18CE
|
||||
:0301B1001B4DA340
|
||||
:0301B2001B502EB1
|
||||
:0301B3001B52B725
|
||||
:0301B4001B553C9C
|
||||
:0301B5001B57C015
|
||||
:0301B6001B5A428F
|
||||
:0301B7001B5CC10D
|
||||
:0301B8001B5F4189
|
||||
:0301B9001B61BD0A
|
||||
:0301BA001B64378C
|
||||
:0301BB001B66B010
|
||||
:0301BC001B692795
|
||||
:0301BD001B6B9920
|
||||
:0301BE001B6E0AAB
|
||||
:0301BF001B707B37
|
||||
:0301C0001B72EAC5
|
||||
:0301C1001B755655
|
||||
:0301C2001B77C1E7
|
||||
:0301C3001B7A297B
|
||||
:0301C4001B7C9110
|
||||
:0301C5001B7EF5A9
|
||||
:0301C6001B815842
|
||||
:0301C7001B83BADD
|
||||
:0301C8001B86177C
|
||||
:0301C9001B88731D
|
||||
:0301CA001B8AD2BB
|
||||
:0301CB001B8D2861
|
||||
:0301CC001B8F8006
|
||||
:0301CD001B91D8AB
|
||||
:0301CE001B942D52
|
||||
:0301CF001B967EFE
|
||||
:0301D0001B98CDAC
|
||||
:0301D1001B9B1E57
|
||||
:0301D2001B9D670B
|
||||
:0301D3001B9FB5BA
|
||||
:0301D4001BA1FD6F
|
||||
:0301D5001BA44424
|
||||
:0301D6001BA689DC
|
||||
:0301D7001BA8CD95
|
||||
:0301D8001BAB104E
|
||||
:0301D9001BAD4E0D
|
||||
:0301DA001BAF8CCC
|
||||
:0301DB001BB1C98C
|
||||
:0301DC001BB4054C
|
||||
:0301DD001BB63F0F
|
||||
:0301DE001BB877D4
|
||||
:0301DF001BBAAD9B
|
||||
:0301E0001BBCE065
|
||||
:0301E1001BBF122F
|
||||
:0301E2001BC141FD
|
||||
:0301E3001BC371CA
|
||||
:0301E4001BC59F99
|
||||
:0301E5001BC7CA6B
|
||||
:0301E6001BC9F53D
|
||||
:0301E7001BCC1C12
|
||||
:0301E8001BCE41EA
|
||||
:0301E9001BD065C3
|
||||
:0301EA001BD28C99
|
||||
:0301EB001BD4AB77
|
||||
:0301EC001BD6CC53
|
||||
:0301ED001BD8EB31
|
||||
:0301EE001BDB0810
|
||||
:0301EF001BDD23F2
|
||||
:0301F0001BDF3DD5
|
||||
:0301F1001BE156B9
|
||||
:0301F2001BE369A3
|
||||
:0301F3001BE58188
|
||||
:0301F4001BE79373
|
||||
:0301F5001BE9A65D
|
||||
:0301F6001BEBB64A
|
||||
:0301F7001BEDC23B
|
||||
:0301F8001BEFD02A
|
||||
:0301F9001BF1DD1A
|
||||
:0301FA001BF3E70D
|
||||
:0301FB001BF5EF02
|
||||
:0301FC001BF7F4FA
|
||||
:0301FD001BF9F9F2
|
||||
:0301FE001BFBFEEA
|
||||
:0301FF001BFE00E4
|
||||
:00000001ff
|
|
@ -0,0 +1,514 @@
|
|||
:020000040000FA
|
||||
:0200000007FAFD
|
||||
:0200010007EE08
|
||||
:0200020007E312
|
||||
:0200030007D81C
|
||||
:0200040007CB28
|
||||
:0200050007C032
|
||||
:0200060007B53C
|
||||
:0200070007A947
|
||||
:02000800079B54
|
||||
:0200090007925C
|
||||
:02000A00078865
|
||||
:02000B00077B71
|
||||
:02000C0007717A
|
||||
:02000D00076486
|
||||
:02000E00075A8F
|
||||
:02000F00075197
|
||||
:020010000746A1
|
||||
:020011000739AD
|
||||
:020012000731B4
|
||||
:020013000728BC
|
||||
:02001400071EC5
|
||||
:020015000712D0
|
||||
:020016000708D9
|
||||
:0200170006FDE4
|
||||
:0200180006F5EB
|
||||
:0200190006ECF3
|
||||
:02001A0006DFFF
|
||||
:02001B0006D706
|
||||
:02001C0006CE0E
|
||||
:02001D0006C219
|
||||
:02001E0006BA20
|
||||
:02001F0006B029
|
||||
:0200200006A632
|
||||
:02002100069D3A
|
||||
:02002200069541
|
||||
:02002300068A4B
|
||||
:02002400068252
|
||||
:0200250006795A
|
||||
:02002600067260
|
||||
:0200270006666B
|
||||
:02002800066070
|
||||
:0200290006537C
|
||||
:02002A00064C82
|
||||
:02002B00064489
|
||||
:02002C00063C90
|
||||
:02002D00063497
|
||||
:02002E000628A2
|
||||
:02002F000620A9
|
||||
:020030000619AF
|
||||
:020031000611B6
|
||||
:020032000607BF
|
||||
:0200330005FEC8
|
||||
:0200340005F7CE
|
||||
:0200350005F0D4
|
||||
:0200360005E8DB
|
||||
:0200370005E1E1
|
||||
:0200380005D7EA
|
||||
:0200390005CFF1
|
||||
:02003A0005C8F7
|
||||
:02003B0005BFFF
|
||||
:02003C0005B805
|
||||
:02003D0005B10B
|
||||
:02003E0005AA11
|
||||
:02003F0005A416
|
||||
:02004000059A1F
|
||||
:02004100059424
|
||||
:02004200058B2C
|
||||
:02004300058432
|
||||
:02004400057E37
|
||||
:0200450005763E
|
||||
:02004600056E45
|
||||
:02004700056949
|
||||
:02004800055F52
|
||||
:02004900055B55
|
||||
:02004A0005515E
|
||||
:02004B00054D61
|
||||
:02004C00054568
|
||||
:02004D00053E6E
|
||||
:02004E00053774
|
||||
:02004F00052F7B
|
||||
:02005000052B7E
|
||||
:02005100052385
|
||||
:02005200051D8A
|
||||
:02005300051591
|
||||
:02005400051095
|
||||
:0200550005099B
|
||||
:020056000502A1
|
||||
:0200570004FBA8
|
||||
:0200580004F7AB
|
||||
:0200590004F0B1
|
||||
:02005A0004E9B7
|
||||
:02005B0004E4BB
|
||||
:02005C0004DCC2
|
||||
:02005D0004D7C6
|
||||
:02005E0004D0CC
|
||||
:02005F0004CBD0
|
||||
:0200600004C5D5
|
||||
:0200610004BFDA
|
||||
:0200620004B9DF
|
||||
:0200630004B2E5
|
||||
:0200640004ADE9
|
||||
:0200650004A8ED
|
||||
:02006600049FF5
|
||||
:020067000499FA
|
||||
:020068000495FD
|
||||
:02006900048D04
|
||||
:02006A00048907
|
||||
:02006B0004850A
|
||||
:02006C00047E10
|
||||
:02006D00047716
|
||||
:02006E0004721A
|
||||
:02006F00046D1E
|
||||
:02007000046822
|
||||
:02007100046425
|
||||
:02007200046028
|
||||
:02007300045631
|
||||
:02007400045135
|
||||
:02007500044D38
|
||||
:02007600044A3A
|
||||
:02007700044241
|
||||
:02007800044042
|
||||
:0200790004374A
|
||||
:02007A0004344C
|
||||
:02007B0004304F
|
||||
:02007C00042A54
|
||||
:02007D00042459
|
||||
:02007E00041E5E
|
||||
:02007F00041B60
|
||||
:02008000041763
|
||||
:02008100041366
|
||||
:02008200040E6A
|
||||
:0200830004086F
|
||||
:02008400040472
|
||||
:0200850003FF77
|
||||
:0200860003FB7A
|
||||
:0200870003F480
|
||||
:0200880003F182
|
||||
:0200890003ED85
|
||||
:02008A0003E988
|
||||
:02008B0003E18F
|
||||
:02008C0003DF90
|
||||
:02008D0003DA94
|
||||
:02008E0003D598
|
||||
:02008F0003D29A
|
||||
:0200900003CD9E
|
||||
:0200910003C7A3
|
||||
:0200920003C4A5
|
||||
:0200930003BFA9
|
||||
:0200940003B9AE
|
||||
:0200950003B5B1
|
||||
:0200960003B1B4
|
||||
:0200970003AFB5
|
||||
:0200980003A8BB
|
||||
:0200990003A5BD
|
||||
:02009A0003A0C1
|
||||
:02009B00039DC3
|
||||
:02009C00039AC5
|
||||
:02009D000396C8
|
||||
:02009E000391CC
|
||||
:02009F00038CD0
|
||||
:0200A0000388D3
|
||||
:0200A1000386D4
|
||||
:0200A200037FDA
|
||||
:0200A300037DDB
|
||||
:0200A4000378DF
|
||||
:0200A5000375E1
|
||||
:0200A600036FE6
|
||||
:0200A700036DE7
|
||||
:0200A8000368EB
|
||||
:0200A9000364EE
|
||||
:0200AA000360F1
|
||||
:0200AB00035DF3
|
||||
:0200AC000359F6
|
||||
:0200AD000354FA
|
||||
:0200AE000352FB
|
||||
:0200AF000350FC
|
||||
:0200B000034803
|
||||
:0200B100034505
|
||||
:0200B200034108
|
||||
:0200B300033F09
|
||||
:0200B400033B0C
|
||||
:0200B50003380E
|
||||
:0200B60003360F
|
||||
:0200B700033311
|
||||
:0200B800032D16
|
||||
:0200B900032C16
|
||||
:0200BA0003271A
|
||||
:0200BB0003221E
|
||||
:0200BC00031F20
|
||||
:0200BD00031C22
|
||||
:0200BE00031924
|
||||
:0200BF00031527
|
||||
:0200C00003102B
|
||||
:0200C100030D2D
|
||||
:0200C200030A2F
|
||||
:0200C300030632
|
||||
:0200C400030433
|
||||
:0200C500030234
|
||||
:0200C60002FF37
|
||||
:0200C70002FB3A
|
||||
:0200C80002F73D
|
||||
:0200C90002F53E
|
||||
:0200CA0002F141
|
||||
:0200CB0002ED44
|
||||
:0200CC0002EA46
|
||||
:0200CD0002E946
|
||||
:0200CE0002E34B
|
||||
:0200CF0002E24B
|
||||
:0200D00002DF4D
|
||||
:0200D10002DC4F
|
||||
:0200D20002DB4F
|
||||
:0200D30002D653
|
||||
:0200D40002D355
|
||||
:0200D50002D255
|
||||
:0200D60002CE58
|
||||
:0200D70002CB5A
|
||||
:0200D80002C65E
|
||||
:0200D90002C55E
|
||||
:0200DA0002C062
|
||||
:0200DB0002BC65
|
||||
:0200DC0002BB65
|
||||
:0200DD0002B867
|
||||
:0200DE0002B569
|
||||
:0200DF0002B36A
|
||||
:0200E00002B06C
|
||||
:0200E10002AE6D
|
||||
:0200E20002AD6D
|
||||
:0200E30002A970
|
||||
:0200E40002A573
|
||||
:0200E50002A275
|
||||
:0200E600029F77
|
||||
:0200E700029C79
|
||||
:0200E80002987C
|
||||
:0200E90002967D
|
||||
:0200EA0002947E
|
||||
:0200EB0002937E
|
||||
:0200EC00028F81
|
||||
:0200ED00028D82
|
||||
:0200EE00028B83
|
||||
:0200EF00028984
|
||||
:0200F000028686
|
||||
:0200F10002818A
|
||||
:0200F200027F8B
|
||||
:0200F300027E8B
|
||||
:0200F400027A8E
|
||||
:0200F500027790
|
||||
:0200F600027591
|
||||
:0200F700027491
|
||||
:0200F800026F95
|
||||
:0200F900026D96
|
||||
:0200FA00026B97
|
||||
:0200FB00026998
|
||||
:0200FC0002659B
|
||||
:0200FD0002629D
|
||||
:0200FE0002629C
|
||||
:0200FF0002609D
|
||||
:02010000025E9D
|
||||
:02010100025D9D
|
||||
:020102000259A0
|
||||
:020103000256A2
|
||||
:020104000255A2
|
||||
:020105000254A2
|
||||
:020106000250A5
|
||||
:02010700024DA7
|
||||
:02010800024BA8
|
||||
:020109000249A9
|
||||
:02010A000248A9
|
||||
:02010B000245AB
|
||||
:02010C000242AD
|
||||
:02010D000240AE
|
||||
:02010E00023DB0
|
||||
:02010F00023AB2
|
||||
:020110000239B2
|
||||
:020111000238B2
|
||||
:020112000235B4
|
||||
:020113000232B6
|
||||
:020114000231B6
|
||||
:020115000230B6
|
||||
:02011600022FB6
|
||||
:02011700022BB9
|
||||
:020118000228BB
|
||||
:020119000228BA
|
||||
:02011A000221C0
|
||||
:02011B000221BF
|
||||
:02011C000221BE
|
||||
:02011D00021EC0
|
||||
:02011E00021CC1
|
||||
:02011F00021BC1
|
||||
:020120000218C3
|
||||
:020121000215C5
|
||||
:020122000212C7
|
||||
:020123000211C7
|
||||
:02012400020FC8
|
||||
:02012500020DC9
|
||||
:02012600020CC9
|
||||
:020127000209CB
|
||||
:020128000207CC
|
||||
:020129000207CB
|
||||
:02012A000205CC
|
||||
:02012B000203CD
|
||||
:02012C000202CD
|
||||
:02012D0001FFD0
|
||||
:02012E0001FBD3
|
||||
:02012F0001F9D4
|
||||
:0201300001FAD2
|
||||
:0201310001F6D5
|
||||
:0201320001F5D5
|
||||
:0201330001F4D5
|
||||
:0201340001F4D4
|
||||
:0201350001F0D7
|
||||
:0201360001F0D6
|
||||
:0201370001EDD8
|
||||
:0201380001EBD9
|
||||
:0201390001EAD9
|
||||
:02013A0001E8DA
|
||||
:02013B0001E4DD
|
||||
:02013C0001E1DF
|
||||
:02013D0001E0DF
|
||||
:02013E0001DEE0
|
||||
:02013F0001DEDF
|
||||
:0201400001DFDD
|
||||
:0201410001DDDE
|
||||
:0201420001D7E3
|
||||
:0201430001D7E2
|
||||
:0201440001D5E3
|
||||
:0201450001D3E4
|
||||
:0201460001D1E5
|
||||
:0201470001D2E3
|
||||
:0201480001CCE8
|
||||
:0201490001CFE4
|
||||
:02014A0001CCE6
|
||||
:02014B0001CAE7
|
||||
:02014C0001C8E8
|
||||
:02014D0001C7E8
|
||||
:02014E0001C6E8
|
||||
:02014F0001C3EA
|
||||
:0201500001C2EA
|
||||
:0201510001C1EA
|
||||
:0201520001BFEB
|
||||
:0201530001BCED
|
||||
:0201540001B9EF
|
||||
:0201550001B8EF
|
||||
:0201560001B7EF
|
||||
:0201570001B7EE
|
||||
:0201580001B5EF
|
||||
:0201590001B5EE
|
||||
:02015A0001B2F0
|
||||
:02015B0001AFF2
|
||||
:02015C0001AEF2
|
||||
:02015D0001AEF1
|
||||
:02015E0001AEF0
|
||||
:02015F0001ADF0
|
||||
:0201600001AAF2
|
||||
:0201610001A8F3
|
||||
:0201620001A6F4
|
||||
:0201630001A3F6
|
||||
:0201640001A3F5
|
||||
:0201650001A2F5
|
||||
:02016600019FF7
|
||||
:02016700019DF8
|
||||
:02016800019DF7
|
||||
:02016900019CF7
|
||||
:02016A000199F9
|
||||
:02016B000199F8
|
||||
:02016C000197F9
|
||||
:02016D000196F9
|
||||
:02016E000196F8
|
||||
:02016F000195F8
|
||||
:020170000193F9
|
||||
:020171000193F8
|
||||
:020172000191F9
|
||||
:020173000190F9
|
||||
:02017400018EFA
|
||||
:02017500018DFA
|
||||
:02017600018CFA
|
||||
:02017700018BFA
|
||||
:020178000185FF
|
||||
:020179000186FD
|
||||
:02017A000186FC
|
||||
:02017B000185FC
|
||||
:02017C00018000
|
||||
:02017D000184FB
|
||||
:02017E000181FD
|
||||
:02017F00017EFF
|
||||
:02018000017DFF
|
||||
:02018100017CFF
|
||||
:02018200017CFE
|
||||
:02018300017CFD
|
||||
:02018400017AFE
|
||||
:020185000179FE
|
||||
:020186000178FE
|
||||
:020187000176FF
|
||||
:02018800017301
|
||||
:02018900017201
|
||||
:02018A00017002
|
||||
:02018B00016F02
|
||||
:02018C00016D03
|
||||
:02018D00016D02
|
||||
:02018E00016B03
|
||||
:02018F00016B02
|
||||
:02019000016B01
|
||||
:02019100016A01
|
||||
:02019200016604
|
||||
:02019300016504
|
||||
:02019400016503
|
||||
:02019500016403
|
||||
:02019600016204
|
||||
:02019700016203
|
||||
:02019800016103
|
||||
:02019900015F04
|
||||
:02019A00015F03
|
||||
:02019B00015D04
|
||||
:02019C00015C04
|
||||
:02019D00015B04
|
||||
:02019E00015905
|
||||
:02019F00015706
|
||||
:0201A000015804
|
||||
:0201A100015803
|
||||
:0201A200015703
|
||||
:0201A300015603
|
||||
:0201A400015503
|
||||
:0201A500015403
|
||||
:0201A600015105
|
||||
:0201A700014E07
|
||||
:0201A800014D07
|
||||
:0201A900014D06
|
||||
:0201AA00014C06
|
||||
:0201AB00014A07
|
||||
:0201AC00014907
|
||||
:0201AD00014906
|
||||
:0201AE00014707
|
||||
:0201AF00014508
|
||||
:0201B000014507
|
||||
:0201B100014506
|
||||
:0201B200014307
|
||||
:0201B300014207
|
||||
:0201B400014206
|
||||
:0201B500014106
|
||||
:0201B600014105
|
||||
:0201B700014005
|
||||
:0201B800013E06
|
||||
:0201B900013D06
|
||||
:0201BA00013C06
|
||||
:0201BB00013A07
|
||||
:0201BC00013907
|
||||
:0201BD00013A05
|
||||
:0201BE00013A04
|
||||
:0201BF00013805
|
||||
:0201C000013705
|
||||
:0201C100013605
|
||||
:0201C200013505
|
||||
:0201C300013405
|
||||
:0201C400013206
|
||||
:0201C500013205
|
||||
:0201C600013006
|
||||
:0201C700012F06
|
||||
:0201C800013004
|
||||
:0201C900013003
|
||||
:0201CA00012C06
|
||||
:0201CB00012E03
|
||||
:0201CC00012C04
|
||||
:0201CD00012906
|
||||
:0201CE00012707
|
||||
:0201CF00012805
|
||||
:0201D000012705
|
||||
:0201D100012407
|
||||
:0201D200012604
|
||||
:0201D300012306
|
||||
:0201D400012305
|
||||
:0201D500012205
|
||||
:0201D600012204
|
||||
:0201D700012005
|
||||
:0201D800011F05
|
||||
:0201D900012003
|
||||
:0201DA00011F03
|
||||
:0201DB00011E03
|
||||
:0201DC00011C04
|
||||
:0201DD00011A05
|
||||
:0201DE00011905
|
||||
:0201DF00011805
|
||||
:0201E000011804
|
||||
:0201E100011803
|
||||
:0201E200011802
|
||||
:0201E300011603
|
||||
:0201E400011503
|
||||
:0201E500011403
|
||||
:0201E600011303
|
||||
:0201E700011302
|
||||
:0201E800011400
|
||||
:0201E9000114FF
|
||||
:0201EA00011002
|
||||
:0201EB00011100
|
||||
:0201EC00010F01
|
||||
:0201ED00010E01
|
||||
:0201EE00010D01
|
||||
:0201EF00010C01
|
||||
:0201F000010B01
|
||||
:0201F100010902
|
||||
:0201F200010BFF
|
||||
:0201F300010801
|
||||
:0201F400010800
|
||||
:0201F500010601
|
||||
:0201F600010600
|
||||
:0201F7000107FE
|
||||
:0201F8000105FF
|
||||
:0201F900010300
|
||||
:0201FA00010200
|
||||
:0201FB000102FF
|
||||
:0201FC000103FD
|
||||
:0201FD000102FD
|
||||
:0201FE000100FE
|
||||
:0201FF000100FD
|
||||
:00000001ff
|
518
hw/rtl/fp_cores/altera/acl_fp_ftoi.sv
Normal file
518
hw/rtl/fp_cores/altera/acl_fp_ftoi.sv
Normal file
|
@ -0,0 +1,518 @@
|
|||
// -------------------------------------------------------------------------
|
||||
// High Level Design Compiler for Intel(R) FPGAs Version 17.1 (Release Build #273)
|
||||
// Quartus Prime development tool and MATLAB/Simulink Interface
|
||||
//
|
||||
// Legal Notice: Copyright 2017 Intel Corporation. All rights reserved.
|
||||
// Your use of Intel Corporation's design tools, logic functions and other
|
||||
// software and tools, and its AMPP partner logic functions, and any output
|
||||
// files any of the foregoing (including device programming or simulation
|
||||
// files), and any associated documentation or information are expressly
|
||||
// subject to the terms and conditions of the Intel FPGA Software License
|
||||
// Agreement, Intel MegaCore Function License Agreement, or other applicable
|
||||
// license agreement, including, without limitation, that your use is for
|
||||
// the sole purpose of programming logic devices manufactured by Intel
|
||||
// and sold by Intel or its authorized distributors. Please refer to the
|
||||
// applicable agreement for further details.
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
// SystemVerilog created from acl_fp_ftoi
|
||||
// SystemVerilog created on Wed Aug 5 12:58:15 2020
|
||||
|
||||
|
||||
(* altera_attribute = "-name AUTO_SHIFT_REGISTER_RECOGNITION OFF; -name MESSAGE_DISABLE 10036; -name MESSAGE_DISABLE 10037; -name MESSAGE_DISABLE 14130; -name MESSAGE_DISABLE 14320; -name MESSAGE_DISABLE 15400; -name MESSAGE_DISABLE 14130; -name MESSAGE_DISABLE 10036; -name MESSAGE_DISABLE 12020; -name MESSAGE_DISABLE 12030; -name MESSAGE_DISABLE 12010; -name MESSAGE_DISABLE 12110; -name MESSAGE_DISABLE 14320; -name MESSAGE_DISABLE 13410; -name MESSAGE_DISABLE 113007; -name MESSAGE_DISABLE 10958" *)
|
||||
module acl_fp_ftoi (
|
||||
input wire [31:0] a,
|
||||
input wire [0:0] en,
|
||||
output wire [31:0] q,
|
||||
input wire clk,
|
||||
input wire areset
|
||||
);
|
||||
|
||||
wire [0:0] GND_q;
|
||||
wire [7:0] cstAllOWE_uid6_fpToFxPTest_q;
|
||||
wire [22:0] cstZeroWF_uid7_fpToFxPTest_q;
|
||||
wire [7:0] cstAllZWE_uid8_fpToFxPTest_q;
|
||||
wire [7:0] exp_x_uid9_fpToFxPTest_b;
|
||||
wire [22:0] frac_x_uid10_fpToFxPTest_b;
|
||||
wire [0:0] excZ_x_uid11_fpToFxPTest_qi;
|
||||
reg [0:0] excZ_x_uid11_fpToFxPTest_q;
|
||||
wire [0:0] expXIsMax_uid12_fpToFxPTest_qi;
|
||||
reg [0:0] expXIsMax_uid12_fpToFxPTest_q;
|
||||
wire [0:0] fracXIsZero_uid13_fpToFxPTest_qi;
|
||||
reg [0:0] fracXIsZero_uid13_fpToFxPTest_q;
|
||||
wire [0:0] fracXIsNotZero_uid14_fpToFxPTest_q;
|
||||
wire [0:0] excI_x_uid15_fpToFxPTest_q;
|
||||
wire [0:0] excN_x_uid16_fpToFxPTest_q;
|
||||
wire [0:0] invExcXZ_uid22_fpToFxPTest_q;
|
||||
wire [23:0] oFracX_uid23_fpToFxPTest_q;
|
||||
wire [0:0] signX_uid25_fpToFxPTest_b;
|
||||
wire [8:0] ovfExpVal_uid26_fpToFxPTest_q;
|
||||
wire [10:0] ovfExpRange_uid27_fpToFxPTest_a;
|
||||
wire [10:0] ovfExpRange_uid27_fpToFxPTest_b;
|
||||
logic [10:0] ovfExpRange_uid27_fpToFxPTest_o;
|
||||
wire [0:0] ovfExpRange_uid27_fpToFxPTest_n;
|
||||
wire [7:0] udfExpVal_uid28_fpToFxPTest_q;
|
||||
wire [10:0] udf_uid29_fpToFxPTest_a;
|
||||
wire [10:0] udf_uid29_fpToFxPTest_b;
|
||||
logic [10:0] udf_uid29_fpToFxPTest_o;
|
||||
wire [0:0] udf_uid29_fpToFxPTest_n;
|
||||
wire [8:0] ovfExpVal_uid30_fpToFxPTest_q;
|
||||
wire [10:0] shiftValE_uid31_fpToFxPTest_a;
|
||||
wire [10:0] shiftValE_uid31_fpToFxPTest_b;
|
||||
logic [10:0] shiftValE_uid31_fpToFxPTest_o;
|
||||
wire [9:0] shiftValE_uid31_fpToFxPTest_q;
|
||||
wire [5:0] shiftValRaw_uid32_fpToFxPTest_in;
|
||||
wire [5:0] shiftValRaw_uid32_fpToFxPTest_b;
|
||||
wire [5:0] maxShiftCst_uid33_fpToFxPTest_q;
|
||||
wire [11:0] shiftOutOfRange_uid34_fpToFxPTest_a;
|
||||
wire [11:0] shiftOutOfRange_uid34_fpToFxPTest_b;
|
||||
logic [11:0] shiftOutOfRange_uid34_fpToFxPTest_o;
|
||||
wire [0:0] shiftOutOfRange_uid34_fpToFxPTest_n;
|
||||
wire [0:0] shiftVal_uid35_fpToFxPTest_s;
|
||||
reg [5:0] shiftVal_uid35_fpToFxPTest_q;
|
||||
wire [31:0] shifterIn_uid37_fpToFxPTest_q;
|
||||
wire [31:0] maxPosValueS_uid39_fpToFxPTest_q;
|
||||
wire [31:0] maxNegValueS_uid40_fpToFxPTest_q;
|
||||
wire [32:0] zRightShiferNoStickyOut_uid41_fpToFxPTest_q;
|
||||
wire [32:0] xXorSignE_uid42_fpToFxPTest_b;
|
||||
wire [32:0] xXorSignE_uid42_fpToFxPTest_q;
|
||||
wire [2:0] d0_uid43_fpToFxPTest_q;
|
||||
wire [33:0] sPostRndFull_uid44_fpToFxPTest_a;
|
||||
wire [33:0] sPostRndFull_uid44_fpToFxPTest_b;
|
||||
logic [33:0] sPostRndFull_uid44_fpToFxPTest_o;
|
||||
wire [33:0] sPostRndFull_uid44_fpToFxPTest_q;
|
||||
wire [32:0] sPostRnd_uid45_fpToFxPTest_in;
|
||||
wire [31:0] sPostRnd_uid45_fpToFxPTest_b;
|
||||
wire [34:0] sPostRnd_uid46_fpToFxPTest_in;
|
||||
wire [33:0] sPostRnd_uid46_fpToFxPTest_b;
|
||||
wire [35:0] rndOvfPos_uid47_fpToFxPTest_a;
|
||||
wire [35:0] rndOvfPos_uid47_fpToFxPTest_b;
|
||||
logic [35:0] rndOvfPos_uid47_fpToFxPTest_o;
|
||||
wire [0:0] rndOvfPos_uid47_fpToFxPTest_c;
|
||||
wire [0:0] ovfPostRnd_uid48_fpToFxPTest_qi;
|
||||
reg [0:0] ovfPostRnd_uid48_fpToFxPTest_q;
|
||||
wire [2:0] muxSelConc_uid49_fpToFxPTest_q;
|
||||
reg [1:0] muxSel_uid50_fpToFxPTest_q;
|
||||
wire [31:0] maxNegValueU_uid51_fpToFxPTest_q;
|
||||
wire [1:0] finalOut_uid52_fpToFxPTest_s;
|
||||
reg [31:0] finalOut_uid52_fpToFxPTest_q;
|
||||
wire [15:0] rightShiftStage0Idx1Rng16_uid56_rightShiferNoStickyOut_uid38_fpToFxPTest_b;
|
||||
wire [15:0] rightShiftStage0Idx1Pad16_uid57_rightShiferNoStickyOut_uid38_fpToFxPTest_q;
|
||||
wire [31:0] rightShiftStage0Idx1_uid58_rightShiferNoStickyOut_uid38_fpToFxPTest_q;
|
||||
wire [1:0] rightShiftStage0_uid62_rightShiferNoStickyOut_uid38_fpToFxPTest_s;
|
||||
reg [31:0] rightShiftStage0_uid62_rightShiferNoStickyOut_uid38_fpToFxPTest_q;
|
||||
wire [27:0] rightShiftStage1Idx1Rng4_uid63_rightShiferNoStickyOut_uid38_fpToFxPTest_b;
|
||||
wire [3:0] rightShiftStage1Idx1Pad4_uid64_rightShiferNoStickyOut_uid38_fpToFxPTest_q;
|
||||
wire [31:0] rightShiftStage1Idx1_uid65_rightShiferNoStickyOut_uid38_fpToFxPTest_q;
|
||||
wire [23:0] rightShiftStage1Idx2Rng8_uid66_rightShiferNoStickyOut_uid38_fpToFxPTest_b;
|
||||
wire [31:0] rightShiftStage1Idx2_uid68_rightShiferNoStickyOut_uid38_fpToFxPTest_q;
|
||||
wire [19:0] rightShiftStage1Idx3Rng12_uid69_rightShiferNoStickyOut_uid38_fpToFxPTest_b;
|
||||
wire [11:0] rightShiftStage1Idx3Pad12_uid70_rightShiferNoStickyOut_uid38_fpToFxPTest_q;
|
||||
wire [31:0] rightShiftStage1Idx3_uid71_rightShiferNoStickyOut_uid38_fpToFxPTest_q;
|
||||
wire [1:0] rightShiftStage1_uid73_rightShiferNoStickyOut_uid38_fpToFxPTest_s;
|
||||
reg [31:0] rightShiftStage1_uid73_rightShiferNoStickyOut_uid38_fpToFxPTest_q;
|
||||
wire [30:0] rightShiftStage2Idx1Rng1_uid74_rightShiferNoStickyOut_uid38_fpToFxPTest_b;
|
||||
wire [31:0] rightShiftStage2Idx1_uid76_rightShiferNoStickyOut_uid38_fpToFxPTest_q;
|
||||
wire [29:0] rightShiftStage2Idx2Rng2_uid77_rightShiferNoStickyOut_uid38_fpToFxPTest_b;
|
||||
wire [1:0] rightShiftStage2Idx2Pad2_uid78_rightShiferNoStickyOut_uid38_fpToFxPTest_q;
|
||||
wire [31:0] rightShiftStage2Idx2_uid79_rightShiferNoStickyOut_uid38_fpToFxPTest_q;
|
||||
wire [28:0] rightShiftStage2Idx3Rng3_uid80_rightShiferNoStickyOut_uid38_fpToFxPTest_b;
|
||||
wire [2:0] rightShiftStage2Idx3Pad3_uid81_rightShiferNoStickyOut_uid38_fpToFxPTest_q;
|
||||
wire [31:0] rightShiftStage2Idx3_uid82_rightShiferNoStickyOut_uid38_fpToFxPTest_q;
|
||||
wire [1:0] rightShiftStage2_uid84_rightShiferNoStickyOut_uid38_fpToFxPTest_s;
|
||||
reg [31:0] rightShiftStage2_uid84_rightShiferNoStickyOut_uid38_fpToFxPTest_q;
|
||||
wire [1:0] rightShiftStageSel5Dto4_uid61_rightShiferNoStickyOut_uid38_fpToFxPTest_merged_bit_select_b;
|
||||
wire [1:0] rightShiftStageSel5Dto4_uid61_rightShiferNoStickyOut_uid38_fpToFxPTest_merged_bit_select_c;
|
||||
wire [1:0] rightShiftStageSel5Dto4_uid61_rightShiferNoStickyOut_uid38_fpToFxPTest_merged_bit_select_d;
|
||||
reg [31:0] redist0_sPostRnd_uid45_fpToFxPTest_b_1_q;
|
||||
reg [0:0] redist1_udf_uid29_fpToFxPTest_n_5_q;
|
||||
reg [0:0] redist2_ovfExpRange_uid27_fpToFxPTest_n_4_q;
|
||||
reg [0:0] redist3_signX_uid25_fpToFxPTest_b_3_q;
|
||||
reg [0:0] redist4_signX_uid25_fpToFxPTest_b_5_q;
|
||||
reg [0:0] redist5_fracXIsZero_uid13_fpToFxPTest_q_2_q;
|
||||
reg [0:0] redist6_expXIsMax_uid12_fpToFxPTest_q_4_q;
|
||||
reg [0:0] redist7_excZ_x_uid11_fpToFxPTest_q_2_q;
|
||||
reg [22:0] redist8_frac_x_uid10_fpToFxPTest_b_2_q;
|
||||
|
||||
|
||||
// maxNegValueU_uid51_fpToFxPTest(CONSTANT,50)
|
||||
assign maxNegValueU_uid51_fpToFxPTest_q = 32'b00000000000000000000000000000000;
|
||||
|
||||
// maxNegValueS_uid40_fpToFxPTest(CONSTANT,39)
|
||||
assign maxNegValueS_uid40_fpToFxPTest_q = 32'b10000000000000000000000000000000;
|
||||
|
||||
// maxPosValueS_uid39_fpToFxPTest(CONSTANT,38)
|
||||
assign maxPosValueS_uid39_fpToFxPTest_q = 32'b01111111111111111111111111111111;
|
||||
|
||||
// d0_uid43_fpToFxPTest(CONSTANT,42)
|
||||
assign d0_uid43_fpToFxPTest_q = 3'b001;
|
||||
|
||||
// signX_uid25_fpToFxPTest(BITSELECT,24)@0
|
||||
assign signX_uid25_fpToFxPTest_b = a[31:31];
|
||||
|
||||
// redist3_signX_uid25_fpToFxPTest_b_3(DELAY,89)
|
||||
dspba_delay_ver #( .width(1), .depth(3), .reset_kind("ASYNC") )
|
||||
redist3_signX_uid25_fpToFxPTest_b_3 ( .xin(signX_uid25_fpToFxPTest_b), .xout(redist3_signX_uid25_fpToFxPTest_b_3_q), .ena(en[0]), .clk(clk), .aclr(areset) );
|
||||
|
||||
// GND(CONSTANT,0)
|
||||
assign GND_q = 1'b0;
|
||||
|
||||
// rightShiftStage2Idx3Pad3_uid81_rightShiferNoStickyOut_uid38_fpToFxPTest(CONSTANT,80)
|
||||
assign rightShiftStage2Idx3Pad3_uid81_rightShiferNoStickyOut_uid38_fpToFxPTest_q = 3'b000;
|
||||
|
||||
// rightShiftStage2Idx3Rng3_uid80_rightShiferNoStickyOut_uid38_fpToFxPTest(BITSELECT,79)@2
|
||||
assign rightShiftStage2Idx3Rng3_uid80_rightShiferNoStickyOut_uid38_fpToFxPTest_b = rightShiftStage1_uid73_rightShiferNoStickyOut_uid38_fpToFxPTest_q[31:3];
|
||||
|
||||
// rightShiftStage2Idx3_uid82_rightShiferNoStickyOut_uid38_fpToFxPTest(BITJOIN,81)@2
|
||||
assign rightShiftStage2Idx3_uid82_rightShiferNoStickyOut_uid38_fpToFxPTest_q = {rightShiftStage2Idx3Pad3_uid81_rightShiferNoStickyOut_uid38_fpToFxPTest_q, rightShiftStage2Idx3Rng3_uid80_rightShiferNoStickyOut_uid38_fpToFxPTest_b};
|
||||
|
||||
// rightShiftStage2Idx2Pad2_uid78_rightShiferNoStickyOut_uid38_fpToFxPTest(CONSTANT,77)
|
||||
assign rightShiftStage2Idx2Pad2_uid78_rightShiferNoStickyOut_uid38_fpToFxPTest_q = 2'b00;
|
||||
|
||||
// rightShiftStage2Idx2Rng2_uid77_rightShiferNoStickyOut_uid38_fpToFxPTest(BITSELECT,76)@2
|
||||
assign rightShiftStage2Idx2Rng2_uid77_rightShiferNoStickyOut_uid38_fpToFxPTest_b = rightShiftStage1_uid73_rightShiferNoStickyOut_uid38_fpToFxPTest_q[31:2];
|
||||
|
||||
// rightShiftStage2Idx2_uid79_rightShiferNoStickyOut_uid38_fpToFxPTest(BITJOIN,78)@2
|
||||
assign rightShiftStage2Idx2_uid79_rightShiferNoStickyOut_uid38_fpToFxPTest_q = {rightShiftStage2Idx2Pad2_uid78_rightShiferNoStickyOut_uid38_fpToFxPTest_q, rightShiftStage2Idx2Rng2_uid77_rightShiferNoStickyOut_uid38_fpToFxPTest_b};
|
||||
|
||||
// rightShiftStage2Idx1Rng1_uid74_rightShiferNoStickyOut_uid38_fpToFxPTest(BITSELECT,73)@2
|
||||
assign rightShiftStage2Idx1Rng1_uid74_rightShiferNoStickyOut_uid38_fpToFxPTest_b = rightShiftStage1_uid73_rightShiferNoStickyOut_uid38_fpToFxPTest_q[31:1];
|
||||
|
||||
// rightShiftStage2Idx1_uid76_rightShiferNoStickyOut_uid38_fpToFxPTest(BITJOIN,75)@2
|
||||
assign rightShiftStage2Idx1_uid76_rightShiferNoStickyOut_uid38_fpToFxPTest_q = {GND_q, rightShiftStage2Idx1Rng1_uid74_rightShiferNoStickyOut_uid38_fpToFxPTest_b};
|
||||
|
||||
// rightShiftStage1Idx3Pad12_uid70_rightShiferNoStickyOut_uid38_fpToFxPTest(CONSTANT,69)
|
||||
assign rightShiftStage1Idx3Pad12_uid70_rightShiferNoStickyOut_uid38_fpToFxPTest_q = 12'b000000000000;
|
||||
|
||||
// rightShiftStage1Idx3Rng12_uid69_rightShiferNoStickyOut_uid38_fpToFxPTest(BITSELECT,68)@2
|
||||
assign rightShiftStage1Idx3Rng12_uid69_rightShiferNoStickyOut_uid38_fpToFxPTest_b = rightShiftStage0_uid62_rightShiferNoStickyOut_uid38_fpToFxPTest_q[31:12];
|
||||
|
||||
// rightShiftStage1Idx3_uid71_rightShiferNoStickyOut_uid38_fpToFxPTest(BITJOIN,70)@2
|
||||
assign rightShiftStage1Idx3_uid71_rightShiferNoStickyOut_uid38_fpToFxPTest_q = {rightShiftStage1Idx3Pad12_uid70_rightShiferNoStickyOut_uid38_fpToFxPTest_q, rightShiftStage1Idx3Rng12_uid69_rightShiferNoStickyOut_uid38_fpToFxPTest_b};
|
||||
|
||||
// cstAllZWE_uid8_fpToFxPTest(CONSTANT,7)
|
||||
assign cstAllZWE_uid8_fpToFxPTest_q = 8'b00000000;
|
||||
|
||||
// rightShiftStage1Idx2Rng8_uid66_rightShiferNoStickyOut_uid38_fpToFxPTest(BITSELECT,65)@2
|
||||
assign rightShiftStage1Idx2Rng8_uid66_rightShiferNoStickyOut_uid38_fpToFxPTest_b = rightShiftStage0_uid62_rightShiferNoStickyOut_uid38_fpToFxPTest_q[31:8];
|
||||
|
||||
// rightShiftStage1Idx2_uid68_rightShiferNoStickyOut_uid38_fpToFxPTest(BITJOIN,67)@2
|
||||
assign rightShiftStage1Idx2_uid68_rightShiferNoStickyOut_uid38_fpToFxPTest_q = {cstAllZWE_uid8_fpToFxPTest_q, rightShiftStage1Idx2Rng8_uid66_rightShiferNoStickyOut_uid38_fpToFxPTest_b};
|
||||
|
||||
// rightShiftStage1Idx1Pad4_uid64_rightShiferNoStickyOut_uid38_fpToFxPTest(CONSTANT,63)
|
||||
assign rightShiftStage1Idx1Pad4_uid64_rightShiferNoStickyOut_uid38_fpToFxPTest_q = 4'b0000;
|
||||
|
||||
// rightShiftStage1Idx1Rng4_uid63_rightShiferNoStickyOut_uid38_fpToFxPTest(BITSELECT,62)@2
|
||||
assign rightShiftStage1Idx1Rng4_uid63_rightShiferNoStickyOut_uid38_fpToFxPTest_b = rightShiftStage0_uid62_rightShiferNoStickyOut_uid38_fpToFxPTest_q[31:4];
|
||||
|
||||
// rightShiftStage1Idx1_uid65_rightShiferNoStickyOut_uid38_fpToFxPTest(BITJOIN,64)@2
|
||||
assign rightShiftStage1Idx1_uid65_rightShiferNoStickyOut_uid38_fpToFxPTest_q = {rightShiftStage1Idx1Pad4_uid64_rightShiferNoStickyOut_uid38_fpToFxPTest_q, rightShiftStage1Idx1Rng4_uid63_rightShiferNoStickyOut_uid38_fpToFxPTest_b};
|
||||
|
||||
// rightShiftStage0Idx1Pad16_uid57_rightShiferNoStickyOut_uid38_fpToFxPTest(CONSTANT,56)
|
||||
assign rightShiftStage0Idx1Pad16_uid57_rightShiferNoStickyOut_uid38_fpToFxPTest_q = 16'b0000000000000000;
|
||||
|
||||
// rightShiftStage0Idx1Rng16_uid56_rightShiferNoStickyOut_uid38_fpToFxPTest(BITSELECT,55)@2
|
||||
assign rightShiftStage0Idx1Rng16_uid56_rightShiferNoStickyOut_uid38_fpToFxPTest_b = shifterIn_uid37_fpToFxPTest_q[31:16];
|
||||
|
||||
// rightShiftStage0Idx1_uid58_rightShiferNoStickyOut_uid38_fpToFxPTest(BITJOIN,57)@2
|
||||
assign rightShiftStage0Idx1_uid58_rightShiferNoStickyOut_uid38_fpToFxPTest_q = {rightShiftStage0Idx1Pad16_uid57_rightShiferNoStickyOut_uid38_fpToFxPTest_q, rightShiftStage0Idx1Rng16_uid56_rightShiferNoStickyOut_uid38_fpToFxPTest_b};
|
||||
|
||||
// exp_x_uid9_fpToFxPTest(BITSELECT,8)@0
|
||||
assign exp_x_uid9_fpToFxPTest_b = a[30:23];
|
||||
|
||||
// excZ_x_uid11_fpToFxPTest(LOGICAL,10)@0 + 1
|
||||
assign excZ_x_uid11_fpToFxPTest_qi = exp_x_uid9_fpToFxPTest_b == cstAllZWE_uid8_fpToFxPTest_q ? 1'b1 : 1'b0;
|
||||
dspba_delay_ver #( .width(1), .depth(1), .reset_kind("ASYNC") )
|
||||
excZ_x_uid11_fpToFxPTest_delay ( .xin(excZ_x_uid11_fpToFxPTest_qi), .xout(excZ_x_uid11_fpToFxPTest_q), .ena(en[0]), .clk(clk), .aclr(areset) );
|
||||
|
||||
// redist7_excZ_x_uid11_fpToFxPTest_q_2(DELAY,93)
|
||||
dspba_delay_ver #( .width(1), .depth(1), .reset_kind("ASYNC") )
|
||||
redist7_excZ_x_uid11_fpToFxPTest_q_2 ( .xin(excZ_x_uid11_fpToFxPTest_q), .xout(redist7_excZ_x_uid11_fpToFxPTest_q_2_q), .ena(en[0]), .clk(clk), .aclr(areset) );
|
||||
|
||||
// invExcXZ_uid22_fpToFxPTest(LOGICAL,21)@2
|
||||
assign invExcXZ_uid22_fpToFxPTest_q = ~ (redist7_excZ_x_uid11_fpToFxPTest_q_2_q);
|
||||
|
||||
// frac_x_uid10_fpToFxPTest(BITSELECT,9)@0
|
||||
assign frac_x_uid10_fpToFxPTest_b = a[22:0];
|
||||
|
||||
// redist8_frac_x_uid10_fpToFxPTest_b_2(DELAY,94)
|
||||
dspba_delay_ver #( .width(23), .depth(2), .reset_kind("ASYNC") )
|
||||
redist8_frac_x_uid10_fpToFxPTest_b_2 ( .xin(frac_x_uid10_fpToFxPTest_b), .xout(redist8_frac_x_uid10_fpToFxPTest_b_2_q), .ena(en[0]), .clk(clk), .aclr(areset) );
|
||||
|
||||
// oFracX_uid23_fpToFxPTest(BITJOIN,22)@2
|
||||
assign oFracX_uid23_fpToFxPTest_q = {invExcXZ_uid22_fpToFxPTest_q, redist8_frac_x_uid10_fpToFxPTest_b_2_q};
|
||||
|
||||
// shifterIn_uid37_fpToFxPTest(BITJOIN,36)@2
|
||||
assign shifterIn_uid37_fpToFxPTest_q = {oFracX_uid23_fpToFxPTest_q, cstAllZWE_uid8_fpToFxPTest_q};
|
||||
|
||||
// rightShiftStage0_uid62_rightShiferNoStickyOut_uid38_fpToFxPTest(MUX,61)@2
|
||||
assign rightShiftStage0_uid62_rightShiferNoStickyOut_uid38_fpToFxPTest_s = rightShiftStageSel5Dto4_uid61_rightShiferNoStickyOut_uid38_fpToFxPTest_merged_bit_select_b;
|
||||
always @(rightShiftStage0_uid62_rightShiferNoStickyOut_uid38_fpToFxPTest_s or en or shifterIn_uid37_fpToFxPTest_q or rightShiftStage0Idx1_uid58_rightShiferNoStickyOut_uid38_fpToFxPTest_q or maxNegValueU_uid51_fpToFxPTest_q)
|
||||
begin
|
||||
unique case (rightShiftStage0_uid62_rightShiferNoStickyOut_uid38_fpToFxPTest_s)
|
||||
2'b00 : rightShiftStage0_uid62_rightShiferNoStickyOut_uid38_fpToFxPTest_q = shifterIn_uid37_fpToFxPTest_q;
|
||||
2'b01 : rightShiftStage0_uid62_rightShiferNoStickyOut_uid38_fpToFxPTest_q = rightShiftStage0Idx1_uid58_rightShiferNoStickyOut_uid38_fpToFxPTest_q;
|
||||
2'b10 : rightShiftStage0_uid62_rightShiferNoStickyOut_uid38_fpToFxPTest_q = maxNegValueU_uid51_fpToFxPTest_q;
|
||||
2'b11 : rightShiftStage0_uid62_rightShiferNoStickyOut_uid38_fpToFxPTest_q = maxNegValueU_uid51_fpToFxPTest_q;
|
||||
default : rightShiftStage0_uid62_rightShiferNoStickyOut_uid38_fpToFxPTest_q = 32'b0;
|
||||
endcase
|
||||
end
|
||||
|
||||
// rightShiftStage1_uid73_rightShiferNoStickyOut_uid38_fpToFxPTest(MUX,72)@2
|
||||
assign rightShiftStage1_uid73_rightShiferNoStickyOut_uid38_fpToFxPTest_s = rightShiftStageSel5Dto4_uid61_rightShiferNoStickyOut_uid38_fpToFxPTest_merged_bit_select_c;
|
||||
always @(rightShiftStage1_uid73_rightShiferNoStickyOut_uid38_fpToFxPTest_s or en or rightShiftStage0_uid62_rightShiferNoStickyOut_uid38_fpToFxPTest_q or rightShiftStage1Idx1_uid65_rightShiferNoStickyOut_uid38_fpToFxPTest_q or rightShiftStage1Idx2_uid68_rightShiferNoStickyOut_uid38_fpToFxPTest_q or rightShiftStage1Idx3_uid71_rightShiferNoStickyOut_uid38_fpToFxPTest_q)
|
||||
begin
|
||||
unique case (rightShiftStage1_uid73_rightShiferNoStickyOut_uid38_fpToFxPTest_s)
|
||||
2'b00 : rightShiftStage1_uid73_rightShiferNoStickyOut_uid38_fpToFxPTest_q = rightShiftStage0_uid62_rightShiferNoStickyOut_uid38_fpToFxPTest_q;
|
||||
2'b01 : rightShiftStage1_uid73_rightShiferNoStickyOut_uid38_fpToFxPTest_q = rightShiftStage1Idx1_uid65_rightShiferNoStickyOut_uid38_fpToFxPTest_q;
|
||||
2'b10 : rightShiftStage1_uid73_rightShiferNoStickyOut_uid38_fpToFxPTest_q = rightShiftStage1Idx2_uid68_rightShiferNoStickyOut_uid38_fpToFxPTest_q;
|
||||
2'b11 : rightShiftStage1_uid73_rightShiferNoStickyOut_uid38_fpToFxPTest_q = rightShiftStage1Idx3_uid71_rightShiferNoStickyOut_uid38_fpToFxPTest_q;
|
||||
default : rightShiftStage1_uid73_rightShiferNoStickyOut_uid38_fpToFxPTest_q = 32'b0;
|
||||
endcase
|
||||
end
|
||||
|
||||
// maxShiftCst_uid33_fpToFxPTest(CONSTANT,32)
|
||||
assign maxShiftCst_uid33_fpToFxPTest_q = 6'b100000;
|
||||
|
||||
// ovfExpVal_uid30_fpToFxPTest(CONSTANT,29)
|
||||
assign ovfExpVal_uid30_fpToFxPTest_q = 9'b010011101;
|
||||
|
||||
// shiftValE_uid31_fpToFxPTest(SUB,30)@0 + 1
|
||||
assign shiftValE_uid31_fpToFxPTest_a = {{2{ovfExpVal_uid30_fpToFxPTest_q[8]}}, ovfExpVal_uid30_fpToFxPTest_q};
|
||||
assign shiftValE_uid31_fpToFxPTest_b = {3'b000, exp_x_uid9_fpToFxPTest_b};
|
||||
always @ (posedge clk or posedge areset)
|
||||
begin
|
||||
if (areset)
|
||||
begin
|
||||
shiftValE_uid31_fpToFxPTest_o <= 11'b0;
|
||||
end
|
||||
else if (en == 1'b1)
|
||||
begin
|
||||
shiftValE_uid31_fpToFxPTest_o <= $signed(shiftValE_uid31_fpToFxPTest_a) - $signed(shiftValE_uid31_fpToFxPTest_b);
|
||||
end
|
||||
end
|
||||
assign shiftValE_uid31_fpToFxPTest_q = shiftValE_uid31_fpToFxPTest_o[9:0];
|
||||
|
||||
// shiftValRaw_uid32_fpToFxPTest(BITSELECT,31)@1
|
||||
assign shiftValRaw_uid32_fpToFxPTest_in = shiftValE_uid31_fpToFxPTest_q[5:0];
|
||||
assign shiftValRaw_uid32_fpToFxPTest_b = shiftValRaw_uid32_fpToFxPTest_in[5:0];
|
||||
|
||||
// shiftOutOfRange_uid34_fpToFxPTest(COMPARE,33)@1
|
||||
assign shiftOutOfRange_uid34_fpToFxPTest_a = {{2{shiftValE_uid31_fpToFxPTest_q[9]}}, shiftValE_uid31_fpToFxPTest_q};
|
||||
assign shiftOutOfRange_uid34_fpToFxPTest_b = {6'b000000, maxShiftCst_uid33_fpToFxPTest_q};
|
||||
assign shiftOutOfRange_uid34_fpToFxPTest_o = $signed(shiftOutOfRange_uid34_fpToFxPTest_a) - $signed(shiftOutOfRange_uid34_fpToFxPTest_b);
|
||||
assign shiftOutOfRange_uid34_fpToFxPTest_n[0] = ~ (shiftOutOfRange_uid34_fpToFxPTest_o[11]);
|
||||
|
||||
// shiftVal_uid35_fpToFxPTest(MUX,34)@1 + 1
|
||||
assign shiftVal_uid35_fpToFxPTest_s = shiftOutOfRange_uid34_fpToFxPTest_n;
|
||||
always @ (posedge clk or posedge areset)
|
||||
begin
|
||||
if (areset)
|
||||
begin
|
||||
shiftVal_uid35_fpToFxPTest_q <= 6'b0;
|
||||
end
|
||||
else if (en == 1'b1)
|
||||
begin
|
||||
unique case (shiftVal_uid35_fpToFxPTest_s)
|
||||
1'b0 : shiftVal_uid35_fpToFxPTest_q <= shiftValRaw_uid32_fpToFxPTest_b;
|
||||
1'b1 : shiftVal_uid35_fpToFxPTest_q <= maxShiftCst_uid33_fpToFxPTest_q;
|
||||
default : shiftVal_uid35_fpToFxPTest_q <= 6'b0;
|
||||
endcase
|
||||
end
|
||||
end
|
||||
|
||||
// rightShiftStageSel5Dto4_uid61_rightShiferNoStickyOut_uid38_fpToFxPTest_merged_bit_select(BITSELECT,85)@2
|
||||
assign rightShiftStageSel5Dto4_uid61_rightShiferNoStickyOut_uid38_fpToFxPTest_merged_bit_select_b = shiftVal_uid35_fpToFxPTest_q[5:4];
|
||||
assign rightShiftStageSel5Dto4_uid61_rightShiferNoStickyOut_uid38_fpToFxPTest_merged_bit_select_c = shiftVal_uid35_fpToFxPTest_q[3:2];
|
||||
assign rightShiftStageSel5Dto4_uid61_rightShiferNoStickyOut_uid38_fpToFxPTest_merged_bit_select_d = shiftVal_uid35_fpToFxPTest_q[1:0];
|
||||
|
||||
// rightShiftStage2_uid84_rightShiferNoStickyOut_uid38_fpToFxPTest(MUX,83)@2 + 1
|
||||
assign rightShiftStage2_uid84_rightShiferNoStickyOut_uid38_fpToFxPTest_s = rightShiftStageSel5Dto4_uid61_rightShiferNoStickyOut_uid38_fpToFxPTest_merged_bit_select_d;
|
||||
always @ (posedge clk or posedge areset)
|
||||
begin
|
||||
if (areset)
|
||||
begin
|
||||
rightShiftStage2_uid84_rightShiferNoStickyOut_uid38_fpToFxPTest_q <= 32'b0;
|
||||
end
|
||||
else if (en == 1'b1)
|
||||
begin
|
||||
unique case (rightShiftStage2_uid84_rightShiferNoStickyOut_uid38_fpToFxPTest_s)
|
||||
2'b00 : rightShiftStage2_uid84_rightShiferNoStickyOut_uid38_fpToFxPTest_q <= rightShiftStage1_uid73_rightShiferNoStickyOut_uid38_fpToFxPTest_q;
|
||||
2'b01 : rightShiftStage2_uid84_rightShiferNoStickyOut_uid38_fpToFxPTest_q <= rightShiftStage2Idx1_uid76_rightShiferNoStickyOut_uid38_fpToFxPTest_q;
|
||||
2'b10 : rightShiftStage2_uid84_rightShiferNoStickyOut_uid38_fpToFxPTest_q <= rightShiftStage2Idx2_uid79_rightShiferNoStickyOut_uid38_fpToFxPTest_q;
|
||||
2'b11 : rightShiftStage2_uid84_rightShiferNoStickyOut_uid38_fpToFxPTest_q <= rightShiftStage2Idx3_uid82_rightShiferNoStickyOut_uid38_fpToFxPTest_q;
|
||||
default : rightShiftStage2_uid84_rightShiferNoStickyOut_uid38_fpToFxPTest_q <= 32'b0;
|
||||
endcase
|
||||
end
|
||||
end
|
||||
|
||||
// zRightShiferNoStickyOut_uid41_fpToFxPTest(BITJOIN,40)@3
|
||||
assign zRightShiferNoStickyOut_uid41_fpToFxPTest_q = {GND_q, rightShiftStage2_uid84_rightShiferNoStickyOut_uid38_fpToFxPTest_q};
|
||||
|
||||
// xXorSignE_uid42_fpToFxPTest(LOGICAL,41)@3
|
||||
assign xXorSignE_uid42_fpToFxPTest_b = {{32{redist3_signX_uid25_fpToFxPTest_b_3_q[0]}}, redist3_signX_uid25_fpToFxPTest_b_3_q};
|
||||
assign xXorSignE_uid42_fpToFxPTest_q = zRightShiferNoStickyOut_uid41_fpToFxPTest_q ^ xXorSignE_uid42_fpToFxPTest_b;
|
||||
|
||||
// sPostRndFull_uid44_fpToFxPTest(ADD,43)@3 + 1
|
||||
assign sPostRndFull_uid44_fpToFxPTest_a = {{1{xXorSignE_uid42_fpToFxPTest_q[32]}}, xXorSignE_uid42_fpToFxPTest_q};
|
||||
assign sPostRndFull_uid44_fpToFxPTest_b = {{31{d0_uid43_fpToFxPTest_q[2]}}, d0_uid43_fpToFxPTest_q};
|
||||
always @ (posedge clk or posedge areset)
|
||||
begin
|
||||
if (areset)
|
||||
begin
|
||||
sPostRndFull_uid44_fpToFxPTest_o <= 34'b0;
|
||||
end
|
||||
else if (en == 1'b1)
|
||||
begin
|
||||
sPostRndFull_uid44_fpToFxPTest_o <= $signed(sPostRndFull_uid44_fpToFxPTest_a) + $signed(sPostRndFull_uid44_fpToFxPTest_b);
|
||||
end
|
||||
end
|
||||
assign sPostRndFull_uid44_fpToFxPTest_q = sPostRndFull_uid44_fpToFxPTest_o[33:0];
|
||||
|
||||
// sPostRnd_uid45_fpToFxPTest(BITSELECT,44)@4
|
||||
assign sPostRnd_uid45_fpToFxPTest_in = sPostRndFull_uid44_fpToFxPTest_q[32:0];
|
||||
assign sPostRnd_uid45_fpToFxPTest_b = sPostRnd_uid45_fpToFxPTest_in[32:1];
|
||||
|
||||
// redist0_sPostRnd_uid45_fpToFxPTest_b_1(DELAY,86)
|
||||
dspba_delay_ver #( .width(32), .depth(1), .reset_kind("ASYNC") )
|
||||
redist0_sPostRnd_uid45_fpToFxPTest_b_1 ( .xin(sPostRnd_uid45_fpToFxPTest_b), .xout(redist0_sPostRnd_uid45_fpToFxPTest_b_1_q), .ena(en[0]), .clk(clk), .aclr(areset) );
|
||||
|
||||
// redist4_signX_uid25_fpToFxPTest_b_5(DELAY,90)
|
||||
dspba_delay_ver #( .width(1), .depth(2), .reset_kind("ASYNC") )
|
||||
redist4_signX_uid25_fpToFxPTest_b_5 ( .xin(redist3_signX_uid25_fpToFxPTest_b_3_q), .xout(redist4_signX_uid25_fpToFxPTest_b_5_q), .ena(en[0]), .clk(clk), .aclr(areset) );
|
||||
|
||||
// udfExpVal_uid28_fpToFxPTest(CONSTANT,27)
|
||||
assign udfExpVal_uid28_fpToFxPTest_q = 8'b01111101;
|
||||
|
||||
// udf_uid29_fpToFxPTest(COMPARE,28)@0 + 1
|
||||
assign udf_uid29_fpToFxPTest_a = {{3{udfExpVal_uid28_fpToFxPTest_q[7]}}, udfExpVal_uid28_fpToFxPTest_q};
|
||||
assign udf_uid29_fpToFxPTest_b = {3'b000, exp_x_uid9_fpToFxPTest_b};
|
||||
always @ (posedge clk or posedge areset)
|
||||
begin
|
||||
if (areset)
|
||||
begin
|
||||
udf_uid29_fpToFxPTest_o <= 11'b0;
|
||||
end
|
||||
else if (en == 1'b1)
|
||||
begin
|
||||
udf_uid29_fpToFxPTest_o <= $signed(udf_uid29_fpToFxPTest_a) - $signed(udf_uid29_fpToFxPTest_b);
|
||||
end
|
||||
end
|
||||
assign udf_uid29_fpToFxPTest_n[0] = ~ (udf_uid29_fpToFxPTest_o[10]);
|
||||
|
||||
// redist1_udf_uid29_fpToFxPTest_n_5(DELAY,87)
|
||||
dspba_delay_ver #( .width(1), .depth(4), .reset_kind("ASYNC") )
|
||||
redist1_udf_uid29_fpToFxPTest_n_5 ( .xin(udf_uid29_fpToFxPTest_n), .xout(redist1_udf_uid29_fpToFxPTest_n_5_q), .ena(en[0]), .clk(clk), .aclr(areset) );
|
||||
|
||||
// sPostRnd_uid46_fpToFxPTest(BITSELECT,45)@4
|
||||
assign sPostRnd_uid46_fpToFxPTest_in = {{1{sPostRndFull_uid44_fpToFxPTest_q[33]}}, sPostRndFull_uid44_fpToFxPTest_q};
|
||||
assign sPostRnd_uid46_fpToFxPTest_b = sPostRnd_uid46_fpToFxPTest_in[34:1];
|
||||
|
||||
// rndOvfPos_uid47_fpToFxPTest(COMPARE,46)@4
|
||||
assign rndOvfPos_uid47_fpToFxPTest_a = {4'b0000, maxPosValueS_uid39_fpToFxPTest_q};
|
||||
assign rndOvfPos_uid47_fpToFxPTest_b = {{2{sPostRnd_uid46_fpToFxPTest_b[33]}}, sPostRnd_uid46_fpToFxPTest_b};
|
||||
assign rndOvfPos_uid47_fpToFxPTest_o = $signed(rndOvfPos_uid47_fpToFxPTest_a) - $signed(rndOvfPos_uid47_fpToFxPTest_b);
|
||||
assign rndOvfPos_uid47_fpToFxPTest_c[0] = rndOvfPos_uid47_fpToFxPTest_o[35];
|
||||
|
||||
// ovfExpVal_uid26_fpToFxPTest(CONSTANT,25)
|
||||
assign ovfExpVal_uid26_fpToFxPTest_q = 9'b010011110;
|
||||
|
||||
// ovfExpRange_uid27_fpToFxPTest(COMPARE,26)@0 + 1
|
||||
assign ovfExpRange_uid27_fpToFxPTest_a = {3'b000, exp_x_uid9_fpToFxPTest_b};
|
||||
assign ovfExpRange_uid27_fpToFxPTest_b = {{2{ovfExpVal_uid26_fpToFxPTest_q[8]}}, ovfExpVal_uid26_fpToFxPTest_q};
|
||||
always @ (posedge clk or posedge areset)
|
||||
begin
|
||||
if (areset)
|
||||
begin
|
||||
ovfExpRange_uid27_fpToFxPTest_o <= 11'b0;
|
||||
end
|
||||
else if (en == 1'b1)
|
||||
begin
|
||||
ovfExpRange_uid27_fpToFxPTest_o <= $signed(ovfExpRange_uid27_fpToFxPTest_a) - $signed(ovfExpRange_uid27_fpToFxPTest_b);
|
||||
end
|
||||
end
|
||||
assign ovfExpRange_uid27_fpToFxPTest_n[0] = ~ (ovfExpRange_uid27_fpToFxPTest_o[10]);
|
||||
|
||||
// redist2_ovfExpRange_uid27_fpToFxPTest_n_4(DELAY,88)
|
||||
dspba_delay_ver #( .width(1), .depth(3), .reset_kind("ASYNC") )
|
||||
redist2_ovfExpRange_uid27_fpToFxPTest_n_4 ( .xin(ovfExpRange_uid27_fpToFxPTest_n), .xout(redist2_ovfExpRange_uid27_fpToFxPTest_n_4_q), .ena(en[0]), .clk(clk), .aclr(areset) );
|
||||
|
||||
// cstZeroWF_uid7_fpToFxPTest(CONSTANT,6)
|
||||
assign cstZeroWF_uid7_fpToFxPTest_q = 23'b00000000000000000000000;
|
||||
|
||||
// fracXIsZero_uid13_fpToFxPTest(LOGICAL,12)@2 + 1
|
||||
assign fracXIsZero_uid13_fpToFxPTest_qi = cstZeroWF_uid7_fpToFxPTest_q == redist8_frac_x_uid10_fpToFxPTest_b_2_q ? 1'b1 : 1'b0;
|
||||
dspba_delay_ver #( .width(1), .depth(1), .reset_kind("ASYNC") )
|
||||
fracXIsZero_uid13_fpToFxPTest_delay ( .xin(fracXIsZero_uid13_fpToFxPTest_qi), .xout(fracXIsZero_uid13_fpToFxPTest_q), .ena(en[0]), .clk(clk), .aclr(areset) );
|
||||
|
||||
// redist5_fracXIsZero_uid13_fpToFxPTest_q_2(DELAY,91)
|
||||
dspba_delay_ver #( .width(1), .depth(1), .reset_kind("ASYNC") )
|
||||
redist5_fracXIsZero_uid13_fpToFxPTest_q_2 ( .xin(fracXIsZero_uid13_fpToFxPTest_q), .xout(redist5_fracXIsZero_uid13_fpToFxPTest_q_2_q), .ena(en[0]), .clk(clk), .aclr(areset) );
|
||||
|
||||
// cstAllOWE_uid6_fpToFxPTest(CONSTANT,5)
|
||||
assign cstAllOWE_uid6_fpToFxPTest_q = 8'b11111111;
|
||||
|
||||
// expXIsMax_uid12_fpToFxPTest(LOGICAL,11)@0 + 1
|
||||
assign expXIsMax_uid12_fpToFxPTest_qi = exp_x_uid9_fpToFxPTest_b == cstAllOWE_uid6_fpToFxPTest_q ? 1'b1 : 1'b0;
|
||||
dspba_delay_ver #( .width(1), .depth(1), .reset_kind("ASYNC") )
|
||||
expXIsMax_uid12_fpToFxPTest_delay ( .xin(expXIsMax_uid12_fpToFxPTest_qi), .xout(expXIsMax_uid12_fpToFxPTest_q), .ena(en[0]), .clk(clk), .aclr(areset) );
|
||||
|
||||
// redist6_expXIsMax_uid12_fpToFxPTest_q_4(DELAY,92)
|
||||
dspba_delay_ver #( .width(1), .depth(3), .reset_kind("ASYNC") )
|
||||
redist6_expXIsMax_uid12_fpToFxPTest_q_4 ( .xin(expXIsMax_uid12_fpToFxPTest_q), .xout(redist6_expXIsMax_uid12_fpToFxPTest_q_4_q), .ena(en[0]), .clk(clk), .aclr(areset) );
|
||||
|
||||
// excI_x_uid15_fpToFxPTest(LOGICAL,14)@4
|
||||
assign excI_x_uid15_fpToFxPTest_q = redist6_expXIsMax_uid12_fpToFxPTest_q_4_q & redist5_fracXIsZero_uid13_fpToFxPTest_q_2_q;
|
||||
|
||||
// fracXIsNotZero_uid14_fpToFxPTest(LOGICAL,13)@4
|
||||
assign fracXIsNotZero_uid14_fpToFxPTest_q = ~ (redist5_fracXIsZero_uid13_fpToFxPTest_q_2_q);
|
||||
|
||||
// excN_x_uid16_fpToFxPTest(LOGICAL,15)@4
|
||||
assign excN_x_uid16_fpToFxPTest_q = redist6_expXIsMax_uid12_fpToFxPTest_q_4_q & fracXIsNotZero_uid14_fpToFxPTest_q;
|
||||
|
||||
// ovfPostRnd_uid48_fpToFxPTest(LOGICAL,47)@4 + 1
|
||||
assign ovfPostRnd_uid48_fpToFxPTest_qi = excN_x_uid16_fpToFxPTest_q | excI_x_uid15_fpToFxPTest_q | redist2_ovfExpRange_uid27_fpToFxPTest_n_4_q | rndOvfPos_uid47_fpToFxPTest_c;
|
||||
dspba_delay_ver #( .width(1), .depth(1), .reset_kind("ASYNC") )
|
||||
ovfPostRnd_uid48_fpToFxPTest_delay ( .xin(ovfPostRnd_uid48_fpToFxPTest_qi), .xout(ovfPostRnd_uid48_fpToFxPTest_q), .ena(en[0]), .clk(clk), .aclr(areset) );
|
||||
|
||||
// muxSelConc_uid49_fpToFxPTest(BITJOIN,48)@5
|
||||
assign muxSelConc_uid49_fpToFxPTest_q = {redist4_signX_uid25_fpToFxPTest_b_5_q, redist1_udf_uid29_fpToFxPTest_n_5_q, ovfPostRnd_uid48_fpToFxPTest_q};
|
||||
|
||||
// muxSel_uid50_fpToFxPTest(LOOKUP,49)@5
|
||||
always @(muxSelConc_uid49_fpToFxPTest_q)
|
||||
begin
|
||||
// Begin reserved scope level
|
||||
unique case (muxSelConc_uid49_fpToFxPTest_q)
|
||||
3'b000 : muxSel_uid50_fpToFxPTest_q = 2'b00;
|
||||
3'b001 : muxSel_uid50_fpToFxPTest_q = 2'b01;
|
||||
3'b010 : muxSel_uid50_fpToFxPTest_q = 2'b11;
|
||||
3'b011 : muxSel_uid50_fpToFxPTest_q = 2'b11;
|
||||
3'b100 : muxSel_uid50_fpToFxPTest_q = 2'b00;
|
||||
3'b101 : muxSel_uid50_fpToFxPTest_q = 2'b10;
|
||||
3'b110 : muxSel_uid50_fpToFxPTest_q = 2'b11;
|
||||
3'b111 : muxSel_uid50_fpToFxPTest_q = 2'b11;
|
||||
default : begin
|
||||
// unreachable
|
||||
muxSel_uid50_fpToFxPTest_q = 2'bxx;
|
||||
end
|
||||
endcase
|
||||
// End reserved scope level
|
||||
end
|
||||
|
||||
// finalOut_uid52_fpToFxPTest(MUX,51)@5
|
||||
assign finalOut_uid52_fpToFxPTest_s = muxSel_uid50_fpToFxPTest_q;
|
||||
always @(finalOut_uid52_fpToFxPTest_s or en or redist0_sPostRnd_uid45_fpToFxPTest_b_1_q or maxPosValueS_uid39_fpToFxPTest_q or maxNegValueS_uid40_fpToFxPTest_q or maxNegValueU_uid51_fpToFxPTest_q)
|
||||
begin
|
||||
unique case (finalOut_uid52_fpToFxPTest_s)
|
||||
2'b00 : finalOut_uid52_fpToFxPTest_q = redist0_sPostRnd_uid45_fpToFxPTest_b_1_q;
|
||||
2'b01 : finalOut_uid52_fpToFxPTest_q = maxPosValueS_uid39_fpToFxPTest_q;
|
||||
2'b10 : finalOut_uid52_fpToFxPTest_q = maxNegValueS_uid40_fpToFxPTest_q;
|
||||
2'b11 : finalOut_uid52_fpToFxPTest_q = maxNegValueU_uid51_fpToFxPTest_q;
|
||||
default : finalOut_uid52_fpToFxPTest_q = 32'b0;
|
||||
endcase
|
||||
end
|
||||
|
||||
// xOut(GPOUT,4)@5
|
||||
assign q = finalOut_uid52_fpToFxPTest_q;
|
||||
|
||||
endmodule
|
503
hw/rtl/fp_cores/altera/acl_fp_ftou.sv
Normal file
503
hw/rtl/fp_cores/altera/acl_fp_ftou.sv
Normal file
|
@ -0,0 +1,503 @@
|
|||
// -------------------------------------------------------------------------
|
||||
// High Level Design Compiler for Intel(R) FPGAs Version 17.1 (Release Build #273)
|
||||
// Quartus Prime development tool and MATLAB/Simulink Interface
|
||||
//
|
||||
// Legal Notice: Copyright 2017 Intel Corporation. All rights reserved.
|
||||
// Your use of Intel Corporation's design tools, logic functions and other
|
||||
// software and tools, and its AMPP partner logic functions, and any output
|
||||
// files any of the foregoing (including device programming or simulation
|
||||
// files), and any associated documentation or information are expressly
|
||||
// subject to the terms and conditions of the Intel FPGA Software License
|
||||
// Agreement, Intel MegaCore Function License Agreement, or other applicable
|
||||
// license agreement, including, without limitation, that your use is for
|
||||
// the sole purpose of programming logic devices manufactured by Intel
|
||||
// and sold by Intel or its authorized distributors. Please refer to the
|
||||
// applicable agreement for further details.
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
// SystemVerilog created from acl_fp_ftou
|
||||
// SystemVerilog created on Wed Aug 5 12:58:15 2020
|
||||
|
||||
|
||||
(* altera_attribute = "-name AUTO_SHIFT_REGISTER_RECOGNITION OFF; -name MESSAGE_DISABLE 10036; -name MESSAGE_DISABLE 10037; -name MESSAGE_DISABLE 14130; -name MESSAGE_DISABLE 14320; -name MESSAGE_DISABLE 15400; -name MESSAGE_DISABLE 14130; -name MESSAGE_DISABLE 10036; -name MESSAGE_DISABLE 12020; -name MESSAGE_DISABLE 12030; -name MESSAGE_DISABLE 12010; -name MESSAGE_DISABLE 12110; -name MESSAGE_DISABLE 14320; -name MESSAGE_DISABLE 13410; -name MESSAGE_DISABLE 113007; -name MESSAGE_DISABLE 10958" *)
|
||||
module acl_fp_ftou (
|
||||
input wire [31:0] a,
|
||||
input wire [0:0] en,
|
||||
output wire [31:0] q,
|
||||
input wire clk,
|
||||
input wire areset
|
||||
);
|
||||
|
||||
wire [0:0] GND_q;
|
||||
wire [0:0] VCC_q;
|
||||
wire [7:0] cstAllOWE_uid6_fpToFxPTest_q;
|
||||
wire [22:0] cstZeroWF_uid7_fpToFxPTest_q;
|
||||
wire [7:0] cstAllZWE_uid8_fpToFxPTest_q;
|
||||
wire [7:0] exp_x_uid9_fpToFxPTest_b;
|
||||
wire [22:0] frac_x_uid10_fpToFxPTest_b;
|
||||
wire [0:0] excZ_x_uid11_fpToFxPTest_qi;
|
||||
reg [0:0] excZ_x_uid11_fpToFxPTest_q;
|
||||
wire [0:0] expXIsMax_uid12_fpToFxPTest_qi;
|
||||
reg [0:0] expXIsMax_uid12_fpToFxPTest_q;
|
||||
wire [0:0] fracXIsZero_uid13_fpToFxPTest_qi;
|
||||
reg [0:0] fracXIsZero_uid13_fpToFxPTest_q;
|
||||
wire [0:0] fracXIsNotZero_uid14_fpToFxPTest_q;
|
||||
wire [0:0] excI_x_uid15_fpToFxPTest_q;
|
||||
wire [0:0] excN_x_uid16_fpToFxPTest_q;
|
||||
wire [0:0] invExcXZ_uid22_fpToFxPTest_q;
|
||||
wire [23:0] oFracX_uid23_fpToFxPTest_q;
|
||||
wire [0:0] signX_uid25_fpToFxPTest_b;
|
||||
wire [8:0] ovfExpVal_uid26_fpToFxPTest_q;
|
||||
wire [10:0] ovf_uid27_fpToFxPTest_a;
|
||||
wire [10:0] ovf_uid27_fpToFxPTest_b;
|
||||
logic [10:0] ovf_uid27_fpToFxPTest_o;
|
||||
wire [0:0] ovf_uid27_fpToFxPTest_n;
|
||||
wire [0:0] negOrOvf_uid28_fpToFxPTest_q;
|
||||
wire [7:0] udfExpVal_uid29_fpToFxPTest_q;
|
||||
wire [10:0] udf_uid30_fpToFxPTest_a;
|
||||
wire [10:0] udf_uid30_fpToFxPTest_b;
|
||||
logic [10:0] udf_uid30_fpToFxPTest_o;
|
||||
wire [0:0] udf_uid30_fpToFxPTest_n;
|
||||
wire [8:0] ovfExpVal_uid31_fpToFxPTest_q;
|
||||
wire [10:0] shiftValE_uid32_fpToFxPTest_a;
|
||||
wire [10:0] shiftValE_uid32_fpToFxPTest_b;
|
||||
logic [10:0] shiftValE_uid32_fpToFxPTest_o;
|
||||
wire [9:0] shiftValE_uid32_fpToFxPTest_q;
|
||||
wire [5:0] shiftValRaw_uid33_fpToFxPTest_in;
|
||||
wire [5:0] shiftValRaw_uid33_fpToFxPTest_b;
|
||||
wire [5:0] maxShiftCst_uid34_fpToFxPTest_q;
|
||||
wire [11:0] shiftOutOfRange_uid35_fpToFxPTest_a;
|
||||
wire [11:0] shiftOutOfRange_uid35_fpToFxPTest_b;
|
||||
logic [11:0] shiftOutOfRange_uid35_fpToFxPTest_o;
|
||||
wire [0:0] shiftOutOfRange_uid35_fpToFxPTest_n;
|
||||
wire [0:0] shiftVal_uid36_fpToFxPTest_s;
|
||||
reg [5:0] shiftVal_uid36_fpToFxPTest_q;
|
||||
wire [8:0] zPadd_uid37_fpToFxPTest_q;
|
||||
wire [32:0] shifterIn_uid38_fpToFxPTest_q;
|
||||
wire [31:0] maxPosValueU_uid40_fpToFxPTest_q;
|
||||
wire [31:0] maxNegValueU_uid41_fpToFxPTest_q;
|
||||
wire [33:0] zRightShiferNoStickyOut_uid43_fpToFxPTest_q;
|
||||
wire [34:0] sPostRndFull_uid44_fpToFxPTest_a;
|
||||
wire [34:0] sPostRndFull_uid44_fpToFxPTest_b;
|
||||
logic [34:0] sPostRndFull_uid44_fpToFxPTest_o;
|
||||
wire [34:0] sPostRndFull_uid44_fpToFxPTest_q;
|
||||
wire [32:0] sPostRnd_uid45_fpToFxPTest_in;
|
||||
wire [31:0] sPostRnd_uid45_fpToFxPTest_b;
|
||||
wire [33:0] sPostRndFullMSBU_uid46_fpToFxPTest_in;
|
||||
wire [0:0] sPostRndFullMSBU_uid46_fpToFxPTest_b;
|
||||
wire [0:0] ovfPostRnd_uid47_fpToFxPTest_qi;
|
||||
reg [0:0] ovfPostRnd_uid47_fpToFxPTest_q;
|
||||
wire [2:0] muxSelConc_uid48_fpToFxPTest_q;
|
||||
reg [1:0] muxSel_uid49_fpToFxPTest_q;
|
||||
wire [1:0] finalOut_uid51_fpToFxPTest_s;
|
||||
reg [31:0] finalOut_uid51_fpToFxPTest_q;
|
||||
wire [16:0] rightShiftStage0Idx1Rng16_uid55_rightShiferNoStickyOut_uid39_fpToFxPTest_b;
|
||||
wire [15:0] rightShiftStage0Idx1Pad16_uid56_rightShiferNoStickyOut_uid39_fpToFxPTest_q;
|
||||
wire [32:0] rightShiftStage0Idx1_uid57_rightShiferNoStickyOut_uid39_fpToFxPTest_q;
|
||||
wire [0:0] rightShiftStage0Idx2Rng32_uid58_rightShiferNoStickyOut_uid39_fpToFxPTest_b;
|
||||
wire [32:0] rightShiftStage0Idx2_uid60_rightShiferNoStickyOut_uid39_fpToFxPTest_q;
|
||||
wire [32:0] rightShiftStage0Idx3_uid61_rightShiferNoStickyOut_uid39_fpToFxPTest_q;
|
||||
wire [1:0] rightShiftStage0_uid63_rightShiferNoStickyOut_uid39_fpToFxPTest_s;
|
||||
reg [32:0] rightShiftStage0_uid63_rightShiferNoStickyOut_uid39_fpToFxPTest_q;
|
||||
wire [28:0] rightShiftStage1Idx1Rng4_uid64_rightShiferNoStickyOut_uid39_fpToFxPTest_b;
|
||||
wire [3:0] rightShiftStage1Idx1Pad4_uid65_rightShiferNoStickyOut_uid39_fpToFxPTest_q;
|
||||
wire [32:0] rightShiftStage1Idx1_uid66_rightShiferNoStickyOut_uid39_fpToFxPTest_q;
|
||||
wire [24:0] rightShiftStage1Idx2Rng8_uid67_rightShiferNoStickyOut_uid39_fpToFxPTest_b;
|
||||
wire [32:0] rightShiftStage1Idx2_uid69_rightShiferNoStickyOut_uid39_fpToFxPTest_q;
|
||||
wire [20:0] rightShiftStage1Idx3Rng12_uid70_rightShiferNoStickyOut_uid39_fpToFxPTest_b;
|
||||
wire [11:0] rightShiftStage1Idx3Pad12_uid71_rightShiferNoStickyOut_uid39_fpToFxPTest_q;
|
||||
wire [32:0] rightShiftStage1Idx3_uid72_rightShiferNoStickyOut_uid39_fpToFxPTest_q;
|
||||
wire [1:0] rightShiftStage1_uid74_rightShiferNoStickyOut_uid39_fpToFxPTest_s;
|
||||
reg [32:0] rightShiftStage1_uid74_rightShiferNoStickyOut_uid39_fpToFxPTest_q;
|
||||
wire [31:0] rightShiftStage2Idx1Rng1_uid75_rightShiferNoStickyOut_uid39_fpToFxPTest_b;
|
||||
wire [32:0] rightShiftStage2Idx1_uid77_rightShiferNoStickyOut_uid39_fpToFxPTest_q;
|
||||
wire [30:0] rightShiftStage2Idx2Rng2_uid78_rightShiferNoStickyOut_uid39_fpToFxPTest_b;
|
||||
wire [1:0] rightShiftStage2Idx2Pad2_uid79_rightShiferNoStickyOut_uid39_fpToFxPTest_q;
|
||||
wire [32:0] rightShiftStage2Idx2_uid80_rightShiferNoStickyOut_uid39_fpToFxPTest_q;
|
||||
wire [29:0] rightShiftStage2Idx3Rng3_uid81_rightShiferNoStickyOut_uid39_fpToFxPTest_b;
|
||||
wire [2:0] rightShiftStage2Idx3Pad3_uid82_rightShiferNoStickyOut_uid39_fpToFxPTest_q;
|
||||
wire [32:0] rightShiftStage2Idx3_uid83_rightShiferNoStickyOut_uid39_fpToFxPTest_q;
|
||||
wire [1:0] rightShiftStage2_uid85_rightShiferNoStickyOut_uid39_fpToFxPTest_s;
|
||||
reg [32:0] rightShiftStage2_uid85_rightShiferNoStickyOut_uid39_fpToFxPTest_q;
|
||||
wire [1:0] rightShiftStageSel5Dto4_uid62_rightShiferNoStickyOut_uid39_fpToFxPTest_merged_bit_select_b;
|
||||
wire [1:0] rightShiftStageSel5Dto4_uid62_rightShiferNoStickyOut_uid39_fpToFxPTest_merged_bit_select_c;
|
||||
wire [1:0] rightShiftStageSel5Dto4_uid62_rightShiferNoStickyOut_uid39_fpToFxPTest_merged_bit_select_d;
|
||||
reg [31:0] redist0_sPostRnd_uid45_fpToFxPTest_b_1_q;
|
||||
reg [0:0] redist1_udf_uid30_fpToFxPTest_n_4_q;
|
||||
reg [0:0] redist2_ovf_uid27_fpToFxPTest_n_3_q;
|
||||
reg [0:0] redist3_signX_uid25_fpToFxPTest_b_3_q;
|
||||
reg [0:0] redist4_signX_uid25_fpToFxPTest_b_4_q;
|
||||
reg [0:0] redist5_expXIsMax_uid12_fpToFxPTest_q_3_q;
|
||||
reg [0:0] redist6_excZ_x_uid11_fpToFxPTest_q_2_q;
|
||||
reg [22:0] redist7_frac_x_uid10_fpToFxPTest_b_2_q;
|
||||
|
||||
|
||||
// maxNegValueU_uid41_fpToFxPTest(CONSTANT,40)
|
||||
assign maxNegValueU_uid41_fpToFxPTest_q = 32'b00000000000000000000000000000000;
|
||||
|
||||
// maxPosValueU_uid40_fpToFxPTest(CONSTANT,39)
|
||||
assign maxPosValueU_uid40_fpToFxPTest_q = 32'b11111111111111111111111111111111;
|
||||
|
||||
// VCC(CONSTANT,1)
|
||||
assign VCC_q = 1'b1;
|
||||
|
||||
// GND(CONSTANT,0)
|
||||
assign GND_q = 1'b0;
|
||||
|
||||
// rightShiftStage2Idx3Pad3_uid82_rightShiferNoStickyOut_uid39_fpToFxPTest(CONSTANT,81)
|
||||
assign rightShiftStage2Idx3Pad3_uid82_rightShiferNoStickyOut_uid39_fpToFxPTest_q = 3'b000;
|
||||
|
||||
// rightShiftStage2Idx3Rng3_uid81_rightShiferNoStickyOut_uid39_fpToFxPTest(BITSELECT,80)@2
|
||||
assign rightShiftStage2Idx3Rng3_uid81_rightShiferNoStickyOut_uid39_fpToFxPTest_b = rightShiftStage1_uid74_rightShiferNoStickyOut_uid39_fpToFxPTest_q[32:3];
|
||||
|
||||
// rightShiftStage2Idx3_uid83_rightShiferNoStickyOut_uid39_fpToFxPTest(BITJOIN,82)@2
|
||||
assign rightShiftStage2Idx3_uid83_rightShiferNoStickyOut_uid39_fpToFxPTest_q = {rightShiftStage2Idx3Pad3_uid82_rightShiferNoStickyOut_uid39_fpToFxPTest_q, rightShiftStage2Idx3Rng3_uid81_rightShiferNoStickyOut_uid39_fpToFxPTest_b};
|
||||
|
||||
// rightShiftStage2Idx2Pad2_uid79_rightShiferNoStickyOut_uid39_fpToFxPTest(CONSTANT,78)
|
||||
assign rightShiftStage2Idx2Pad2_uid79_rightShiferNoStickyOut_uid39_fpToFxPTest_q = 2'b00;
|
||||
|
||||
// rightShiftStage2Idx2Rng2_uid78_rightShiferNoStickyOut_uid39_fpToFxPTest(BITSELECT,77)@2
|
||||
assign rightShiftStage2Idx2Rng2_uid78_rightShiferNoStickyOut_uid39_fpToFxPTest_b = rightShiftStage1_uid74_rightShiferNoStickyOut_uid39_fpToFxPTest_q[32:2];
|
||||
|
||||
// rightShiftStage2Idx2_uid80_rightShiferNoStickyOut_uid39_fpToFxPTest(BITJOIN,79)@2
|
||||
assign rightShiftStage2Idx2_uid80_rightShiferNoStickyOut_uid39_fpToFxPTest_q = {rightShiftStage2Idx2Pad2_uid79_rightShiferNoStickyOut_uid39_fpToFxPTest_q, rightShiftStage2Idx2Rng2_uid78_rightShiferNoStickyOut_uid39_fpToFxPTest_b};
|
||||
|
||||
// rightShiftStage2Idx1Rng1_uid75_rightShiferNoStickyOut_uid39_fpToFxPTest(BITSELECT,74)@2
|
||||
assign rightShiftStage2Idx1Rng1_uid75_rightShiferNoStickyOut_uid39_fpToFxPTest_b = rightShiftStage1_uid74_rightShiferNoStickyOut_uid39_fpToFxPTest_q[32:1];
|
||||
|
||||
// rightShiftStage2Idx1_uid77_rightShiferNoStickyOut_uid39_fpToFxPTest(BITJOIN,76)@2
|
||||
assign rightShiftStage2Idx1_uid77_rightShiferNoStickyOut_uid39_fpToFxPTest_q = {GND_q, rightShiftStage2Idx1Rng1_uid75_rightShiferNoStickyOut_uid39_fpToFxPTest_b};
|
||||
|
||||
// rightShiftStage1Idx3Pad12_uid71_rightShiferNoStickyOut_uid39_fpToFxPTest(CONSTANT,70)
|
||||
assign rightShiftStage1Idx3Pad12_uid71_rightShiferNoStickyOut_uid39_fpToFxPTest_q = 12'b000000000000;
|
||||
|
||||
// rightShiftStage1Idx3Rng12_uid70_rightShiferNoStickyOut_uid39_fpToFxPTest(BITSELECT,69)@2
|
||||
assign rightShiftStage1Idx3Rng12_uid70_rightShiferNoStickyOut_uid39_fpToFxPTest_b = rightShiftStage0_uid63_rightShiferNoStickyOut_uid39_fpToFxPTest_q[32:12];
|
||||
|
||||
// rightShiftStage1Idx3_uid72_rightShiferNoStickyOut_uid39_fpToFxPTest(BITJOIN,71)@2
|
||||
assign rightShiftStage1Idx3_uid72_rightShiferNoStickyOut_uid39_fpToFxPTest_q = {rightShiftStage1Idx3Pad12_uid71_rightShiferNoStickyOut_uid39_fpToFxPTest_q, rightShiftStage1Idx3Rng12_uid70_rightShiferNoStickyOut_uid39_fpToFxPTest_b};
|
||||
|
||||
// cstAllZWE_uid8_fpToFxPTest(CONSTANT,7)
|
||||
assign cstAllZWE_uid8_fpToFxPTest_q = 8'b00000000;
|
||||
|
||||
// rightShiftStage1Idx2Rng8_uid67_rightShiferNoStickyOut_uid39_fpToFxPTest(BITSELECT,66)@2
|
||||
assign rightShiftStage1Idx2Rng8_uid67_rightShiferNoStickyOut_uid39_fpToFxPTest_b = rightShiftStage0_uid63_rightShiferNoStickyOut_uid39_fpToFxPTest_q[32:8];
|
||||
|
||||
// rightShiftStage1Idx2_uid69_rightShiferNoStickyOut_uid39_fpToFxPTest(BITJOIN,68)@2
|
||||
assign rightShiftStage1Idx2_uid69_rightShiferNoStickyOut_uid39_fpToFxPTest_q = {cstAllZWE_uid8_fpToFxPTest_q, rightShiftStage1Idx2Rng8_uid67_rightShiferNoStickyOut_uid39_fpToFxPTest_b};
|
||||
|
||||
// rightShiftStage1Idx1Pad4_uid65_rightShiferNoStickyOut_uid39_fpToFxPTest(CONSTANT,64)
|
||||
assign rightShiftStage1Idx1Pad4_uid65_rightShiferNoStickyOut_uid39_fpToFxPTest_q = 4'b0000;
|
||||
|
||||
// rightShiftStage1Idx1Rng4_uid64_rightShiferNoStickyOut_uid39_fpToFxPTest(BITSELECT,63)@2
|
||||
assign rightShiftStage1Idx1Rng4_uid64_rightShiferNoStickyOut_uid39_fpToFxPTest_b = rightShiftStage0_uid63_rightShiferNoStickyOut_uid39_fpToFxPTest_q[32:4];
|
||||
|
||||
// rightShiftStage1Idx1_uid66_rightShiferNoStickyOut_uid39_fpToFxPTest(BITJOIN,65)@2
|
||||
assign rightShiftStage1Idx1_uid66_rightShiferNoStickyOut_uid39_fpToFxPTest_q = {rightShiftStage1Idx1Pad4_uid65_rightShiferNoStickyOut_uid39_fpToFxPTest_q, rightShiftStage1Idx1Rng4_uid64_rightShiferNoStickyOut_uid39_fpToFxPTest_b};
|
||||
|
||||
// rightShiftStage0Idx3_uid61_rightShiferNoStickyOut_uid39_fpToFxPTest(CONSTANT,60)
|
||||
assign rightShiftStage0Idx3_uid61_rightShiferNoStickyOut_uid39_fpToFxPTest_q = 33'b000000000000000000000000000000000;
|
||||
|
||||
// rightShiftStage0Idx2Rng32_uid58_rightShiferNoStickyOut_uid39_fpToFxPTest(BITSELECT,57)@2
|
||||
assign rightShiftStage0Idx2Rng32_uid58_rightShiferNoStickyOut_uid39_fpToFxPTest_b = shifterIn_uid38_fpToFxPTest_q[32:32];
|
||||
|
||||
// rightShiftStage0Idx2_uid60_rightShiferNoStickyOut_uid39_fpToFxPTest(BITJOIN,59)@2
|
||||
assign rightShiftStage0Idx2_uid60_rightShiferNoStickyOut_uid39_fpToFxPTest_q = {maxNegValueU_uid41_fpToFxPTest_q, rightShiftStage0Idx2Rng32_uid58_rightShiferNoStickyOut_uid39_fpToFxPTest_b};
|
||||
|
||||
// rightShiftStage0Idx1Pad16_uid56_rightShiferNoStickyOut_uid39_fpToFxPTest(CONSTANT,55)
|
||||
assign rightShiftStage0Idx1Pad16_uid56_rightShiferNoStickyOut_uid39_fpToFxPTest_q = 16'b0000000000000000;
|
||||
|
||||
// rightShiftStage0Idx1Rng16_uid55_rightShiferNoStickyOut_uid39_fpToFxPTest(BITSELECT,54)@2
|
||||
assign rightShiftStage0Idx1Rng16_uid55_rightShiferNoStickyOut_uid39_fpToFxPTest_b = shifterIn_uid38_fpToFxPTest_q[32:16];
|
||||
|
||||
// rightShiftStage0Idx1_uid57_rightShiferNoStickyOut_uid39_fpToFxPTest(BITJOIN,56)@2
|
||||
assign rightShiftStage0Idx1_uid57_rightShiferNoStickyOut_uid39_fpToFxPTest_q = {rightShiftStage0Idx1Pad16_uid56_rightShiferNoStickyOut_uid39_fpToFxPTest_q, rightShiftStage0Idx1Rng16_uid55_rightShiferNoStickyOut_uid39_fpToFxPTest_b};
|
||||
|
||||
// exp_x_uid9_fpToFxPTest(BITSELECT,8)@0
|
||||
assign exp_x_uid9_fpToFxPTest_b = a[30:23];
|
||||
|
||||
// excZ_x_uid11_fpToFxPTest(LOGICAL,10)@0 + 1
|
||||
assign excZ_x_uid11_fpToFxPTest_qi = exp_x_uid9_fpToFxPTest_b == cstAllZWE_uid8_fpToFxPTest_q ? 1'b1 : 1'b0;
|
||||
dspba_delay_ver #( .width(1), .depth(1), .reset_kind("ASYNC") )
|
||||
excZ_x_uid11_fpToFxPTest_delay ( .xin(excZ_x_uid11_fpToFxPTest_qi), .xout(excZ_x_uid11_fpToFxPTest_q), .ena(en[0]), .clk(clk), .aclr(areset) );
|
||||
|
||||
// redist6_excZ_x_uid11_fpToFxPTest_q_2(DELAY,93)
|
||||
dspba_delay_ver #( .width(1), .depth(1), .reset_kind("ASYNC") )
|
||||
redist6_excZ_x_uid11_fpToFxPTest_q_2 ( .xin(excZ_x_uid11_fpToFxPTest_q), .xout(redist6_excZ_x_uid11_fpToFxPTest_q_2_q), .ena(en[0]), .clk(clk), .aclr(areset) );
|
||||
|
||||
// invExcXZ_uid22_fpToFxPTest(LOGICAL,21)@2
|
||||
assign invExcXZ_uid22_fpToFxPTest_q = ~ (redist6_excZ_x_uid11_fpToFxPTest_q_2_q);
|
||||
|
||||
// frac_x_uid10_fpToFxPTest(BITSELECT,9)@0
|
||||
assign frac_x_uid10_fpToFxPTest_b = a[22:0];
|
||||
|
||||
// redist7_frac_x_uid10_fpToFxPTest_b_2(DELAY,94)
|
||||
dspba_delay_ver #( .width(23), .depth(2), .reset_kind("ASYNC") )
|
||||
redist7_frac_x_uid10_fpToFxPTest_b_2 ( .xin(frac_x_uid10_fpToFxPTest_b), .xout(redist7_frac_x_uid10_fpToFxPTest_b_2_q), .ena(en[0]), .clk(clk), .aclr(areset) );
|
||||
|
||||
// oFracX_uid23_fpToFxPTest(BITJOIN,22)@2
|
||||
assign oFracX_uid23_fpToFxPTest_q = {invExcXZ_uid22_fpToFxPTest_q, redist7_frac_x_uid10_fpToFxPTest_b_2_q};
|
||||
|
||||
// zPadd_uid37_fpToFxPTest(CONSTANT,36)
|
||||
assign zPadd_uid37_fpToFxPTest_q = 9'b000000000;
|
||||
|
||||
// shifterIn_uid38_fpToFxPTest(BITJOIN,37)@2
|
||||
assign shifterIn_uid38_fpToFxPTest_q = {oFracX_uid23_fpToFxPTest_q, zPadd_uid37_fpToFxPTest_q};
|
||||
|
||||
// rightShiftStage0_uid63_rightShiferNoStickyOut_uid39_fpToFxPTest(MUX,62)@2
|
||||
assign rightShiftStage0_uid63_rightShiferNoStickyOut_uid39_fpToFxPTest_s = rightShiftStageSel5Dto4_uid62_rightShiferNoStickyOut_uid39_fpToFxPTest_merged_bit_select_b;
|
||||
always @(rightShiftStage0_uid63_rightShiferNoStickyOut_uid39_fpToFxPTest_s or en or shifterIn_uid38_fpToFxPTest_q or rightShiftStage0Idx1_uid57_rightShiferNoStickyOut_uid39_fpToFxPTest_q or rightShiftStage0Idx2_uid60_rightShiferNoStickyOut_uid39_fpToFxPTest_q or rightShiftStage0Idx3_uid61_rightShiferNoStickyOut_uid39_fpToFxPTest_q)
|
||||
begin
|
||||
unique case (rightShiftStage0_uid63_rightShiferNoStickyOut_uid39_fpToFxPTest_s)
|
||||
2'b00 : rightShiftStage0_uid63_rightShiferNoStickyOut_uid39_fpToFxPTest_q = shifterIn_uid38_fpToFxPTest_q;
|
||||
2'b01 : rightShiftStage0_uid63_rightShiferNoStickyOut_uid39_fpToFxPTest_q = rightShiftStage0Idx1_uid57_rightShiferNoStickyOut_uid39_fpToFxPTest_q;
|
||||
2'b10 : rightShiftStage0_uid63_rightShiferNoStickyOut_uid39_fpToFxPTest_q = rightShiftStage0Idx2_uid60_rightShiferNoStickyOut_uid39_fpToFxPTest_q;
|
||||
2'b11 : rightShiftStage0_uid63_rightShiferNoStickyOut_uid39_fpToFxPTest_q = rightShiftStage0Idx3_uid61_rightShiferNoStickyOut_uid39_fpToFxPTest_q;
|
||||
default : rightShiftStage0_uid63_rightShiferNoStickyOut_uid39_fpToFxPTest_q = 33'b0;
|
||||
endcase
|
||||
end
|
||||
|
||||
// rightShiftStage1_uid74_rightShiferNoStickyOut_uid39_fpToFxPTest(MUX,73)@2
|
||||
assign rightShiftStage1_uid74_rightShiferNoStickyOut_uid39_fpToFxPTest_s = rightShiftStageSel5Dto4_uid62_rightShiferNoStickyOut_uid39_fpToFxPTest_merged_bit_select_c;
|
||||
always @(rightShiftStage1_uid74_rightShiferNoStickyOut_uid39_fpToFxPTest_s or en or rightShiftStage0_uid63_rightShiferNoStickyOut_uid39_fpToFxPTest_q or rightShiftStage1Idx1_uid66_rightShiferNoStickyOut_uid39_fpToFxPTest_q or rightShiftStage1Idx2_uid69_rightShiferNoStickyOut_uid39_fpToFxPTest_q or rightShiftStage1Idx3_uid72_rightShiferNoStickyOut_uid39_fpToFxPTest_q)
|
||||
begin
|
||||
unique case (rightShiftStage1_uid74_rightShiferNoStickyOut_uid39_fpToFxPTest_s)
|
||||
2'b00 : rightShiftStage1_uid74_rightShiferNoStickyOut_uid39_fpToFxPTest_q = rightShiftStage0_uid63_rightShiferNoStickyOut_uid39_fpToFxPTest_q;
|
||||
2'b01 : rightShiftStage1_uid74_rightShiferNoStickyOut_uid39_fpToFxPTest_q = rightShiftStage1Idx1_uid66_rightShiferNoStickyOut_uid39_fpToFxPTest_q;
|
||||
2'b10 : rightShiftStage1_uid74_rightShiferNoStickyOut_uid39_fpToFxPTest_q = rightShiftStage1Idx2_uid69_rightShiferNoStickyOut_uid39_fpToFxPTest_q;
|
||||
2'b11 : rightShiftStage1_uid74_rightShiferNoStickyOut_uid39_fpToFxPTest_q = rightShiftStage1Idx3_uid72_rightShiferNoStickyOut_uid39_fpToFxPTest_q;
|
||||
default : rightShiftStage1_uid74_rightShiferNoStickyOut_uid39_fpToFxPTest_q = 33'b0;
|
||||
endcase
|
||||
end
|
||||
|
||||
// maxShiftCst_uid34_fpToFxPTest(CONSTANT,33)
|
||||
assign maxShiftCst_uid34_fpToFxPTest_q = 6'b100001;
|
||||
|
||||
// ovfExpVal_uid31_fpToFxPTest(CONSTANT,30)
|
||||
assign ovfExpVal_uid31_fpToFxPTest_q = 9'b010011110;
|
||||
|
||||
// shiftValE_uid32_fpToFxPTest(SUB,31)@0 + 1
|
||||
assign shiftValE_uid32_fpToFxPTest_a = {{2{ovfExpVal_uid31_fpToFxPTest_q[8]}}, ovfExpVal_uid31_fpToFxPTest_q};
|
||||
assign shiftValE_uid32_fpToFxPTest_b = {3'b000, exp_x_uid9_fpToFxPTest_b};
|
||||
always @ (posedge clk or posedge areset)
|
||||
begin
|
||||
if (areset)
|
||||
begin
|
||||
shiftValE_uid32_fpToFxPTest_o <= 11'b0;
|
||||
end
|
||||
else if (en == 1'b1)
|
||||
begin
|
||||
shiftValE_uid32_fpToFxPTest_o <= $signed(shiftValE_uid32_fpToFxPTest_a) - $signed(shiftValE_uid32_fpToFxPTest_b);
|
||||
end
|
||||
end
|
||||
assign shiftValE_uid32_fpToFxPTest_q = shiftValE_uid32_fpToFxPTest_o[9:0];
|
||||
|
||||
// shiftValRaw_uid33_fpToFxPTest(BITSELECT,32)@1
|
||||
assign shiftValRaw_uid33_fpToFxPTest_in = shiftValE_uid32_fpToFxPTest_q[5:0];
|
||||
assign shiftValRaw_uid33_fpToFxPTest_b = shiftValRaw_uid33_fpToFxPTest_in[5:0];
|
||||
|
||||
// shiftOutOfRange_uid35_fpToFxPTest(COMPARE,34)@1
|
||||
assign shiftOutOfRange_uid35_fpToFxPTest_a = {{2{shiftValE_uid32_fpToFxPTest_q[9]}}, shiftValE_uid32_fpToFxPTest_q};
|
||||
assign shiftOutOfRange_uid35_fpToFxPTest_b = {6'b000000, maxShiftCst_uid34_fpToFxPTest_q};
|
||||
assign shiftOutOfRange_uid35_fpToFxPTest_o = $signed(shiftOutOfRange_uid35_fpToFxPTest_a) - $signed(shiftOutOfRange_uid35_fpToFxPTest_b);
|
||||
assign shiftOutOfRange_uid35_fpToFxPTest_n[0] = ~ (shiftOutOfRange_uid35_fpToFxPTest_o[11]);
|
||||
|
||||
// shiftVal_uid36_fpToFxPTest(MUX,35)@1 + 1
|
||||
assign shiftVal_uid36_fpToFxPTest_s = shiftOutOfRange_uid35_fpToFxPTest_n;
|
||||
always @ (posedge clk or posedge areset)
|
||||
begin
|
||||
if (areset)
|
||||
begin
|
||||
shiftVal_uid36_fpToFxPTest_q <= 6'b0;
|
||||
end
|
||||
else if (en == 1'b1)
|
||||
begin
|
||||
unique case (shiftVal_uid36_fpToFxPTest_s)
|
||||
1'b0 : shiftVal_uid36_fpToFxPTest_q <= shiftValRaw_uid33_fpToFxPTest_b;
|
||||
1'b1 : shiftVal_uid36_fpToFxPTest_q <= maxShiftCst_uid34_fpToFxPTest_q;
|
||||
default : shiftVal_uid36_fpToFxPTest_q <= 6'b0;
|
||||
endcase
|
||||
end
|
||||
end
|
||||
|
||||
// rightShiftStageSel5Dto4_uid62_rightShiferNoStickyOut_uid39_fpToFxPTest_merged_bit_select(BITSELECT,86)@2
|
||||
assign rightShiftStageSel5Dto4_uid62_rightShiferNoStickyOut_uid39_fpToFxPTest_merged_bit_select_b = shiftVal_uid36_fpToFxPTest_q[5:4];
|
||||
assign rightShiftStageSel5Dto4_uid62_rightShiferNoStickyOut_uid39_fpToFxPTest_merged_bit_select_c = shiftVal_uid36_fpToFxPTest_q[3:2];
|
||||
assign rightShiftStageSel5Dto4_uid62_rightShiferNoStickyOut_uid39_fpToFxPTest_merged_bit_select_d = shiftVal_uid36_fpToFxPTest_q[1:0];
|
||||
|
||||
// rightShiftStage2_uid85_rightShiferNoStickyOut_uid39_fpToFxPTest(MUX,84)@2 + 1
|
||||
assign rightShiftStage2_uid85_rightShiferNoStickyOut_uid39_fpToFxPTest_s = rightShiftStageSel5Dto4_uid62_rightShiferNoStickyOut_uid39_fpToFxPTest_merged_bit_select_d;
|
||||
always @ (posedge clk or posedge areset)
|
||||
begin
|
||||
if (areset)
|
||||
begin
|
||||
rightShiftStage2_uid85_rightShiferNoStickyOut_uid39_fpToFxPTest_q <= 33'b0;
|
||||
end
|
||||
else if (en == 1'b1)
|
||||
begin
|
||||
unique case (rightShiftStage2_uid85_rightShiferNoStickyOut_uid39_fpToFxPTest_s)
|
||||
2'b00 : rightShiftStage2_uid85_rightShiferNoStickyOut_uid39_fpToFxPTest_q <= rightShiftStage1_uid74_rightShiferNoStickyOut_uid39_fpToFxPTest_q;
|
||||
2'b01 : rightShiftStage2_uid85_rightShiferNoStickyOut_uid39_fpToFxPTest_q <= rightShiftStage2Idx1_uid77_rightShiferNoStickyOut_uid39_fpToFxPTest_q;
|
||||
2'b10 : rightShiftStage2_uid85_rightShiferNoStickyOut_uid39_fpToFxPTest_q <= rightShiftStage2Idx2_uid80_rightShiferNoStickyOut_uid39_fpToFxPTest_q;
|
||||
2'b11 : rightShiftStage2_uid85_rightShiferNoStickyOut_uid39_fpToFxPTest_q <= rightShiftStage2Idx3_uid83_rightShiferNoStickyOut_uid39_fpToFxPTest_q;
|
||||
default : rightShiftStage2_uid85_rightShiferNoStickyOut_uid39_fpToFxPTest_q <= 33'b0;
|
||||
endcase
|
||||
end
|
||||
end
|
||||
|
||||
// zRightShiferNoStickyOut_uid43_fpToFxPTest(BITJOIN,42)@3
|
||||
assign zRightShiferNoStickyOut_uid43_fpToFxPTest_q = {GND_q, rightShiftStage2_uid85_rightShiferNoStickyOut_uid39_fpToFxPTest_q};
|
||||
|
||||
// sPostRndFull_uid44_fpToFxPTest(ADD,43)@3
|
||||
assign sPostRndFull_uid44_fpToFxPTest_a = {1'b0, zRightShiferNoStickyOut_uid43_fpToFxPTest_q};
|
||||
assign sPostRndFull_uid44_fpToFxPTest_b = {34'b0000000000000000000000000000000000, VCC_q};
|
||||
assign sPostRndFull_uid44_fpToFxPTest_o = $unsigned(sPostRndFull_uid44_fpToFxPTest_a) + $unsigned(sPostRndFull_uid44_fpToFxPTest_b);
|
||||
assign sPostRndFull_uid44_fpToFxPTest_q = sPostRndFull_uid44_fpToFxPTest_o[34:0];
|
||||
|
||||
// sPostRnd_uid45_fpToFxPTest(BITSELECT,44)@3
|
||||
assign sPostRnd_uid45_fpToFxPTest_in = sPostRndFull_uid44_fpToFxPTest_q[32:0];
|
||||
assign sPostRnd_uid45_fpToFxPTest_b = sPostRnd_uid45_fpToFxPTest_in[32:1];
|
||||
|
||||
// redist0_sPostRnd_uid45_fpToFxPTest_b_1(DELAY,87)
|
||||
dspba_delay_ver #( .width(32), .depth(1), .reset_kind("ASYNC") )
|
||||
redist0_sPostRnd_uid45_fpToFxPTest_b_1 ( .xin(sPostRnd_uid45_fpToFxPTest_b), .xout(redist0_sPostRnd_uid45_fpToFxPTest_b_1_q), .ena(en[0]), .clk(clk), .aclr(areset) );
|
||||
|
||||
// signX_uid25_fpToFxPTest(BITSELECT,24)@0
|
||||
assign signX_uid25_fpToFxPTest_b = a[31:31];
|
||||
|
||||
// redist3_signX_uid25_fpToFxPTest_b_3(DELAY,90)
|
||||
dspba_delay_ver #( .width(1), .depth(3), .reset_kind("ASYNC") )
|
||||
redist3_signX_uid25_fpToFxPTest_b_3 ( .xin(signX_uid25_fpToFxPTest_b), .xout(redist3_signX_uid25_fpToFxPTest_b_3_q), .ena(en[0]), .clk(clk), .aclr(areset) );
|
||||
|
||||
// redist4_signX_uid25_fpToFxPTest_b_4(DELAY,91)
|
||||
dspba_delay_ver #( .width(1), .depth(1), .reset_kind("ASYNC") )
|
||||
redist4_signX_uid25_fpToFxPTest_b_4 ( .xin(redist3_signX_uid25_fpToFxPTest_b_3_q), .xout(redist4_signX_uid25_fpToFxPTest_b_4_q), .ena(en[0]), .clk(clk), .aclr(areset) );
|
||||
|
||||
// udfExpVal_uid29_fpToFxPTest(CONSTANT,28)
|
||||
assign udfExpVal_uid29_fpToFxPTest_q = 8'b01111101;
|
||||
|
||||
// udf_uid30_fpToFxPTest(COMPARE,29)@0 + 1
|
||||
assign udf_uid30_fpToFxPTest_a = {{3{udfExpVal_uid29_fpToFxPTest_q[7]}}, udfExpVal_uid29_fpToFxPTest_q};
|
||||
assign udf_uid30_fpToFxPTest_b = {3'b000, exp_x_uid9_fpToFxPTest_b};
|
||||
always @ (posedge clk or posedge areset)
|
||||
begin
|
||||
if (areset)
|
||||
begin
|
||||
udf_uid30_fpToFxPTest_o <= 11'b0;
|
||||
end
|
||||
else if (en == 1'b1)
|
||||
begin
|
||||
udf_uid30_fpToFxPTest_o <= $signed(udf_uid30_fpToFxPTest_a) - $signed(udf_uid30_fpToFxPTest_b);
|
||||
end
|
||||
end
|
||||
assign udf_uid30_fpToFxPTest_n[0] = ~ (udf_uid30_fpToFxPTest_o[10]);
|
||||
|
||||
// redist1_udf_uid30_fpToFxPTest_n_4(DELAY,88)
|
||||
dspba_delay_ver #( .width(1), .depth(3), .reset_kind("ASYNC") )
|
||||
redist1_udf_uid30_fpToFxPTest_n_4 ( .xin(udf_uid30_fpToFxPTest_n), .xout(redist1_udf_uid30_fpToFxPTest_n_4_q), .ena(en[0]), .clk(clk), .aclr(areset) );
|
||||
|
||||
// sPostRndFullMSBU_uid46_fpToFxPTest(BITSELECT,45)@3
|
||||
assign sPostRndFullMSBU_uid46_fpToFxPTest_in = sPostRndFull_uid44_fpToFxPTest_q[33:0];
|
||||
assign sPostRndFullMSBU_uid46_fpToFxPTest_b = sPostRndFullMSBU_uid46_fpToFxPTest_in[33:33];
|
||||
|
||||
// ovfExpVal_uid26_fpToFxPTest(CONSTANT,25)
|
||||
assign ovfExpVal_uid26_fpToFxPTest_q = 9'b010011111;
|
||||
|
||||
// ovf_uid27_fpToFxPTest(COMPARE,26)@0 + 1
|
||||
assign ovf_uid27_fpToFxPTest_a = {3'b000, exp_x_uid9_fpToFxPTest_b};
|
||||
assign ovf_uid27_fpToFxPTest_b = {{2{ovfExpVal_uid26_fpToFxPTest_q[8]}}, ovfExpVal_uid26_fpToFxPTest_q};
|
||||
always @ (posedge clk or posedge areset)
|
||||
begin
|
||||
if (areset)
|
||||
begin
|
||||
ovf_uid27_fpToFxPTest_o <= 11'b0;
|
||||
end
|
||||
else if (en == 1'b1)
|
||||
begin
|
||||
ovf_uid27_fpToFxPTest_o <= $signed(ovf_uid27_fpToFxPTest_a) - $signed(ovf_uid27_fpToFxPTest_b);
|
||||
end
|
||||
end
|
||||
assign ovf_uid27_fpToFxPTest_n[0] = ~ (ovf_uid27_fpToFxPTest_o[10]);
|
||||
|
||||
// redist2_ovf_uid27_fpToFxPTest_n_3(DELAY,89)
|
||||
dspba_delay_ver #( .width(1), .depth(2), .reset_kind("ASYNC") )
|
||||
redist2_ovf_uid27_fpToFxPTest_n_3 ( .xin(ovf_uid27_fpToFxPTest_n), .xout(redist2_ovf_uid27_fpToFxPTest_n_3_q), .ena(en[0]), .clk(clk), .aclr(areset) );
|
||||
|
||||
// negOrOvf_uid28_fpToFxPTest(LOGICAL,27)@3
|
||||
assign negOrOvf_uid28_fpToFxPTest_q = redist3_signX_uid25_fpToFxPTest_b_3_q | redist2_ovf_uid27_fpToFxPTest_n_3_q;
|
||||
|
||||
// cstZeroWF_uid7_fpToFxPTest(CONSTANT,6)
|
||||
assign cstZeroWF_uid7_fpToFxPTest_q = 23'b00000000000000000000000;
|
||||
|
||||
// fracXIsZero_uid13_fpToFxPTest(LOGICAL,12)@2 + 1
|
||||
assign fracXIsZero_uid13_fpToFxPTest_qi = cstZeroWF_uid7_fpToFxPTest_q == redist7_frac_x_uid10_fpToFxPTest_b_2_q ? 1'b1 : 1'b0;
|
||||
dspba_delay_ver #( .width(1), .depth(1), .reset_kind("ASYNC") )
|
||||
fracXIsZero_uid13_fpToFxPTest_delay ( .xin(fracXIsZero_uid13_fpToFxPTest_qi), .xout(fracXIsZero_uid13_fpToFxPTest_q), .ena(en[0]), .clk(clk), .aclr(areset) );
|
||||
|
||||
// cstAllOWE_uid6_fpToFxPTest(CONSTANT,5)
|
||||
assign cstAllOWE_uid6_fpToFxPTest_q = 8'b11111111;
|
||||
|
||||
// expXIsMax_uid12_fpToFxPTest(LOGICAL,11)@0 + 1
|
||||
assign expXIsMax_uid12_fpToFxPTest_qi = exp_x_uid9_fpToFxPTest_b == cstAllOWE_uid6_fpToFxPTest_q ? 1'b1 : 1'b0;
|
||||
dspba_delay_ver #( .width(1), .depth(1), .reset_kind("ASYNC") )
|
||||
expXIsMax_uid12_fpToFxPTest_delay ( .xin(expXIsMax_uid12_fpToFxPTest_qi), .xout(expXIsMax_uid12_fpToFxPTest_q), .ena(en[0]), .clk(clk), .aclr(areset) );
|
||||
|
||||
// redist5_expXIsMax_uid12_fpToFxPTest_q_3(DELAY,92)
|
||||
dspba_delay_ver #( .width(1), .depth(2), .reset_kind("ASYNC") )
|
||||
redist5_expXIsMax_uid12_fpToFxPTest_q_3 ( .xin(expXIsMax_uid12_fpToFxPTest_q), .xout(redist5_expXIsMax_uid12_fpToFxPTest_q_3_q), .ena(en[0]), .clk(clk), .aclr(areset) );
|
||||
|
||||
// excI_x_uid15_fpToFxPTest(LOGICAL,14)@3
|
||||
assign excI_x_uid15_fpToFxPTest_q = redist5_expXIsMax_uid12_fpToFxPTest_q_3_q & fracXIsZero_uid13_fpToFxPTest_q;
|
||||
|
||||
// fracXIsNotZero_uid14_fpToFxPTest(LOGICAL,13)@3
|
||||
assign fracXIsNotZero_uid14_fpToFxPTest_q = ~ (fracXIsZero_uid13_fpToFxPTest_q);
|
||||
|
||||
// excN_x_uid16_fpToFxPTest(LOGICAL,15)@3
|
||||
assign excN_x_uid16_fpToFxPTest_q = redist5_expXIsMax_uid12_fpToFxPTest_q_3_q & fracXIsNotZero_uid14_fpToFxPTest_q;
|
||||
|
||||
// ovfPostRnd_uid47_fpToFxPTest(LOGICAL,46)@3 + 1
|
||||
assign ovfPostRnd_uid47_fpToFxPTest_qi = excN_x_uid16_fpToFxPTest_q | excI_x_uid15_fpToFxPTest_q | negOrOvf_uid28_fpToFxPTest_q | sPostRndFullMSBU_uid46_fpToFxPTest_b;
|
||||
dspba_delay_ver #( .width(1), .depth(1), .reset_kind("ASYNC") )
|
||||
ovfPostRnd_uid47_fpToFxPTest_delay ( .xin(ovfPostRnd_uid47_fpToFxPTest_qi), .xout(ovfPostRnd_uid47_fpToFxPTest_q), .ena(en[0]), .clk(clk), .aclr(areset) );
|
||||
|
||||
// muxSelConc_uid48_fpToFxPTest(BITJOIN,47)@4
|
||||
assign muxSelConc_uid48_fpToFxPTest_q = {redist4_signX_uid25_fpToFxPTest_b_4_q, redist1_udf_uid30_fpToFxPTest_n_4_q, ovfPostRnd_uid47_fpToFxPTest_q};
|
||||
|
||||
// muxSel_uid49_fpToFxPTest(LOOKUP,48)@4
|
||||
always @(muxSelConc_uid48_fpToFxPTest_q)
|
||||
begin
|
||||
// Begin reserved scope level
|
||||
unique case (muxSelConc_uid48_fpToFxPTest_q)
|
||||
3'b000 : muxSel_uid49_fpToFxPTest_q = 2'b00;
|
||||
3'b001 : muxSel_uid49_fpToFxPTest_q = 2'b01;
|
||||
3'b010 : muxSel_uid49_fpToFxPTest_q = 2'b11;
|
||||
3'b011 : muxSel_uid49_fpToFxPTest_q = 2'b00;
|
||||
3'b100 : muxSel_uid49_fpToFxPTest_q = 2'b10;
|
||||
3'b101 : muxSel_uid49_fpToFxPTest_q = 2'b10;
|
||||
3'b110 : muxSel_uid49_fpToFxPTest_q = 2'b10;
|
||||
3'b111 : muxSel_uid49_fpToFxPTest_q = 2'b10;
|
||||
default : begin
|
||||
// unreachable
|
||||
muxSel_uid49_fpToFxPTest_q = 2'bxx;
|
||||
end
|
||||
endcase
|
||||
// End reserved scope level
|
||||
end
|
||||
|
||||
// finalOut_uid51_fpToFxPTest(MUX,50)@4
|
||||
assign finalOut_uid51_fpToFxPTest_s = muxSel_uid49_fpToFxPTest_q;
|
||||
always @(finalOut_uid51_fpToFxPTest_s or en or redist0_sPostRnd_uid45_fpToFxPTest_b_1_q or maxPosValueU_uid40_fpToFxPTest_q or maxNegValueU_uid41_fpToFxPTest_q)
|
||||
begin
|
||||
unique case (finalOut_uid51_fpToFxPTest_s)
|
||||
2'b00 : finalOut_uid51_fpToFxPTest_q = redist0_sPostRnd_uid45_fpToFxPTest_b_1_q;
|
||||
2'b01 : finalOut_uid51_fpToFxPTest_q = maxPosValueU_uid40_fpToFxPTest_q;
|
||||
2'b10 : finalOut_uid51_fpToFxPTest_q = maxNegValueU_uid41_fpToFxPTest_q;
|
||||
2'b11 : finalOut_uid51_fpToFxPTest_q = maxNegValueU_uid41_fpToFxPTest_q;
|
||||
default : finalOut_uid51_fpToFxPTest_q = 32'b0;
|
||||
endcase
|
||||
end
|
||||
|
||||
// xOut(GPOUT,4)@4
|
||||
assign q = finalOut_uid51_fpToFxPTest_q;
|
||||
|
||||
endmodule
|
522
hw/rtl/fp_cores/altera/acl_fp_itof.sv
Normal file
522
hw/rtl/fp_cores/altera/acl_fp_itof.sv
Normal file
|
@ -0,0 +1,522 @@
|
|||
// -------------------------------------------------------------------------
|
||||
// High Level Design Compiler for Intel(R) FPGAs Version 17.1 (Release Build #273)
|
||||
// Quartus Prime development tool and MATLAB/Simulink Interface
|
||||
//
|
||||
// Legal Notice: Copyright 2017 Intel Corporation. All rights reserved.
|
||||
// Your use of Intel Corporation's design tools, logic functions and other
|
||||
// software and tools, and its AMPP partner logic functions, and any output
|
||||
// files any of the foregoing (including device programming or simulation
|
||||
// files), and any associated documentation or information are expressly
|
||||
// subject to the terms and conditions of the Intel FPGA Software License
|
||||
// Agreement, Intel MegaCore Function License Agreement, or other applicable
|
||||
// license agreement, including, without limitation, that your use is for
|
||||
// the sole purpose of programming logic devices manufactured by Intel
|
||||
// and sold by Intel or its authorized distributors. Please refer to the
|
||||
// applicable agreement for further details.
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
// SystemVerilog created from acl_fp_itof
|
||||
// SystemVerilog created on Wed Aug 5 12:58:15 2020
|
||||
|
||||
|
||||
(* altera_attribute = "-name AUTO_SHIFT_REGISTER_RECOGNITION OFF; -name MESSAGE_DISABLE 10036; -name MESSAGE_DISABLE 10037; -name MESSAGE_DISABLE 14130; -name MESSAGE_DISABLE 14320; -name MESSAGE_DISABLE 15400; -name MESSAGE_DISABLE 14130; -name MESSAGE_DISABLE 10036; -name MESSAGE_DISABLE 12020; -name MESSAGE_DISABLE 12030; -name MESSAGE_DISABLE 12010; -name MESSAGE_DISABLE 12110; -name MESSAGE_DISABLE 14320; -name MESSAGE_DISABLE 13410; -name MESSAGE_DISABLE 113007; -name MESSAGE_DISABLE 10958" *)
|
||||
module acl_fp_itof (
|
||||
input wire [31:0] a,
|
||||
input wire [0:0] en,
|
||||
output wire [31:0] q,
|
||||
input wire clk,
|
||||
input wire areset
|
||||
);
|
||||
|
||||
wire [0:0] GND_q;
|
||||
wire [0:0] signX_uid6_fxpToFPTest_b;
|
||||
wire [31:0] xXorSign_uid7_fxpToFPTest_b;
|
||||
wire [31:0] xXorSign_uid7_fxpToFPTest_q;
|
||||
wire [32:0] yE_uid8_fxpToFPTest_a;
|
||||
wire [32:0] yE_uid8_fxpToFPTest_b;
|
||||
logic [32:0] yE_uid8_fxpToFPTest_o;
|
||||
wire [32:0] yE_uid8_fxpToFPTest_q;
|
||||
wire [31:0] y_uid9_fxpToFPTest_in;
|
||||
wire [31:0] y_uid9_fxpToFPTest_b;
|
||||
wire [5:0] maxCount_uid11_fxpToFPTest_q;
|
||||
wire [0:0] inIsZero_uid12_fxpToFPTest_qi;
|
||||
reg [0:0] inIsZero_uid12_fxpToFPTest_q;
|
||||
wire [7:0] msbIn_uid13_fxpToFPTest_q;
|
||||
wire [8:0] expPreRnd_uid14_fxpToFPTest_a;
|
||||
wire [8:0] expPreRnd_uid14_fxpToFPTest_b;
|
||||
logic [8:0] expPreRnd_uid14_fxpToFPTest_o;
|
||||
wire [8:0] expPreRnd_uid14_fxpToFPTest_q;
|
||||
wire [32:0] expFracRnd_uid16_fxpToFPTest_q;
|
||||
wire [0:0] sticky_uid20_fxpToFPTest_qi;
|
||||
reg [0:0] sticky_uid20_fxpToFPTest_q;
|
||||
wire [0:0] nr_uid21_fxpToFPTest_q;
|
||||
wire [0:0] rnd_uid22_fxpToFPTest_qi;
|
||||
reg [0:0] rnd_uid22_fxpToFPTest_q;
|
||||
wire [34:0] expFracR_uid24_fxpToFPTest_a;
|
||||
wire [34:0] expFracR_uid24_fxpToFPTest_b;
|
||||
logic [34:0] expFracR_uid24_fxpToFPTest_o;
|
||||
wire [33:0] expFracR_uid24_fxpToFPTest_q;
|
||||
wire [23:0] fracR_uid25_fxpToFPTest_in;
|
||||
wire [22:0] fracR_uid25_fxpToFPTest_b;
|
||||
wire [9:0] expR_uid26_fxpToFPTest_b;
|
||||
wire [11:0] udf_uid27_fxpToFPTest_a;
|
||||
wire [11:0] udf_uid27_fxpToFPTest_b;
|
||||
logic [11:0] udf_uid27_fxpToFPTest_o;
|
||||
wire [0:0] udf_uid27_fxpToFPTest_n;
|
||||
wire [7:0] expInf_uid28_fxpToFPTest_q;
|
||||
wire [11:0] ovf_uid29_fxpToFPTest_a;
|
||||
wire [11:0] ovf_uid29_fxpToFPTest_b;
|
||||
logic [11:0] ovf_uid29_fxpToFPTest_o;
|
||||
wire [0:0] ovf_uid29_fxpToFPTest_n;
|
||||
wire [0:0] excSelector_uid30_fxpToFPTest_q;
|
||||
wire [22:0] fracZ_uid31_fxpToFPTest_q;
|
||||
wire [0:0] fracRPostExc_uid32_fxpToFPTest_s;
|
||||
reg [22:0] fracRPostExc_uid32_fxpToFPTest_q;
|
||||
wire [0:0] udfOrInZero_uid33_fxpToFPTest_q;
|
||||
wire [1:0] excSelector_uid34_fxpToFPTest_q;
|
||||
wire [7:0] expZ_uid37_fxpToFPTest_q;
|
||||
wire [7:0] expR_uid38_fxpToFPTest_in;
|
||||
wire [7:0] expR_uid38_fxpToFPTest_b;
|
||||
wire [1:0] expRPostExc_uid39_fxpToFPTest_s;
|
||||
reg [7:0] expRPostExc_uid39_fxpToFPTest_q;
|
||||
wire [31:0] outRes_uid40_fxpToFPTest_q;
|
||||
wire [31:0] zs_uid42_lzcShifterZ1_uid10_fxpToFPTest_q;
|
||||
wire [0:0] vCount_uid44_lzcShifterZ1_uid10_fxpToFPTest_qi;
|
||||
reg [0:0] vCount_uid44_lzcShifterZ1_uid10_fxpToFPTest_q;
|
||||
wire [0:0] vStagei_uid46_lzcShifterZ1_uid10_fxpToFPTest_s;
|
||||
reg [31:0] vStagei_uid46_lzcShifterZ1_uid10_fxpToFPTest_q;
|
||||
wire [15:0] zs_uid47_lzcShifterZ1_uid10_fxpToFPTest_q;
|
||||
wire [0:0] vCount_uid49_lzcShifterZ1_uid10_fxpToFPTest_q;
|
||||
wire [31:0] cStage_uid52_lzcShifterZ1_uid10_fxpToFPTest_q;
|
||||
wire [0:0] vStagei_uid53_lzcShifterZ1_uid10_fxpToFPTest_s;
|
||||
reg [31:0] vStagei_uid53_lzcShifterZ1_uid10_fxpToFPTest_q;
|
||||
wire [0:0] vCount_uid56_lzcShifterZ1_uid10_fxpToFPTest_q;
|
||||
wire [31:0] cStage_uid59_lzcShifterZ1_uid10_fxpToFPTest_q;
|
||||
wire [0:0] vStagei_uid60_lzcShifterZ1_uid10_fxpToFPTest_s;
|
||||
reg [31:0] vStagei_uid60_lzcShifterZ1_uid10_fxpToFPTest_q;
|
||||
wire [3:0] zs_uid61_lzcShifterZ1_uid10_fxpToFPTest_q;
|
||||
wire [0:0] vCount_uid63_lzcShifterZ1_uid10_fxpToFPTest_q;
|
||||
wire [31:0] cStage_uid66_lzcShifterZ1_uid10_fxpToFPTest_q;
|
||||
wire [0:0] vStagei_uid67_lzcShifterZ1_uid10_fxpToFPTest_s;
|
||||
reg [31:0] vStagei_uid67_lzcShifterZ1_uid10_fxpToFPTest_q;
|
||||
wire [1:0] zs_uid68_lzcShifterZ1_uid10_fxpToFPTest_q;
|
||||
wire [0:0] vCount_uid70_lzcShifterZ1_uid10_fxpToFPTest_q;
|
||||
wire [31:0] cStage_uid73_lzcShifterZ1_uid10_fxpToFPTest_q;
|
||||
wire [0:0] vStagei_uid74_lzcShifterZ1_uid10_fxpToFPTest_s;
|
||||
reg [31:0] vStagei_uid74_lzcShifterZ1_uid10_fxpToFPTest_q;
|
||||
wire [0:0] vCount_uid77_lzcShifterZ1_uid10_fxpToFPTest_q;
|
||||
wire [31:0] cStage_uid80_lzcShifterZ1_uid10_fxpToFPTest_q;
|
||||
wire [0:0] vStagei_uid81_lzcShifterZ1_uid10_fxpToFPTest_s;
|
||||
reg [31:0] vStagei_uid81_lzcShifterZ1_uid10_fxpToFPTest_q;
|
||||
wire [5:0] vCount_uid82_lzcShifterZ1_uid10_fxpToFPTest_q;
|
||||
wire [7:0] vCountBig_uid84_lzcShifterZ1_uid10_fxpToFPTest_a;
|
||||
wire [7:0] vCountBig_uid84_lzcShifterZ1_uid10_fxpToFPTest_b;
|
||||
logic [7:0] vCountBig_uid84_lzcShifterZ1_uid10_fxpToFPTest_o;
|
||||
wire [0:0] vCountBig_uid84_lzcShifterZ1_uid10_fxpToFPTest_c;
|
||||
wire [0:0] vCountFinal_uid86_lzcShifterZ1_uid10_fxpToFPTest_s;
|
||||
reg [5:0] vCountFinal_uid86_lzcShifterZ1_uid10_fxpToFPTest_q;
|
||||
wire [1:0] l_uid17_fxpToFPTest_merged_bit_select_in;
|
||||
wire [0:0] l_uid17_fxpToFPTest_merged_bit_select_b;
|
||||
wire [0:0] l_uid17_fxpToFPTest_merged_bit_select_c;
|
||||
wire [15:0] rVStage_uid48_lzcShifterZ1_uid10_fxpToFPTest_merged_bit_select_b;
|
||||
wire [15:0] rVStage_uid48_lzcShifterZ1_uid10_fxpToFPTest_merged_bit_select_c;
|
||||
wire [7:0] rVStage_uid55_lzcShifterZ1_uid10_fxpToFPTest_merged_bit_select_b;
|
||||
wire [23:0] rVStage_uid55_lzcShifterZ1_uid10_fxpToFPTest_merged_bit_select_c;
|
||||
wire [3:0] rVStage_uid62_lzcShifterZ1_uid10_fxpToFPTest_merged_bit_select_b;
|
||||
wire [27:0] rVStage_uid62_lzcShifterZ1_uid10_fxpToFPTest_merged_bit_select_c;
|
||||
wire [1:0] rVStage_uid69_lzcShifterZ1_uid10_fxpToFPTest_merged_bit_select_b;
|
||||
wire [29:0] rVStage_uid69_lzcShifterZ1_uid10_fxpToFPTest_merged_bit_select_c;
|
||||
wire [0:0] rVStage_uid76_lzcShifterZ1_uid10_fxpToFPTest_merged_bit_select_b;
|
||||
wire [30:0] rVStage_uid76_lzcShifterZ1_uid10_fxpToFPTest_merged_bit_select_c;
|
||||
wire [30:0] fracRnd_uid15_fxpToFPTest_merged_bit_select_in;
|
||||
wire [23:0] fracRnd_uid15_fxpToFPTest_merged_bit_select_b;
|
||||
wire [6:0] fracRnd_uid15_fxpToFPTest_merged_bit_select_c;
|
||||
reg [23:0] redist0_fracRnd_uid15_fxpToFPTest_merged_bit_select_b_1_q;
|
||||
reg [0:0] redist1_vCount_uid70_lzcShifterZ1_uid10_fxpToFPTest_q_1_q;
|
||||
reg [0:0] redist2_vCount_uid63_lzcShifterZ1_uid10_fxpToFPTest_q_1_q;
|
||||
reg [0:0] redist3_vCount_uid56_lzcShifterZ1_uid10_fxpToFPTest_q_2_q;
|
||||
reg [0:0] redist4_vCount_uid49_lzcShifterZ1_uid10_fxpToFPTest_q_3_q;
|
||||
reg [0:0] redist5_vCount_uid44_lzcShifterZ1_uid10_fxpToFPTest_q_4_q;
|
||||
reg [9:0] redist6_expR_uid26_fxpToFPTest_b_1_q;
|
||||
reg [22:0] redist7_fracR_uid25_fxpToFPTest_b_1_q;
|
||||
reg [32:0] redist8_expFracRnd_uid16_fxpToFPTest_q_1_q;
|
||||
reg [0:0] redist9_inIsZero_uid12_fxpToFPTest_q_2_q;
|
||||
reg [31:0] redist10_y_uid9_fxpToFPTest_b_1_q;
|
||||
reg [31:0] redist11_y_uid9_fxpToFPTest_b_2_q;
|
||||
reg [0:0] redist12_signX_uid6_fxpToFPTest_b_8_q;
|
||||
|
||||
|
||||
// signX_uid6_fxpToFPTest(BITSELECT,5)@0
|
||||
assign signX_uid6_fxpToFPTest_b = a[31:31];
|
||||
|
||||
// redist12_signX_uid6_fxpToFPTest_b_8(DELAY,107)
|
||||
dspba_delay_ver #( .width(1), .depth(8), .reset_kind("ASYNC") )
|
||||
redist12_signX_uid6_fxpToFPTest_b_8 ( .xin(signX_uid6_fxpToFPTest_b), .xout(redist12_signX_uid6_fxpToFPTest_b_8_q), .ena(en[0]), .clk(clk), .aclr(areset) );
|
||||
|
||||
// expInf_uid28_fxpToFPTest(CONSTANT,27)
|
||||
assign expInf_uid28_fxpToFPTest_q = 8'b11111111;
|
||||
|
||||
// expZ_uid37_fxpToFPTest(CONSTANT,36)
|
||||
assign expZ_uid37_fxpToFPTest_q = 8'b00000000;
|
||||
|
||||
// rVStage_uid76_lzcShifterZ1_uid10_fxpToFPTest_merged_bit_select(BITSELECT,93)@5
|
||||
assign rVStage_uid76_lzcShifterZ1_uid10_fxpToFPTest_merged_bit_select_b = vStagei_uid74_lzcShifterZ1_uid10_fxpToFPTest_q[31:31];
|
||||
assign rVStage_uid76_lzcShifterZ1_uid10_fxpToFPTest_merged_bit_select_c = vStagei_uid74_lzcShifterZ1_uid10_fxpToFPTest_q[30:0];
|
||||
|
||||
// GND(CONSTANT,0)
|
||||
assign GND_q = 1'b0;
|
||||
|
||||
// cStage_uid80_lzcShifterZ1_uid10_fxpToFPTest(BITJOIN,79)@5
|
||||
assign cStage_uid80_lzcShifterZ1_uid10_fxpToFPTest_q = {rVStage_uid76_lzcShifterZ1_uid10_fxpToFPTest_merged_bit_select_c, GND_q};
|
||||
|
||||
// rVStage_uid69_lzcShifterZ1_uid10_fxpToFPTest_merged_bit_select(BITSELECT,92)@4
|
||||
assign rVStage_uid69_lzcShifterZ1_uid10_fxpToFPTest_merged_bit_select_b = vStagei_uid67_lzcShifterZ1_uid10_fxpToFPTest_q[31:30];
|
||||
assign rVStage_uid69_lzcShifterZ1_uid10_fxpToFPTest_merged_bit_select_c = vStagei_uid67_lzcShifterZ1_uid10_fxpToFPTest_q[29:0];
|
||||
|
||||
// zs_uid68_lzcShifterZ1_uid10_fxpToFPTest(CONSTANT,67)
|
||||
assign zs_uid68_lzcShifterZ1_uid10_fxpToFPTest_q = 2'b00;
|
||||
|
||||
// cStage_uid73_lzcShifterZ1_uid10_fxpToFPTest(BITJOIN,72)@4
|
||||
assign cStage_uid73_lzcShifterZ1_uid10_fxpToFPTest_q = {rVStage_uid69_lzcShifterZ1_uid10_fxpToFPTest_merged_bit_select_c, zs_uid68_lzcShifterZ1_uid10_fxpToFPTest_q};
|
||||
|
||||
// rVStage_uid62_lzcShifterZ1_uid10_fxpToFPTest_merged_bit_select(BITSELECT,91)@4
|
||||
assign rVStage_uid62_lzcShifterZ1_uid10_fxpToFPTest_merged_bit_select_b = vStagei_uid60_lzcShifterZ1_uid10_fxpToFPTest_q[31:28];
|
||||
assign rVStage_uid62_lzcShifterZ1_uid10_fxpToFPTest_merged_bit_select_c = vStagei_uid60_lzcShifterZ1_uid10_fxpToFPTest_q[27:0];
|
||||
|
||||
// zs_uid61_lzcShifterZ1_uid10_fxpToFPTest(CONSTANT,60)
|
||||
assign zs_uid61_lzcShifterZ1_uid10_fxpToFPTest_q = 4'b0000;
|
||||
|
||||
// cStage_uid66_lzcShifterZ1_uid10_fxpToFPTest(BITJOIN,65)@4
|
||||
assign cStage_uid66_lzcShifterZ1_uid10_fxpToFPTest_q = {rVStage_uid62_lzcShifterZ1_uid10_fxpToFPTest_merged_bit_select_c, zs_uid61_lzcShifterZ1_uid10_fxpToFPTest_q};
|
||||
|
||||
// rVStage_uid55_lzcShifterZ1_uid10_fxpToFPTest_merged_bit_select(BITSELECT,90)@3
|
||||
assign rVStage_uid55_lzcShifterZ1_uid10_fxpToFPTest_merged_bit_select_b = vStagei_uid53_lzcShifterZ1_uid10_fxpToFPTest_q[31:24];
|
||||
assign rVStage_uid55_lzcShifterZ1_uid10_fxpToFPTest_merged_bit_select_c = vStagei_uid53_lzcShifterZ1_uid10_fxpToFPTest_q[23:0];
|
||||
|
||||
// cStage_uid59_lzcShifterZ1_uid10_fxpToFPTest(BITJOIN,58)@3
|
||||
assign cStage_uid59_lzcShifterZ1_uid10_fxpToFPTest_q = {rVStage_uid55_lzcShifterZ1_uid10_fxpToFPTest_merged_bit_select_c, expZ_uid37_fxpToFPTest_q};
|
||||
|
||||
// rVStage_uid48_lzcShifterZ1_uid10_fxpToFPTest_merged_bit_select(BITSELECT,89)@2
|
||||
assign rVStage_uid48_lzcShifterZ1_uid10_fxpToFPTest_merged_bit_select_b = vStagei_uid46_lzcShifterZ1_uid10_fxpToFPTest_q[31:16];
|
||||
assign rVStage_uid48_lzcShifterZ1_uid10_fxpToFPTest_merged_bit_select_c = vStagei_uid46_lzcShifterZ1_uid10_fxpToFPTest_q[15:0];
|
||||
|
||||
// zs_uid47_lzcShifterZ1_uid10_fxpToFPTest(CONSTANT,46)
|
||||
assign zs_uid47_lzcShifterZ1_uid10_fxpToFPTest_q = 16'b0000000000000000;
|
||||
|
||||
// cStage_uid52_lzcShifterZ1_uid10_fxpToFPTest(BITJOIN,51)@2
|
||||
assign cStage_uid52_lzcShifterZ1_uid10_fxpToFPTest_q = {rVStage_uid48_lzcShifterZ1_uid10_fxpToFPTest_merged_bit_select_c, zs_uid47_lzcShifterZ1_uid10_fxpToFPTest_q};
|
||||
|
||||
// zs_uid42_lzcShifterZ1_uid10_fxpToFPTest(CONSTANT,41)
|
||||
assign zs_uid42_lzcShifterZ1_uid10_fxpToFPTest_q = 32'b00000000000000000000000000000000;
|
||||
|
||||
// xXorSign_uid7_fxpToFPTest(LOGICAL,6)@0
|
||||
assign xXorSign_uid7_fxpToFPTest_b = {{31{signX_uid6_fxpToFPTest_b[0]}}, signX_uid6_fxpToFPTest_b};
|
||||
assign xXorSign_uid7_fxpToFPTest_q = a ^ xXorSign_uid7_fxpToFPTest_b;
|
||||
|
||||
// yE_uid8_fxpToFPTest(ADD,7)@0
|
||||
assign yE_uid8_fxpToFPTest_a = {1'b0, xXorSign_uid7_fxpToFPTest_q};
|
||||
assign yE_uid8_fxpToFPTest_b = {32'b00000000000000000000000000000000, signX_uid6_fxpToFPTest_b};
|
||||
assign yE_uid8_fxpToFPTest_o = $unsigned(yE_uid8_fxpToFPTest_a) + $unsigned(yE_uid8_fxpToFPTest_b);
|
||||
assign yE_uid8_fxpToFPTest_q = yE_uid8_fxpToFPTest_o[32:0];
|
||||
|
||||
// y_uid9_fxpToFPTest(BITSELECT,8)@0
|
||||
assign y_uid9_fxpToFPTest_in = yE_uid8_fxpToFPTest_q[31:0];
|
||||
assign y_uid9_fxpToFPTest_b = y_uid9_fxpToFPTest_in[31:0];
|
||||
|
||||
// redist10_y_uid9_fxpToFPTest_b_1(DELAY,105)
|
||||
dspba_delay_ver #( .width(32), .depth(1), .reset_kind("ASYNC") )
|
||||
redist10_y_uid9_fxpToFPTest_b_1 ( .xin(y_uid9_fxpToFPTest_b), .xout(redist10_y_uid9_fxpToFPTest_b_1_q), .ena(en[0]), .clk(clk), .aclr(areset) );
|
||||
|
||||
// redist11_y_uid9_fxpToFPTest_b_2(DELAY,106)
|
||||
dspba_delay_ver #( .width(32), .depth(1), .reset_kind("ASYNC") )
|
||||
redist11_y_uid9_fxpToFPTest_b_2 ( .xin(redist10_y_uid9_fxpToFPTest_b_1_q), .xout(redist11_y_uid9_fxpToFPTest_b_2_q), .ena(en[0]), .clk(clk), .aclr(areset) );
|
||||
|
||||
// vCount_uid44_lzcShifterZ1_uid10_fxpToFPTest(LOGICAL,43)@1 + 1
|
||||
assign vCount_uid44_lzcShifterZ1_uid10_fxpToFPTest_qi = redist10_y_uid9_fxpToFPTest_b_1_q == zs_uid42_lzcShifterZ1_uid10_fxpToFPTest_q ? 1'b1 : 1'b0;
|
||||
dspba_delay_ver #( .width(1), .depth(1), .reset_kind("ASYNC") )
|
||||
vCount_uid44_lzcShifterZ1_uid10_fxpToFPTest_delay ( .xin(vCount_uid44_lzcShifterZ1_uid10_fxpToFPTest_qi), .xout(vCount_uid44_lzcShifterZ1_uid10_fxpToFPTest_q), .ena(en[0]), .clk(clk), .aclr(areset) );
|
||||
|
||||
// vStagei_uid46_lzcShifterZ1_uid10_fxpToFPTest(MUX,45)@2
|
||||
assign vStagei_uid46_lzcShifterZ1_uid10_fxpToFPTest_s = vCount_uid44_lzcShifterZ1_uid10_fxpToFPTest_q;
|
||||
always @(vStagei_uid46_lzcShifterZ1_uid10_fxpToFPTest_s or en or redist11_y_uid9_fxpToFPTest_b_2_q or zs_uid42_lzcShifterZ1_uid10_fxpToFPTest_q)
|
||||
begin
|
||||
unique case (vStagei_uid46_lzcShifterZ1_uid10_fxpToFPTest_s)
|
||||
1'b0 : vStagei_uid46_lzcShifterZ1_uid10_fxpToFPTest_q = redist11_y_uid9_fxpToFPTest_b_2_q;
|
||||
1'b1 : vStagei_uid46_lzcShifterZ1_uid10_fxpToFPTest_q = zs_uid42_lzcShifterZ1_uid10_fxpToFPTest_q;
|
||||
default : vStagei_uid46_lzcShifterZ1_uid10_fxpToFPTest_q = 32'b0;
|
||||
endcase
|
||||
end
|
||||
|
||||
// vCount_uid49_lzcShifterZ1_uid10_fxpToFPTest(LOGICAL,48)@2
|
||||
assign vCount_uid49_lzcShifterZ1_uid10_fxpToFPTest_q = rVStage_uid48_lzcShifterZ1_uid10_fxpToFPTest_merged_bit_select_b == zs_uid47_lzcShifterZ1_uid10_fxpToFPTest_q ? 1'b1 : 1'b0;
|
||||
|
||||
// vStagei_uid53_lzcShifterZ1_uid10_fxpToFPTest(MUX,52)@2 + 1
|
||||
assign vStagei_uid53_lzcShifterZ1_uid10_fxpToFPTest_s = vCount_uid49_lzcShifterZ1_uid10_fxpToFPTest_q;
|
||||
always @ (posedge clk or posedge areset)
|
||||
begin
|
||||
if (areset)
|
||||
begin
|
||||
vStagei_uid53_lzcShifterZ1_uid10_fxpToFPTest_q <= 32'b0;
|
||||
end
|
||||
else if (en == 1'b1)
|
||||
begin
|
||||
unique case (vStagei_uid53_lzcShifterZ1_uid10_fxpToFPTest_s)
|
||||
1'b0 : vStagei_uid53_lzcShifterZ1_uid10_fxpToFPTest_q <= vStagei_uid46_lzcShifterZ1_uid10_fxpToFPTest_q;
|
||||
1'b1 : vStagei_uid53_lzcShifterZ1_uid10_fxpToFPTest_q <= cStage_uid52_lzcShifterZ1_uid10_fxpToFPTest_q;
|
||||
default : vStagei_uid53_lzcShifterZ1_uid10_fxpToFPTest_q <= 32'b0;
|
||||
endcase
|
||||
end
|
||||
end
|
||||
|
||||
// vCount_uid56_lzcShifterZ1_uid10_fxpToFPTest(LOGICAL,55)@3
|
||||
assign vCount_uid56_lzcShifterZ1_uid10_fxpToFPTest_q = rVStage_uid55_lzcShifterZ1_uid10_fxpToFPTest_merged_bit_select_b == expZ_uid37_fxpToFPTest_q ? 1'b1 : 1'b0;
|
||||
|
||||
// vStagei_uid60_lzcShifterZ1_uid10_fxpToFPTest(MUX,59)@3 + 1
|
||||
assign vStagei_uid60_lzcShifterZ1_uid10_fxpToFPTest_s = vCount_uid56_lzcShifterZ1_uid10_fxpToFPTest_q;
|
||||
always @ (posedge clk or posedge areset)
|
||||
begin
|
||||
if (areset)
|
||||
begin
|
||||
vStagei_uid60_lzcShifterZ1_uid10_fxpToFPTest_q <= 32'b0;
|
||||
end
|
||||
else if (en == 1'b1)
|
||||
begin
|
||||
unique case (vStagei_uid60_lzcShifterZ1_uid10_fxpToFPTest_s)
|
||||
1'b0 : vStagei_uid60_lzcShifterZ1_uid10_fxpToFPTest_q <= vStagei_uid53_lzcShifterZ1_uid10_fxpToFPTest_q;
|
||||
1'b1 : vStagei_uid60_lzcShifterZ1_uid10_fxpToFPTest_q <= cStage_uid59_lzcShifterZ1_uid10_fxpToFPTest_q;
|
||||
default : vStagei_uid60_lzcShifterZ1_uid10_fxpToFPTest_q <= 32'b0;
|
||||
endcase
|
||||
end
|
||||
end
|
||||
|
||||
// vCount_uid63_lzcShifterZ1_uid10_fxpToFPTest(LOGICAL,62)@4
|
||||
assign vCount_uid63_lzcShifterZ1_uid10_fxpToFPTest_q = rVStage_uid62_lzcShifterZ1_uid10_fxpToFPTest_merged_bit_select_b == zs_uid61_lzcShifterZ1_uid10_fxpToFPTest_q ? 1'b1 : 1'b0;
|
||||
|
||||
// vStagei_uid67_lzcShifterZ1_uid10_fxpToFPTest(MUX,66)@4
|
||||
assign vStagei_uid67_lzcShifterZ1_uid10_fxpToFPTest_s = vCount_uid63_lzcShifterZ1_uid10_fxpToFPTest_q;
|
||||
always @(vStagei_uid67_lzcShifterZ1_uid10_fxpToFPTest_s or en or vStagei_uid60_lzcShifterZ1_uid10_fxpToFPTest_q or cStage_uid66_lzcShifterZ1_uid10_fxpToFPTest_q)
|
||||
begin
|
||||
unique case (vStagei_uid67_lzcShifterZ1_uid10_fxpToFPTest_s)
|
||||
1'b0 : vStagei_uid67_lzcShifterZ1_uid10_fxpToFPTest_q = vStagei_uid60_lzcShifterZ1_uid10_fxpToFPTest_q;
|
||||
1'b1 : vStagei_uid67_lzcShifterZ1_uid10_fxpToFPTest_q = cStage_uid66_lzcShifterZ1_uid10_fxpToFPTest_q;
|
||||
default : vStagei_uid67_lzcShifterZ1_uid10_fxpToFPTest_q = 32'b0;
|
||||
endcase
|
||||
end
|
||||
|
||||
// vCount_uid70_lzcShifterZ1_uid10_fxpToFPTest(LOGICAL,69)@4
|
||||
assign vCount_uid70_lzcShifterZ1_uid10_fxpToFPTest_q = rVStage_uid69_lzcShifterZ1_uid10_fxpToFPTest_merged_bit_select_b == zs_uid68_lzcShifterZ1_uid10_fxpToFPTest_q ? 1'b1 : 1'b0;
|
||||
|
||||
// vStagei_uid74_lzcShifterZ1_uid10_fxpToFPTest(MUX,73)@4 + 1
|
||||
assign vStagei_uid74_lzcShifterZ1_uid10_fxpToFPTest_s = vCount_uid70_lzcShifterZ1_uid10_fxpToFPTest_q;
|
||||
always @ (posedge clk or posedge areset)
|
||||
begin
|
||||
if (areset)
|
||||
begin
|
||||
vStagei_uid74_lzcShifterZ1_uid10_fxpToFPTest_q <= 32'b0;
|
||||
end
|
||||
else if (en == 1'b1)
|
||||
begin
|
||||
unique case (vStagei_uid74_lzcShifterZ1_uid10_fxpToFPTest_s)
|
||||
1'b0 : vStagei_uid74_lzcShifterZ1_uid10_fxpToFPTest_q <= vStagei_uid67_lzcShifterZ1_uid10_fxpToFPTest_q;
|
||||
1'b1 : vStagei_uid74_lzcShifterZ1_uid10_fxpToFPTest_q <= cStage_uid73_lzcShifterZ1_uid10_fxpToFPTest_q;
|
||||
default : vStagei_uid74_lzcShifterZ1_uid10_fxpToFPTest_q <= 32'b0;
|
||||
endcase
|
||||
end
|
||||
end
|
||||
|
||||
// vCount_uid77_lzcShifterZ1_uid10_fxpToFPTest(LOGICAL,76)@5
|
||||
assign vCount_uid77_lzcShifterZ1_uid10_fxpToFPTest_q = rVStage_uid76_lzcShifterZ1_uid10_fxpToFPTest_merged_bit_select_b == GND_q ? 1'b1 : 1'b0;
|
||||
|
||||
// vStagei_uid81_lzcShifterZ1_uid10_fxpToFPTest(MUX,80)@5
|
||||
assign vStagei_uid81_lzcShifterZ1_uid10_fxpToFPTest_s = vCount_uid77_lzcShifterZ1_uid10_fxpToFPTest_q;
|
||||
always @(vStagei_uid81_lzcShifterZ1_uid10_fxpToFPTest_s or en or vStagei_uid74_lzcShifterZ1_uid10_fxpToFPTest_q or cStage_uid80_lzcShifterZ1_uid10_fxpToFPTest_q)
|
||||
begin
|
||||
unique case (vStagei_uid81_lzcShifterZ1_uid10_fxpToFPTest_s)
|
||||
1'b0 : vStagei_uid81_lzcShifterZ1_uid10_fxpToFPTest_q = vStagei_uid74_lzcShifterZ1_uid10_fxpToFPTest_q;
|
||||
1'b1 : vStagei_uid81_lzcShifterZ1_uid10_fxpToFPTest_q = cStage_uid80_lzcShifterZ1_uid10_fxpToFPTest_q;
|
||||
default : vStagei_uid81_lzcShifterZ1_uid10_fxpToFPTest_q = 32'b0;
|
||||
endcase
|
||||
end
|
||||
|
||||
// fracRnd_uid15_fxpToFPTest_merged_bit_select(BITSELECT,94)@5
|
||||
assign fracRnd_uid15_fxpToFPTest_merged_bit_select_in = vStagei_uid81_lzcShifterZ1_uid10_fxpToFPTest_q[30:0];
|
||||
assign fracRnd_uid15_fxpToFPTest_merged_bit_select_b = fracRnd_uid15_fxpToFPTest_merged_bit_select_in[30:7];
|
||||
assign fracRnd_uid15_fxpToFPTest_merged_bit_select_c = fracRnd_uid15_fxpToFPTest_merged_bit_select_in[6:0];
|
||||
|
||||
// sticky_uid20_fxpToFPTest(LOGICAL,19)@5 + 1
|
||||
assign sticky_uid20_fxpToFPTest_qi = fracRnd_uid15_fxpToFPTest_merged_bit_select_c != 7'b0000000 ? 1'b1 : 1'b0;
|
||||
dspba_delay_ver #( .width(1), .depth(1), .reset_kind("ASYNC") )
|
||||
sticky_uid20_fxpToFPTest_delay ( .xin(sticky_uid20_fxpToFPTest_qi), .xout(sticky_uid20_fxpToFPTest_q), .ena(en[0]), .clk(clk), .aclr(areset) );
|
||||
|
||||
// nr_uid21_fxpToFPTest(LOGICAL,20)@6
|
||||
assign nr_uid21_fxpToFPTest_q = ~ (l_uid17_fxpToFPTest_merged_bit_select_c);
|
||||
|
||||
// maxCount_uid11_fxpToFPTest(CONSTANT,10)
|
||||
assign maxCount_uid11_fxpToFPTest_q = 6'b100000;
|
||||
|
||||
// redist5_vCount_uid44_lzcShifterZ1_uid10_fxpToFPTest_q_4(DELAY,100)
|
||||
dspba_delay_ver #( .width(1), .depth(3), .reset_kind("ASYNC") )
|
||||
redist5_vCount_uid44_lzcShifterZ1_uid10_fxpToFPTest_q_4 ( .xin(vCount_uid44_lzcShifterZ1_uid10_fxpToFPTest_q), .xout(redist5_vCount_uid44_lzcShifterZ1_uid10_fxpToFPTest_q_4_q), .ena(en[0]), .clk(clk), .aclr(areset) );
|
||||
|
||||
// redist4_vCount_uid49_lzcShifterZ1_uid10_fxpToFPTest_q_3(DELAY,99)
|
||||
dspba_delay_ver #( .width(1), .depth(3), .reset_kind("ASYNC") )
|
||||
redist4_vCount_uid49_lzcShifterZ1_uid10_fxpToFPTest_q_3 ( .xin(vCount_uid49_lzcShifterZ1_uid10_fxpToFPTest_q), .xout(redist4_vCount_uid49_lzcShifterZ1_uid10_fxpToFPTest_q_3_q), .ena(en[0]), .clk(clk), .aclr(areset) );
|
||||
|
||||
// redist3_vCount_uid56_lzcShifterZ1_uid10_fxpToFPTest_q_2(DELAY,98)
|
||||
dspba_delay_ver #( .width(1), .depth(2), .reset_kind("ASYNC") )
|
||||
redist3_vCount_uid56_lzcShifterZ1_uid10_fxpToFPTest_q_2 ( .xin(vCount_uid56_lzcShifterZ1_uid10_fxpToFPTest_q), .xout(redist3_vCount_uid56_lzcShifterZ1_uid10_fxpToFPTest_q_2_q), .ena(en[0]), .clk(clk), .aclr(areset) );
|
||||
|
||||
// redist2_vCount_uid63_lzcShifterZ1_uid10_fxpToFPTest_q_1(DELAY,97)
|
||||
dspba_delay_ver #( .width(1), .depth(1), .reset_kind("ASYNC") )
|
||||
redist2_vCount_uid63_lzcShifterZ1_uid10_fxpToFPTest_q_1 ( .xin(vCount_uid63_lzcShifterZ1_uid10_fxpToFPTest_q), .xout(redist2_vCount_uid63_lzcShifterZ1_uid10_fxpToFPTest_q_1_q), .ena(en[0]), .clk(clk), .aclr(areset) );
|
||||
|
||||
// redist1_vCount_uid70_lzcShifterZ1_uid10_fxpToFPTest_q_1(DELAY,96)
|
||||
dspba_delay_ver #( .width(1), .depth(1), .reset_kind("ASYNC") )
|
||||
redist1_vCount_uid70_lzcShifterZ1_uid10_fxpToFPTest_q_1 ( .xin(vCount_uid70_lzcShifterZ1_uid10_fxpToFPTest_q), .xout(redist1_vCount_uid70_lzcShifterZ1_uid10_fxpToFPTest_q_1_q), .ena(en[0]), .clk(clk), .aclr(areset) );
|
||||
|
||||
// vCount_uid82_lzcShifterZ1_uid10_fxpToFPTest(BITJOIN,81)@5
|
||||
assign vCount_uid82_lzcShifterZ1_uid10_fxpToFPTest_q = {redist5_vCount_uid44_lzcShifterZ1_uid10_fxpToFPTest_q_4_q, redist4_vCount_uid49_lzcShifterZ1_uid10_fxpToFPTest_q_3_q, redist3_vCount_uid56_lzcShifterZ1_uid10_fxpToFPTest_q_2_q, redist2_vCount_uid63_lzcShifterZ1_uid10_fxpToFPTest_q_1_q, redist1_vCount_uid70_lzcShifterZ1_uid10_fxpToFPTest_q_1_q, vCount_uid77_lzcShifterZ1_uid10_fxpToFPTest_q};
|
||||
|
||||
// vCountBig_uid84_lzcShifterZ1_uid10_fxpToFPTest(COMPARE,83)@5
|
||||
assign vCountBig_uid84_lzcShifterZ1_uid10_fxpToFPTest_a = {2'b00, maxCount_uid11_fxpToFPTest_q};
|
||||
assign vCountBig_uid84_lzcShifterZ1_uid10_fxpToFPTest_b = {2'b00, vCount_uid82_lzcShifterZ1_uid10_fxpToFPTest_q};
|
||||
assign vCountBig_uid84_lzcShifterZ1_uid10_fxpToFPTest_o = $unsigned(vCountBig_uid84_lzcShifterZ1_uid10_fxpToFPTest_a) - $unsigned(vCountBig_uid84_lzcShifterZ1_uid10_fxpToFPTest_b);
|
||||
assign vCountBig_uid84_lzcShifterZ1_uid10_fxpToFPTest_c[0] = vCountBig_uid84_lzcShifterZ1_uid10_fxpToFPTest_o[7];
|
||||
|
||||
// vCountFinal_uid86_lzcShifterZ1_uid10_fxpToFPTest(MUX,85)@5 + 1
|
||||
assign vCountFinal_uid86_lzcShifterZ1_uid10_fxpToFPTest_s = vCountBig_uid84_lzcShifterZ1_uid10_fxpToFPTest_c;
|
||||
always @ (posedge clk or posedge areset)
|
||||
begin
|
||||
if (areset)
|
||||
begin
|
||||
vCountFinal_uid86_lzcShifterZ1_uid10_fxpToFPTest_q <= 6'b0;
|
||||
end
|
||||
else if (en == 1'b1)
|
||||
begin
|
||||
unique case (vCountFinal_uid86_lzcShifterZ1_uid10_fxpToFPTest_s)
|
||||
1'b0 : vCountFinal_uid86_lzcShifterZ1_uid10_fxpToFPTest_q <= vCount_uid82_lzcShifterZ1_uid10_fxpToFPTest_q;
|
||||
1'b1 : vCountFinal_uid86_lzcShifterZ1_uid10_fxpToFPTest_q <= maxCount_uid11_fxpToFPTest_q;
|
||||
default : vCountFinal_uid86_lzcShifterZ1_uid10_fxpToFPTest_q <= 6'b0;
|
||||
endcase
|
||||
end
|
||||
end
|
||||
|
||||
// msbIn_uid13_fxpToFPTest(CONSTANT,12)
|
||||
assign msbIn_uid13_fxpToFPTest_q = 8'b10011110;
|
||||
|
||||
// expPreRnd_uid14_fxpToFPTest(SUB,13)@6
|
||||
assign expPreRnd_uid14_fxpToFPTest_a = {1'b0, msbIn_uid13_fxpToFPTest_q};
|
||||
assign expPreRnd_uid14_fxpToFPTest_b = {3'b000, vCountFinal_uid86_lzcShifterZ1_uid10_fxpToFPTest_q};
|
||||
assign expPreRnd_uid14_fxpToFPTest_o = $unsigned(expPreRnd_uid14_fxpToFPTest_a) - $unsigned(expPreRnd_uid14_fxpToFPTest_b);
|
||||
assign expPreRnd_uid14_fxpToFPTest_q = expPreRnd_uid14_fxpToFPTest_o[8:0];
|
||||
|
||||
// redist0_fracRnd_uid15_fxpToFPTest_merged_bit_select_b_1(DELAY,95)
|
||||
dspba_delay_ver #( .width(24), .depth(1), .reset_kind("ASYNC") )
|
||||
redist0_fracRnd_uid15_fxpToFPTest_merged_bit_select_b_1 ( .xin(fracRnd_uid15_fxpToFPTest_merged_bit_select_b), .xout(redist0_fracRnd_uid15_fxpToFPTest_merged_bit_select_b_1_q), .ena(en[0]), .clk(clk), .aclr(areset) );
|
||||
|
||||
// expFracRnd_uid16_fxpToFPTest(BITJOIN,15)@6
|
||||
assign expFracRnd_uid16_fxpToFPTest_q = {expPreRnd_uid14_fxpToFPTest_q, redist0_fracRnd_uid15_fxpToFPTest_merged_bit_select_b_1_q};
|
||||
|
||||
// l_uid17_fxpToFPTest_merged_bit_select(BITSELECT,88)@6
|
||||
assign l_uid17_fxpToFPTest_merged_bit_select_in = expFracRnd_uid16_fxpToFPTest_q[1:0];
|
||||
assign l_uid17_fxpToFPTest_merged_bit_select_b = l_uid17_fxpToFPTest_merged_bit_select_in[1:1];
|
||||
assign l_uid17_fxpToFPTest_merged_bit_select_c = l_uid17_fxpToFPTest_merged_bit_select_in[0:0];
|
||||
|
||||
// rnd_uid22_fxpToFPTest(LOGICAL,21)@6 + 1
|
||||
assign rnd_uid22_fxpToFPTest_qi = l_uid17_fxpToFPTest_merged_bit_select_b | nr_uid21_fxpToFPTest_q | sticky_uid20_fxpToFPTest_q;
|
||||
dspba_delay_ver #( .width(1), .depth(1), .reset_kind("ASYNC") )
|
||||
rnd_uid22_fxpToFPTest_delay ( .xin(rnd_uid22_fxpToFPTest_qi), .xout(rnd_uid22_fxpToFPTest_q), .ena(en[0]), .clk(clk), .aclr(areset) );
|
||||
|
||||
// redist8_expFracRnd_uid16_fxpToFPTest_q_1(DELAY,103)
|
||||
dspba_delay_ver #( .width(33), .depth(1), .reset_kind("ASYNC") )
|
||||
redist8_expFracRnd_uid16_fxpToFPTest_q_1 ( .xin(expFracRnd_uid16_fxpToFPTest_q), .xout(redist8_expFracRnd_uid16_fxpToFPTest_q_1_q), .ena(en[0]), .clk(clk), .aclr(areset) );
|
||||
|
||||
// expFracR_uid24_fxpToFPTest(ADD,23)@7
|
||||
assign expFracR_uid24_fxpToFPTest_a = {{2{redist8_expFracRnd_uid16_fxpToFPTest_q_1_q[32]}}, redist8_expFracRnd_uid16_fxpToFPTest_q_1_q};
|
||||
assign expFracR_uid24_fxpToFPTest_b = {34'b0000000000000000000000000000000000, rnd_uid22_fxpToFPTest_q};
|
||||
assign expFracR_uid24_fxpToFPTest_o = $signed(expFracR_uid24_fxpToFPTest_a) + $signed(expFracR_uid24_fxpToFPTest_b);
|
||||
assign expFracR_uid24_fxpToFPTest_q = expFracR_uid24_fxpToFPTest_o[33:0];
|
||||
|
||||
// expR_uid26_fxpToFPTest(BITSELECT,25)@7
|
||||
assign expR_uid26_fxpToFPTest_b = expFracR_uid24_fxpToFPTest_q[33:24];
|
||||
|
||||
// redist6_expR_uid26_fxpToFPTest_b_1(DELAY,101)
|
||||
dspba_delay_ver #( .width(10), .depth(1), .reset_kind("ASYNC") )
|
||||
redist6_expR_uid26_fxpToFPTest_b_1 ( .xin(expR_uid26_fxpToFPTest_b), .xout(redist6_expR_uid26_fxpToFPTest_b_1_q), .ena(en[0]), .clk(clk), .aclr(areset) );
|
||||
|
||||
// expR_uid38_fxpToFPTest(BITSELECT,37)@8
|
||||
assign expR_uid38_fxpToFPTest_in = redist6_expR_uid26_fxpToFPTest_b_1_q[7:0];
|
||||
assign expR_uid38_fxpToFPTest_b = expR_uid38_fxpToFPTest_in[7:0];
|
||||
|
||||
// ovf_uid29_fxpToFPTest(COMPARE,28)@8
|
||||
assign ovf_uid29_fxpToFPTest_a = {{2{redist6_expR_uid26_fxpToFPTest_b_1_q[9]}}, redist6_expR_uid26_fxpToFPTest_b_1_q};
|
||||
assign ovf_uid29_fxpToFPTest_b = {4'b0000, expInf_uid28_fxpToFPTest_q};
|
||||
assign ovf_uid29_fxpToFPTest_o = $signed(ovf_uid29_fxpToFPTest_a) - $signed(ovf_uid29_fxpToFPTest_b);
|
||||
assign ovf_uid29_fxpToFPTest_n[0] = ~ (ovf_uid29_fxpToFPTest_o[11]);
|
||||
|
||||
// inIsZero_uid12_fxpToFPTest(LOGICAL,11)@6 + 1
|
||||
assign inIsZero_uid12_fxpToFPTest_qi = vCountFinal_uid86_lzcShifterZ1_uid10_fxpToFPTest_q == maxCount_uid11_fxpToFPTest_q ? 1'b1 : 1'b0;
|
||||
dspba_delay_ver #( .width(1), .depth(1), .reset_kind("ASYNC") )
|
||||
inIsZero_uid12_fxpToFPTest_delay ( .xin(inIsZero_uid12_fxpToFPTest_qi), .xout(inIsZero_uid12_fxpToFPTest_q), .ena(en[0]), .clk(clk), .aclr(areset) );
|
||||
|
||||
// redist9_inIsZero_uid12_fxpToFPTest_q_2(DELAY,104)
|
||||
dspba_delay_ver #( .width(1), .depth(1), .reset_kind("ASYNC") )
|
||||
redist9_inIsZero_uid12_fxpToFPTest_q_2 ( .xin(inIsZero_uid12_fxpToFPTest_q), .xout(redist9_inIsZero_uid12_fxpToFPTest_q_2_q), .ena(en[0]), .clk(clk), .aclr(areset) );
|
||||
|
||||
// udf_uid27_fxpToFPTest(COMPARE,26)@8
|
||||
assign udf_uid27_fxpToFPTest_a = {11'b00000000000, GND_q};
|
||||
assign udf_uid27_fxpToFPTest_b = {{2{redist6_expR_uid26_fxpToFPTest_b_1_q[9]}}, redist6_expR_uid26_fxpToFPTest_b_1_q};
|
||||
assign udf_uid27_fxpToFPTest_o = $signed(udf_uid27_fxpToFPTest_a) - $signed(udf_uid27_fxpToFPTest_b);
|
||||
assign udf_uid27_fxpToFPTest_n[0] = ~ (udf_uid27_fxpToFPTest_o[11]);
|
||||
|
||||
// udfOrInZero_uid33_fxpToFPTest(LOGICAL,32)@8
|
||||
assign udfOrInZero_uid33_fxpToFPTest_q = udf_uid27_fxpToFPTest_n | redist9_inIsZero_uid12_fxpToFPTest_q_2_q;
|
||||
|
||||
// excSelector_uid34_fxpToFPTest(BITJOIN,33)@8
|
||||
assign excSelector_uid34_fxpToFPTest_q = {ovf_uid29_fxpToFPTest_n, udfOrInZero_uid33_fxpToFPTest_q};
|
||||
|
||||
// expRPostExc_uid39_fxpToFPTest(MUX,38)@8
|
||||
assign expRPostExc_uid39_fxpToFPTest_s = excSelector_uid34_fxpToFPTest_q;
|
||||
always @(expRPostExc_uid39_fxpToFPTest_s or en or expR_uid38_fxpToFPTest_b or expZ_uid37_fxpToFPTest_q or expInf_uid28_fxpToFPTest_q)
|
||||
begin
|
||||
unique case (expRPostExc_uid39_fxpToFPTest_s)
|
||||
2'b00 : expRPostExc_uid39_fxpToFPTest_q = expR_uid38_fxpToFPTest_b;
|
||||
2'b01 : expRPostExc_uid39_fxpToFPTest_q = expZ_uid37_fxpToFPTest_q;
|
||||
2'b10 : expRPostExc_uid39_fxpToFPTest_q = expInf_uid28_fxpToFPTest_q;
|
||||
2'b11 : expRPostExc_uid39_fxpToFPTest_q = expInf_uid28_fxpToFPTest_q;
|
||||
default : expRPostExc_uid39_fxpToFPTest_q = 8'b0;
|
||||
endcase
|
||||
end
|
||||
|
||||
// fracZ_uid31_fxpToFPTest(CONSTANT,30)
|
||||
assign fracZ_uid31_fxpToFPTest_q = 23'b00000000000000000000000;
|
||||
|
||||
// fracR_uid25_fxpToFPTest(BITSELECT,24)@7
|
||||
assign fracR_uid25_fxpToFPTest_in = expFracR_uid24_fxpToFPTest_q[23:0];
|
||||
assign fracR_uid25_fxpToFPTest_b = fracR_uid25_fxpToFPTest_in[23:1];
|
||||
|
||||
// redist7_fracR_uid25_fxpToFPTest_b_1(DELAY,102)
|
||||
dspba_delay_ver #( .width(23), .depth(1), .reset_kind("ASYNC") )
|
||||
redist7_fracR_uid25_fxpToFPTest_b_1 ( .xin(fracR_uid25_fxpToFPTest_b), .xout(redist7_fracR_uid25_fxpToFPTest_b_1_q), .ena(en[0]), .clk(clk), .aclr(areset) );
|
||||
|
||||
// excSelector_uid30_fxpToFPTest(LOGICAL,29)@8
|
||||
assign excSelector_uid30_fxpToFPTest_q = redist9_inIsZero_uid12_fxpToFPTest_q_2_q | ovf_uid29_fxpToFPTest_n | udf_uid27_fxpToFPTest_n;
|
||||
|
||||
// fracRPostExc_uid32_fxpToFPTest(MUX,31)@8
|
||||
assign fracRPostExc_uid32_fxpToFPTest_s = excSelector_uid30_fxpToFPTest_q;
|
||||
always @(fracRPostExc_uid32_fxpToFPTest_s or en or redist7_fracR_uid25_fxpToFPTest_b_1_q or fracZ_uid31_fxpToFPTest_q)
|
||||
begin
|
||||
unique case (fracRPostExc_uid32_fxpToFPTest_s)
|
||||
1'b0 : fracRPostExc_uid32_fxpToFPTest_q = redist7_fracR_uid25_fxpToFPTest_b_1_q;
|
||||
1'b1 : fracRPostExc_uid32_fxpToFPTest_q = fracZ_uid31_fxpToFPTest_q;
|
||||
default : fracRPostExc_uid32_fxpToFPTest_q = 23'b0;
|
||||
endcase
|
||||
end
|
||||
|
||||
// outRes_uid40_fxpToFPTest(BITJOIN,39)@8
|
||||
assign outRes_uid40_fxpToFPTest_q = {redist12_signX_uid6_fxpToFPTest_b_8_q, expRPostExc_uid39_fxpToFPTest_q, fracRPostExc_uid32_fxpToFPTest_q};
|
||||
|
||||
// xOut(GPOUT,4)@8
|
||||
assign q = outRes_uid40_fxpToFPTest_q;
|
||||
|
||||
endmodule
|
|
@ -1,63 +0,0 @@
|
|||
// (C) 1992-2014 Altera Corporation. All rights reserved.
|
||||
// Your use of Altera Corporation's design tools, logic functions and other
|
||||
// software and tools, and its AMPP partner logic functions, and any output
|
||||
// files any of the foregoing (including device programming or simulation
|
||||
// files), and any associated documentation or information are expressly subject
|
||||
// to the terms and conditions of the Altera Program License Subscription
|
||||
// Agreement, Altera MegaCore Function License Agreement, or other applicable
|
||||
// license agreement, including, without limitation, that your use is for the
|
||||
// sole purpose of programming logic devices manufactured by Altera and sold by
|
||||
// Altera or its authorized distributors. Please refer to the applicable
|
||||
// agreement for further details.
|
||||
|
||||
module acl_fp_multadd(dataa, datab, datac, clock, enable, result);
|
||||
// a*b + c
|
||||
input [31:0] dataa;
|
||||
input [31:0] datab;
|
||||
input [31:0] datac;
|
||||
input clock;
|
||||
input enable;
|
||||
output [31:0] result;
|
||||
|
||||
// FP MAC wysiwyg
|
||||
twentynm_fp_mac mac_fp_wys (
|
||||
// inputs
|
||||
.accumulate(),
|
||||
.chainin_overflow(),
|
||||
.chainin_invalid(),
|
||||
.chainin_underflow(),
|
||||
.chainin_inexact(),
|
||||
.ax(datac),
|
||||
.ay(datab),
|
||||
.az(dataa),
|
||||
.clk({2'b00,clock}),
|
||||
.ena({2'b11,enable}),
|
||||
.aclr(2'b00),
|
||||
.chainin(),
|
||||
// outputs
|
||||
.overflow(),
|
||||
.invalid(),
|
||||
.underflow(),
|
||||
.inexact(),
|
||||
.chainout_overflow(),
|
||||
.chainout_invalid(),
|
||||
.chainout_underflow(),
|
||||
.chainout_inexact(),
|
||||
.resulta(result),
|
||||
.chainout()
|
||||
);
|
||||
defparam mac_fp_wys.operation_mode = "sp_mult_add";
|
||||
defparam mac_fp_wys.use_chainin = "false";
|
||||
defparam mac_fp_wys.adder_subtract = "true";
|
||||
defparam mac_fp_wys.ax_clock = "0";
|
||||
defparam mac_fp_wys.ay_clock = "0";
|
||||
defparam mac_fp_wys.az_clock = "0";
|
||||
defparam mac_fp_wys.output_clock = "0";
|
||||
defparam mac_fp_wys.accumulate_clock = "none";
|
||||
defparam mac_fp_wys.ax_chainin_pl_clock = "0";
|
||||
defparam mac_fp_wys.accum_pipeline_clock = "none";
|
||||
defparam mac_fp_wys.mult_pipeline_clock = "0";
|
||||
defparam mac_fp_wys.adder_input_clock = "0";
|
||||
defparam mac_fp_wys.accum_adder_clock = "none";
|
||||
|
||||
endmodule
|
|
@ -1,67 +0,0 @@
|
|||
// (C) 1992-2016 Intel Corporation.
|
||||
// Intel, the Intel logo, Intel, MegaCore, NIOS II, Quartus and TalkBack words
|
||||
// and logos are trademarks of Intel Corporation or its subsidiaries in the U.S.
|
||||
// and/or other countries. Other marks and brands may be claimed as the property
|
||||
// of others. See Trademarks on intel.com for full list of Intel trademarks or
|
||||
// the Trademarks & Brands Names Database (if Intel) or See www.Intel.com/legal (if Altera)
|
||||
// Your use of Intel Corporation's design tools, logic functions and other
|
||||
// software and tools, and its AMPP partner logic functions, and any output
|
||||
// files any of the foregoing (including device programming or simulation
|
||||
// files), and any associated documentation or information are expressly subject
|
||||
// to the terms and conditions of the Altera Program License Subscription
|
||||
// Agreement, Intel MegaCore Function License Agreement, or other applicable
|
||||
// license agreement, including, without limitation, that your use is for the
|
||||
// sole purpose of programming logic devices manufactured by Intel and sold by
|
||||
// Intel or its authorized distributors. Please refer to the applicable
|
||||
// agreement for further details.
|
||||
|
||||
module acl_fp_mul(dataa, datab, clock, enable, result);
|
||||
|
||||
input [31:0] dataa;
|
||||
input [31:0] datab;
|
||||
input clock, enable;
|
||||
|
||||
output [31:0] result;
|
||||
|
||||
// FP MAC wysiwyg
|
||||
twentynm_fp_mac mac_fp_wys (
|
||||
// inputs
|
||||
.accumulate(),
|
||||
.chainin_overflow(),
|
||||
.chainin_invalid(),
|
||||
.chainin_underflow(),
|
||||
.chainin_inexact(),
|
||||
.ax(),
|
||||
.ay(datab),
|
||||
.az(dataa),
|
||||
.clk({2'b00,clock}),
|
||||
.ena({2'b11,enable}),
|
||||
.aclr(2'b00),
|
||||
.chainin(),
|
||||
// outputs
|
||||
.overflow(),
|
||||
.invalid(),
|
||||
.underflow(),
|
||||
.inexact(),
|
||||
.chainout_overflow(),
|
||||
.chainout_invalid(),
|
||||
.chainout_underflow(),
|
||||
.chainout_inexact(),
|
||||
.resulta(result),
|
||||
.chainout()
|
||||
);
|
||||
defparam mac_fp_wys.operation_mode = "sp_mult";
|
||||
defparam mac_fp_wys.use_chainin = "false";
|
||||
defparam mac_fp_wys.adder_subtract = "false";
|
||||
defparam mac_fp_wys.ax_clock = "none";
|
||||
defparam mac_fp_wys.ay_clock = "0";
|
||||
defparam mac_fp_wys.az_clock = "0";
|
||||
defparam mac_fp_wys.output_clock = "0";
|
||||
defparam mac_fp_wys.accumulate_clock = "none";
|
||||
defparam mac_fp_wys.ax_chainin_pl_clock = "none";
|
||||
defparam mac_fp_wys.accum_pipeline_clock = "none";
|
||||
defparam mac_fp_wys.mult_pipeline_clock = "0";
|
||||
defparam mac_fp_wys.adder_input_clock = "none";
|
||||
defparam mac_fp_wys.accum_adder_clock = "none";
|
||||
|
||||
endmodule
|
|
@ -1,63 +0,0 @@
|
|||
// (C) 1992-2014 Altera Corporation. All rights reserved.
|
||||
// Your use of Altera Corporation's design tools, logic functions and other
|
||||
// software and tools, and its AMPP partner logic functions, and any output
|
||||
// files any of the foregoing (including device programming or simulation
|
||||
// files), and any associated documentation or information are expressly subject
|
||||
// to the terms and conditions of the Altera Program License Subscription
|
||||
// Agreement, Altera MegaCore Function License Agreement, or other applicable
|
||||
// license agreement, including, without limitation, that your use is for the
|
||||
// sole purpose of programming logic devices manufactured by Altera and sold by
|
||||
// Altera or its authorized distributors. Please refer to the applicable
|
||||
// agreement for further details.
|
||||
|
||||
module acl_fp_multadd(dataa, datab, datac, clock, enable, result);
|
||||
// a*b + c
|
||||
input [31:0] dataa;
|
||||
input [31:0] datab;
|
||||
input [31:0] datac;
|
||||
input clock;
|
||||
input enable;
|
||||
output [31:0] result;
|
||||
|
||||
// FP MAC wysiwyg
|
||||
twentynm_fp_mac mac_fp_wys (
|
||||
// inputs
|
||||
.accumulate(),
|
||||
.chainin_overflow(),
|
||||
.chainin_invalid(),
|
||||
.chainin_underflow(),
|
||||
.chainin_inexact(),
|
||||
.ax(datac),
|
||||
.ay(datab),
|
||||
.az(dataa),
|
||||
.clk({2'b00,clock}),
|
||||
.ena({2'b11,enable}),
|
||||
.aclr(2'b00),
|
||||
.chainin(),
|
||||
// outputs
|
||||
.overflow(),
|
||||
.invalid(),
|
||||
.underflow(),
|
||||
.inexact(),
|
||||
.chainout_overflow(),
|
||||
.chainout_invalid(),
|
||||
.chainout_underflow(),
|
||||
.chainout_inexact(),
|
||||
.resulta(result),
|
||||
.chainout()
|
||||
);
|
||||
defparam mac_fp_wys.operation_mode = "sp_mult_add";
|
||||
defparam mac_fp_wys.use_chainin = "false";
|
||||
defparam mac_fp_wys.adder_subtract = "false";
|
||||
defparam mac_fp_wys.ax_clock = "0";
|
||||
defparam mac_fp_wys.ay_clock = "0";
|
||||
defparam mac_fp_wys.az_clock = "0";
|
||||
defparam mac_fp_wys.output_clock = "0";
|
||||
defparam mac_fp_wys.accumulate_clock = "none";
|
||||
defparam mac_fp_wys.ax_chainin_pl_clock = "0";
|
||||
defparam mac_fp_wys.accum_pipeline_clock = "none";
|
||||
defparam mac_fp_wys.mult_pipeline_clock = "0";
|
||||
defparam mac_fp_wys.adder_input_clock = "0";
|
||||
defparam mac_fp_wys.accum_adder_clock = "none";
|
||||
|
||||
endmodule
|
1128
hw/rtl/fp_cores/altera/acl_fp_sqrt.sv
Normal file
1128
hw/rtl/fp_cores/altera/acl_fp_sqrt.sv
Normal file
File diff suppressed because it is too large
Load diff
|
@ -0,0 +1,258 @@
|
|||
:020000040000FA
|
||||
:0400000008000004F0
|
||||
:040001000807FC08E8
|
||||
:04000200080FF024CF
|
||||
:040003000817DC6F8F
|
||||
:04000400081FC0FF12
|
||||
:0400050008279DEC3F
|
||||
:04000600082F734C00
|
||||
:040007000837413342
|
||||
:04000800083F07B7EF
|
||||
:040009000846C6EEF1
|
||||
:04000A00084E7EEB33
|
||||
:04000B0008562FC2A2
|
||||
:04000C00085DD9882A
|
||||
:04000D0008657C4FB7
|
||||
:04000E00086D182B36
|
||||
:04000F000874AD2E96
|
||||
:04001000087C3B6BC2
|
||||
:040011000883C2F3AB
|
||||
:04001200088B43D83C
|
||||
:040013000892BE2D64
|
||||
:04001400089A320113
|
||||
:0400150008A19F6639
|
||||
:0400160008A9066DC2
|
||||
:0400170008B06725A1
|
||||
:0400180008B7C19EC6
|
||||
:0400190008BF15E91E
|
||||
:04001A0008C664159B
|
||||
:04001B0008CDAC312F
|
||||
:04001C0008D4EE4CCA
|
||||
:04001D0008DC2A755C
|
||||
:04001E0008E360BAD9
|
||||
:04001F0008EA912931
|
||||
:0400200008F1BBD256
|
||||
:0400210008F8E0C13A
|
||||
:0400220009000004CD
|
||||
:04002300090719A907
|
||||
:04002400090E2DBCD8
|
||||
:0400250009153C4C31
|
||||
:04002600091C456408
|
||||
:04002700092349114F
|
||||
:04002800092A4761F9
|
||||
:040029000931405EFB
|
||||
:04002A000938341548
|
||||
:04002B00093F2292D5
|
||||
:04002C0009460BE195
|
||||
:04002D00094CF00D7D
|
||||
:04002E000953CF2182
|
||||
:04002F00095AA92998
|
||||
:0400300009617E31B3
|
||||
:0400310009684E42CA
|
||||
:04003200096F1967D2
|
||||
:040033000975DFACC0
|
||||
:04003400097CA11A88
|
||||
:0400350009835DBC22
|
||||
:04003600098A159C82
|
||||
:040037000990C8C59F
|
||||
:040038000997773F6E
|
||||
:04003900099E2115E6
|
||||
:04003A0009A4C650FF
|
||||
:04003B0009AB66FAAD
|
||||
:04003C0009B2031CE6
|
||||
:04003D0009B89AC0A4
|
||||
:04003E0009BF2DEEDB
|
||||
:04003F0009C5BCB083
|
||||
:0400400009CC470E92
|
||||
:0400410009D2CD1102
|
||||
:0400420009D94EC3C7
|
||||
:0400430009DFCC2ADB
|
||||
:0400440009E6455133
|
||||
:0400450009ECBA3FC9
|
||||
:0400460009F32AFC94
|
||||
:0400470009F997908C
|
||||
:040048000A000004A6
|
||||
:040049000A06645FE0
|
||||
:04004A000A0CC4AA2E
|
||||
:04004B000A1320EC88
|
||||
:04004C000A19792CE8
|
||||
:04004D000A1FCD7247
|
||||
:04004E000A261DC69B
|
||||
:04004F000A2C6A2FDE
|
||||
:040050000A32B2B40A
|
||||
:040051000A38F75C16
|
||||
:040052000A3F382EFB
|
||||
:040053000A457532B3
|
||||
:040054000A4BAE6F36
|
||||
:040055000A51E3EA7F
|
||||
:040056000A5815AC83
|
||||
:040057000A5E43BA40
|
||||
:040058000A646E1BAD
|
||||
:040059000A6A94D6C5
|
||||
:04005A000A70B7F180
|
||||
:04005B000A76D773D7
|
||||
:04005C000A7CF362C5
|
||||
:04005D000A830BC443
|
||||
:04005E000A89209F4C
|
||||
:04005F000A8F31F9DA
|
||||
:040060000A953FD9E5
|
||||
:040061000A9B4A4468
|
||||
:040062000AA151405E
|
||||
:040063000AA754D4C0
|
||||
:040064000AAD550488
|
||||
:040065000AB351D7B2
|
||||
:040066000AB94B5236
|
||||
:040067000ABF417A11
|
||||
:040068000AC534563B
|
||||
:040069000ACB23EBB0
|
||||
:04006A000AD1103E69
|
||||
:04006B000AD6F95464
|
||||
:04006C000ADCDF3398
|
||||
:04006D000AE2C1E002
|
||||
:04006E000AE8A15F9C
|
||||
:04006F000AEE7DB860
|
||||
:040070000AF456ED4B
|
||||
:040071000AFA2D0555
|
||||
:040072000B0000047B
|
||||
:040073000B05CFEFBB
|
||||
:040074000B0B9CCC0A
|
||||
:040075000B11669E67
|
||||
:040076000B172D6BCC
|
||||
:040077000B1CF13736
|
||||
:040078000B22B2079E
|
||||
:040079000B286FDF02
|
||||
:04007A000B2E2AC55A
|
||||
:04007B000B33E2BDA4
|
||||
:04007C000B3997CBDA
|
||||
:04007D000B3F49F3F9
|
||||
:04007E000B44F93AFC
|
||||
:04007F000B4AA5A5DE
|
||||
:040080000B504F3C96
|
||||
:040081000B5B99E894
|
||||
:040082000B66D966CA
|
||||
:040083000B720DD619
|
||||
:040084000B7D375861
|
||||
:040085000B88560E80
|
||||
:040086000B936A145A
|
||||
:040087000B9E738ACF
|
||||
:040088000BA97290BE
|
||||
:040089000BB4673E0F
|
||||
:04008A000BBF51B6A1
|
||||
:04008B000BCA321456
|
||||
:04008C000BD5087018
|
||||
:04008D000BDFD4EAC7
|
||||
:04008E000BEA979A48
|
||||
:04008F000BF5509C81
|
||||
:040090000C00000858
|
||||
:040091000C0AA5FAB6
|
||||
:040092000C1542887F
|
||||
:040093000C1FD5CE9B
|
||||
:040094000C2A5FE2F1
|
||||
:040095000C34E0DC6B
|
||||
:040096000C3F58D4EF
|
||||
:040097000C49C7E267
|
||||
:040098000C542E1ABC
|
||||
:040099000C5E8B96D8
|
||||
:04009A000C68E068A6
|
||||
:04009B000C732CA610
|
||||
:04009C000C7D7068FF
|
||||
:04009D000C87ABC25F
|
||||
:04009E000C91DEC81B
|
||||
:04009F000C9C098C20
|
||||
:0400A0000CA62C2658
|
||||
:0400A1000CB046A6B3
|
||||
:0400A2000CBA592219
|
||||
:0400A3000CC463AC7A
|
||||
:0400A4000CCE6654C4
|
||||
:0400A5000CD86132E0
|
||||
:0400A6000CE25454C0
|
||||
:0400A7000CEC3FCC52
|
||||
:0400A8000CF623AE81
|
||||
:0400A9000D0000083E
|
||||
:0400AA000D09D4EE7A
|
||||
:0400AB000D13A2701F
|
||||
:0400AC000D1D689E20
|
||||
:0400AD000D2727886C
|
||||
:0400AE000D30DF3EF4
|
||||
:0400AF000D3A8FD2A5
|
||||
:0400B0000D44395270
|
||||
:0400B1000D4DDBCE48
|
||||
:0400B2000D5777541B
|
||||
:0400B3000D610BF4DC
|
||||
:0400B4000D6A99BC7C
|
||||
:0400B5000D7420BCEA
|
||||
:0400B6000D7DA10219
|
||||
:0400B7000D871A9CFB
|
||||
:0400B8000D908D9684
|
||||
:0400B9000D99FA00A3
|
||||
:0400BA000DA35FE84B
|
||||
:0400BB000DACBF5A6F
|
||||
:0400BC000DB6186401
|
||||
:0400BD000DBF6B12F6
|
||||
:0400BE000DC8B7743E
|
||||
:0400BF000DD1FD92D0
|
||||
:0400C0000DDB3D7C9B
|
||||
:0400C1000DE4773E95
|
||||
:0400C2000DEDAAE2B4
|
||||
:0400C3000DF6D878E6
|
||||
:0400C4000E00000822
|
||||
:0400C5000E0921A05F
|
||||
:0400C6000E123D4C8D
|
||||
:0400C7000E1B5314A5
|
||||
:0400C8000E24630897
|
||||
:0400C9000E2D6D305B
|
||||
:0400CA000E36719AE3
|
||||
:0400CB000E3F704E26
|
||||
:0400CC000E4869561B
|
||||
:0400CD000E515CC0B4
|
||||
:0400CE000E5A4A96E6
|
||||
:0400CF000E6332E0AA
|
||||
:0400D0000E6C15AAF3
|
||||
:0400D1000E74F2FEB9
|
||||
:0400D2000E7DCAE6EF
|
||||
:0400D3000E869D6C8C
|
||||
:0400D4000E8F6A9889
|
||||
:0400D5000E983276D9
|
||||
:0400D6000EA0F51073
|
||||
:0400D7000EA9B26C50
|
||||
:0400D8000EB26A9862
|
||||
:0400D9000EBB1D98A5
|
||||
:0400DA000EC3CB7A0C
|
||||
:0400DB000ECC74448F
|
||||
:0400DC000ED5180025
|
||||
:0400DD000EDDB6B6C8
|
||||
:0400DE000EE650706A
|
||||
:0400DF000EEEE53606
|
||||
:0400E0000EF7751092
|
||||
:0400E1000F00000804
|
||||
:0400E2000F08862459
|
||||
:0400E3000F11076E84
|
||||
:0400E4000F1983EE7F
|
||||
:0400E5000F21FBAC40
|
||||
:0400E6000F2A6EAEC1
|
||||
:0400E7000F32DD00F7
|
||||
:0400E8000F3B46A4E0
|
||||
:0400E9000F43ABA86E
|
||||
:0400EA000F4C0C109B
|
||||
:0400EB000F5467E463
|
||||
:0400EC000F5CBF2ABC
|
||||
:0400ED000F6511EE9C
|
||||
:0400EE000F6D603200
|
||||
:0400EF000F75AA02DD
|
||||
:0400F0000F7DEF6031
|
||||
:0400F1000F863058EE
|
||||
:0400F2000F8E6CEE13
|
||||
:0400F3000F96A52A95
|
||||
:0400F4000F9ED9146E
|
||||
:0400F5000FA708B099
|
||||
:0400F6000FAF34060E
|
||||
:0400F7000FB75B1EC6
|
||||
:0400F8000FBF7DFEBB
|
||||
:0400F9000FC79CACE5
|
||||
:0400FA000FCFB72C41
|
||||
:0400FB000FD7CD8AC4
|
||||
:0400FC000FDFDFC86B
|
||||
:0400FD000FE7EDEC30
|
||||
:0400FE000FEFF80008
|
||||
:0400FF000FF7FE08F1
|
||||
:00000001ff
|
|
@ -0,0 +1,258 @@
|
|||
:020000040000FA
|
||||
:0300000007FFFEF9
|
||||
:0300010007F809F4
|
||||
:0300020007F02DD7
|
||||
:0300030007E866A5
|
||||
:0300040007E0BA58
|
||||
:0300050007D922F6
|
||||
:0300060007D19C83
|
||||
:0300070007CA31F4
|
||||
:0300080007C2D953
|
||||
:0300090007BB949E
|
||||
:03000A0007B465D3
|
||||
:03000B0007AD4AF4
|
||||
:03000C0007A64103
|
||||
:03000D00079F4DFD
|
||||
:03000E0007986AE6
|
||||
:03000F0007919BBB
|
||||
:03001000078ADB81
|
||||
:030011000784322F
|
||||
:03001200077D9ACD
|
||||
:0300130007770F5D
|
||||
:03001400077099D9
|
||||
:03001500076A3344
|
||||
:030016000763D9A4
|
||||
:03001700075D94EE
|
||||
:0300180007575F28
|
||||
:0300190007513854
|
||||
:03001A00074B1F72
|
||||
:03001B0007451680
|
||||
:03001C00073F1E7D
|
||||
:03001D000739316F
|
||||
:03001E000733564F
|
||||
:03001F00072D8A20
|
||||
:030020000727C7E8
|
||||
:030021000722159E
|
||||
:03002200071C7048
|
||||
:030023000716D9E4
|
||||
:0300240007115071
|
||||
:03002500070BD0F6
|
||||
:030026000706606A
|
||||
:030027000700FED1
|
||||
:0300280006FBA133
|
||||
:0300290006F65583
|
||||
:03002A0006F116C6
|
||||
:03002B0006EBE2FF
|
||||
:03002C0006E6B82D
|
||||
:03002D0006E19C4D
|
||||
:03002E0006DC8D60
|
||||
:03002F0006D7866B
|
||||
:0300300006D2886D
|
||||
:0300310006CD9861
|
||||
:0300320006C8B34A
|
||||
:0300330006C3D62B
|
||||
:0300340006BF06FE
|
||||
:0300350006BA40C8
|
||||
:0300360006B58488
|
||||
:0300370006B0CD43
|
||||
:0300380006AC24EF
|
||||
:0300390006A78592
|
||||
:03003A0006A2F02B
|
||||
:03003B00069E64BA
|
||||
:03003C000699E141
|
||||
:03003D00069566BF
|
||||
:03003E000690F633
|
||||
:03003F00068C8D9F
|
||||
:0300400006882F00
|
||||
:030041000683D95A
|
||||
:03004200067F8AAC
|
||||
:03004300067B46F3
|
||||
:0300440006770834
|
||||
:030045000672D16F
|
||||
:03004600066EA59E
|
||||
:03004700066A82C4
|
||||
:03004800066666E3
|
||||
:03004900066253F9
|
||||
:03004A00065E440B
|
||||
:03004B00065A3E14
|
||||
:03004C0006564114
|
||||
:03004D0006524C0C
|
||||
:03004E00064E5CFF
|
||||
:03004F00064A73EB
|
||||
:03005000064693CE
|
||||
:030051000642BBA9
|
||||
:03005200063EEB7C
|
||||
:03005300063B1F4A
|
||||
:0300540006375A12
|
||||
:0300550006339DD2
|
||||
:03005600062FE58D
|
||||
:03005700062C363E
|
||||
:0300580006288DEA
|
||||
:030059000624EB8F
|
||||
:03005A0006214F2D
|
||||
:03005B00061DB7C8
|
||||
:03005C00061A265B
|
||||
:03005D0006169BE9
|
||||
:03005E000613186E
|
||||
:03005F00060F9CED
|
||||
:03006000060C2467
|
||||
:030061000608B3DB
|
||||
:0300620006054848
|
||||
:030063000601E0B3
|
||||
:0300640005FE8016
|
||||
:0300650005FB2573
|
||||
:0300660005F7D0CB
|
||||
:0300670005F4831A
|
||||
:0300680005F13867
|
||||
:0300690005EDF1B1
|
||||
:03006A0005EAB1F3
|
||||
:03006B0005E7782E
|
||||
:03006C0005E44266
|
||||
:03006D0005E11298
|
||||
:03006E0005DDEDC0
|
||||
:03006F0005DAC4EB
|
||||
:0300700005D7A60B
|
||||
:0300710005D48A29
|
||||
:0300720005D17441
|
||||
:0300730005CE6552
|
||||
:0300740005CB5465
|
||||
:0300750005C84D6E
|
||||
:0300760005C54974
|
||||
:0300770005C24B74
|
||||
:0300780005BF536E
|
||||
:0300790005BC6063
|
||||
:03007A0005B96E57
|
||||
:03007B0005B68047
|
||||
:03007C0005B39831
|
||||
:03007D0005B0B714
|
||||
:03007E0005ADD9F4
|
||||
:03007F0005AAFED1
|
||||
:030080000B504AD8
|
||||
:030081000B450C20
|
||||
:030082000B39EE49
|
||||
:030083000B2EF24F
|
||||
:030084000B241634
|
||||
:030085000B1956FE
|
||||
:030086000B0EB8A6
|
||||
:030087000B043A2D
|
||||
:030088000AF9D0A2
|
||||
:030089000AEF90EB
|
||||
:03008A000AE5661E
|
||||
:03008B000ADB5637
|
||||
:03008C000AD1682E
|
||||
:03008D000AC78E11
|
||||
:03008E000ABDD2D6
|
||||
:03008F000AB42E82
|
||||
:030090000AAAA811
|
||||
:030091000AA13889
|
||||
:030092000A97E4E6
|
||||
:030093000A8EA42E
|
||||
:030094000A85805A
|
||||
:030095000A7C766C
|
||||
:030096000A737E6C
|
||||
:030097000A6A9E54
|
||||
:030098000A61D822
|
||||
:030099000A591CE5
|
||||
:03009A000A508287
|
||||
:03009B000A480010
|
||||
:03009C000A3F8A8E
|
||||
:03009D000A372CF3
|
||||
:03009E000A2EDE49
|
||||
:03009F000A26AA84
|
||||
:0300A0000A1E86AF
|
||||
:0300A1000A167AC2
|
||||
:0300A2000A0E7EC5
|
||||
:0300A3000A0692B8
|
||||
:0300A40009FEC092
|
||||
:0300A50009F6F861
|
||||
:0300A60009EF4619
|
||||
:0300A70009E7AABC
|
||||
:0300A80009E01656
|
||||
:0300A90009D89CD7
|
||||
:0300AA0009D12E4B
|
||||
:0300AB0009C9D0B0
|
||||
:0300AC0009C28402
|
||||
:0300AD0009BB4C40
|
||||
:0300AE0009B4246E
|
||||
:0300AF0009AD0692
|
||||
:0300B00009A5F8A7
|
||||
:0300B100099EFAAB
|
||||
:0300B20009980E9C
|
||||
:0300B3000991327E
|
||||
:0300B400098A6452
|
||||
:0300B5000983A21A
|
||||
:0300B600097CECD6
|
||||
:0300B70009764483
|
||||
:0300B800096FB21B
|
||||
:0300B900096928AA
|
||||
:0300BA000962AA2E
|
||||
:0300BB00095C3CA1
|
||||
:0300BC000955DA09
|
||||
:0300BD00094F8662
|
||||
:0300BE0009493AB3
|
||||
:0300BF00094302F0
|
||||
:0300C000093CD226
|
||||
:0300C1000936B04D
|
||||
:0300C20009309C66
|
||||
:0300C300092A8E79
|
||||
:0300C4000924927A
|
||||
:0300C500091EA071
|
||||
:0300C6000918B462
|
||||
:0300C7000912DE3D
|
||||
:0300C800090D0C13
|
||||
:0300C900090746DE
|
||||
:0300CA00090188A1
|
||||
:0300CB0008FBDA55
|
||||
:0300CC0008F63AF9
|
||||
:0300CD0008F09E9A
|
||||
:0300CE0008EB0C30
|
||||
:0300CF0008E588B9
|
||||
:0300D00008E00E37
|
||||
:0300D10008DA9CAE
|
||||
:0300D20008D5321C
|
||||
:0300D30008CFD47F
|
||||
:0300D40008CA84D3
|
||||
:0300D50008C53A21
|
||||
:0300D60008BFF66A
|
||||
:0300D70008BAC4A0
|
||||
:0300D80008B590D8
|
||||
:0300D90008B070FC
|
||||
:0300DA0008AB521E
|
||||
:0300DB0008A64034
|
||||
:0300DC0008A13840
|
||||
:0300DD00089C3844
|
||||
:0300DE0008974040
|
||||
:0300DF0008925034
|
||||
:0300E000088D6A1E
|
||||
:0300E10008888804
|
||||
:0300E2000883B4DC
|
||||
:0300E300087EE6AE
|
||||
:0300E400087A1C7B
|
||||
:0300E50008755E3D
|
||||
:0300E6000870ACF3
|
||||
:0300E700086BF6AD
|
||||
:0300E80008675452
|
||||
:0300E9000862B2F8
|
||||
:0300EA00085E1895
|
||||
:0300EB0008598A27
|
||||
:0300EC00085504B0
|
||||
:0300ED0008508038
|
||||
:0300EE00084C0CAF
|
||||
:0300EF000847942B
|
||||
:0300F00008432C96
|
||||
:0300F100083EC600
|
||||
:0300F200083A6A5F
|
||||
:0300F300083612BA
|
||||
:0300F4000831C010
|
||||
:0300F500082D7A59
|
||||
:0300F60008293A9C
|
||||
:0300F7000824FCDE
|
||||
:0300F8000820C21B
|
||||
:0300F900081C944C
|
||||
:0300FA0008187073
|
||||
:0300FB000814489E
|
||||
:0300FC00081030B9
|
||||
:0300FD00080C1ECE
|
||||
:0300FE0008080EE1
|
||||
:0300FF000803FEF5
|
||||
:00000001ff
|
|
@ -0,0 +1,258 @@
|
|||
:020000040000FA
|
||||
:020000000C06EC
|
||||
:020001000C13DE
|
||||
:020002000C1DD3
|
||||
:020003000C2AC5
|
||||
:020004000C33BB
|
||||
:020005000C3DB0
|
||||
:020006000C4BA1
|
||||
:020007000C5398
|
||||
:020008000C5E8C
|
||||
:020009000C6980
|
||||
:02000A000C7276
|
||||
:02000B000C7C6B
|
||||
:02000C000C8660
|
||||
:02000D000C8F56
|
||||
:02000E000C994B
|
||||
:02000F000CA142
|
||||
:020010000CAD35
|
||||
:020011000CB32E
|
||||
:020012000CBB25
|
||||
:020013000CC51A
|
||||
:020014000CCC12
|
||||
:020015000CD30A
|
||||
:020016000CDFFD
|
||||
:020017000CE5F6
|
||||
:020018000CECEE
|
||||
:020019000CF4E5
|
||||
:02001A000CFDDB
|
||||
:02001B000D05D1
|
||||
:02001C000D0ACB
|
||||
:02001D000D14C0
|
||||
:02001E000D19BA
|
||||
:02001F000D1FB3
|
||||
:020020000D28A9
|
||||
:020021000D2EA2
|
||||
:020022000D359A
|
||||
:020023000D3A94
|
||||
:020024000D408D
|
||||
:020025000D4884
|
||||
:020026000D4D7E
|
||||
:020027000D5179
|
||||
:020028000D5C6D
|
||||
:020029000D6266
|
||||
:02002A000D6760
|
||||
:02002B000D6D59
|
||||
:02002C000D7451
|
||||
:02002D000D784C
|
||||
:02002E000D7B48
|
||||
:02002F000D8240
|
||||
:020030000D8938
|
||||
:020031000D8D33
|
||||
:020032000D922D
|
||||
:020033000D9826
|
||||
:020034000D9C21
|
||||
:020035000DA01C
|
||||
:020036000DA417
|
||||
:020037000DAD0D
|
||||
:020038000DB207
|
||||
:020039000DB602
|
||||
:02003A000DBAFD
|
||||
:02003B000DBEF8
|
||||
:02003C000DC3F2
|
||||
:02003D000DC8EC
|
||||
:02003E000DCCE7
|
||||
:02003F000DD1E1
|
||||
:020040000DD4DD
|
||||
:020041000DD9D7
|
||||
:020042000DDDD2
|
||||
:020043000DE1CD
|
||||
:020044000DE5C8
|
||||
:020045000DECC0
|
||||
:020046000DEFBC
|
||||
:020047000DF2B8
|
||||
:020048000DF5B4
|
||||
:020049000DF8B0
|
||||
:02004A000DFEA9
|
||||
:02004B000E02A3
|
||||
:02004C000E059F
|
||||
:02004D000E089B
|
||||
:02004E000E0D95
|
||||
:02004F000E128F
|
||||
:020050000E158B
|
||||
:020051000E1788
|
||||
:020052000E1985
|
||||
:020053000E1E7F
|
||||
:020054000E217B
|
||||
:020055000E2576
|
||||
:020056000E2971
|
||||
:020057000E2B6E
|
||||
:020058000E2E6A
|
||||
:020059000E3067
|
||||
:02005A000E3363
|
||||
:02005B000E385D
|
||||
:02005C000E3C58
|
||||
:02005D000E4053
|
||||
:02005E000E4250
|
||||
:02005F000E444D
|
||||
:020060000E4749
|
||||
:020061000E4946
|
||||
:020062000E4C42
|
||||
:020063000E503D
|
||||
:020064000E5339
|
||||
:020065000E5635
|
||||
:020066000E5832
|
||||
:020067000E5930
|
||||
:020068000E5D2B
|
||||
:020069000E6225
|
||||
:02006A000E6521
|
||||
:02006B000E671E
|
||||
:02006C000E6B19
|
||||
:02006D000E6E15
|
||||
:02006E000E6B17
|
||||
:02006F000E7110
|
||||
:020070000E720E
|
||||
:020071000E750A
|
||||
:020072000E7707
|
||||
:020073000E7706
|
||||
:020074000E7EFE
|
||||
:020075000E80FB
|
||||
:020076000E83F7
|
||||
:020077000E85F4
|
||||
:020078000E85F3
|
||||
:020079000E86F1
|
||||
:02007A000E8AEC
|
||||
:02007B000E8EE7
|
||||
:02007C000E90E4
|
||||
:02007D000E90E3
|
||||
:02007E000E92E0
|
||||
:02007F000E94DD
|
||||
:020080000A6212
|
||||
:020081000A7201
|
||||
:020082000A82F0
|
||||
:020083000A90E1
|
||||
:020084000AA0D0
|
||||
:020085000AB0BF
|
||||
:020086000ABEB0
|
||||
:020087000ACAA3
|
||||
:020088000ADE8E
|
||||
:020089000AE883
|
||||
:02008A000AF872
|
||||
:02008B000B0662
|
||||
:02008C000B1255
|
||||
:02008D000B2244
|
||||
:02008E000B3035
|
||||
:02008F000B3E26
|
||||
:020090000B4A19
|
||||
:020091000B560C
|
||||
:020092000B62FF
|
||||
:020093000B70F0
|
||||
:020094000B7AE5
|
||||
:020095000B82DC
|
||||
:020096000B90CD
|
||||
:020097000B9AC2
|
||||
:020098000BA2B9
|
||||
:020099000BB6A4
|
||||
:02009A000BBC9D
|
||||
:02009B000BC296
|
||||
:02009C000BD087
|
||||
:02009D000BD87E
|
||||
:02009E000BE66F
|
||||
:02009F000BF064
|
||||
:0200A0000BFA59
|
||||
:0200A1000C024F
|
||||
:0200A2000C0A46
|
||||
:0200A3000C1639
|
||||
:0200A4000C1E30
|
||||
:0200A5000C2A23
|
||||
:0200A6000C321A
|
||||
:0200A7000C3615
|
||||
:0200A8000C4406
|
||||
:0200A9000C4AFF
|
||||
:0200AA000C54F4
|
||||
:0200AB000C5EE9
|
||||
:0200AC000C66E0
|
||||
:0200AD000C6ADB
|
||||
:0200AE000C70D4
|
||||
:0200AF000C7AC9
|
||||
:0200B0000C84BE
|
||||
:0200B1000C8CB5
|
||||
:0200B2000C92AE
|
||||
:0200B3000C96A9
|
||||
:0200B4000C9CA2
|
||||
:0200B5000CA499
|
||||
:0200B6000CAE8E
|
||||
:0200B7000CB685
|
||||
:0200B8000CB882
|
||||
:0200B9000CC079
|
||||
:0200BA000CC870
|
||||
:0200BB000CCE69
|
||||
:0200BC000CD462
|
||||
:0200BD000CDC59
|
||||
:0200BE000CE450
|
||||
:0200BF000CE84B
|
||||
:0200C0000CF042
|
||||
:0200C1000CF43D
|
||||
:0200C2000CFA36
|
||||
:0200C3000D022C
|
||||
:0200C4000D0627
|
||||
:0200C5000D0A22
|
||||
:0200C6000D1417
|
||||
:0200C7000D1614
|
||||
:0200C8000D1C0D
|
||||
:0200C9000D2404
|
||||
:0200CA000D2CFB
|
||||
:0200CB000D2EF8
|
||||
:0200CC000D30F5
|
||||
:0200CD000D38EC
|
||||
:0200CE000D3EE5
|
||||
:0200CF000D42E0
|
||||
:0200D0000D46DB
|
||||
:0200D1000D4CD4
|
||||
:0200D2000D54CB
|
||||
:0200D3000D58C6
|
||||
:0200D4000D5AC3
|
||||
:0200D5000D60BC
|
||||
:0200D6000D66B5
|
||||
:0200D7000D66B4
|
||||
:0200D8000D70A9
|
||||
:0200D9000D72A6
|
||||
:0200DA000D789F
|
||||
:0200DB000D7C9A
|
||||
:0200DC000D7E97
|
||||
:0200DD000D8292
|
||||
:0200DE000D868D
|
||||
:0200DF000D8A88
|
||||
:0200E0000D8E83
|
||||
:0200E1000D947C
|
||||
:0200E2000D9679
|
||||
:0200E3000D9A74
|
||||
:0200E4000DA26B
|
||||
:0200E5000DA468
|
||||
:0200E6000DA467
|
||||
:0200E7000DAE5C
|
||||
:0200E8000DB059
|
||||
:0200E9000DB652
|
||||
:0200EA000DBC4B
|
||||
:0200EB000DBC4A
|
||||
:0200EC000DC045
|
||||
:0200ED000DC440
|
||||
:0200EE000DC241
|
||||
:0200EF000DCA38
|
||||
:0200F0000DCC35
|
||||
:0200F1000DD030
|
||||
:0200F2000DD22D
|
||||
:0200F3000DD826
|
||||
:0200F4000DDC21
|
||||
:0200F5000DDC20
|
||||
:0200F6000DDE1D
|
||||
:0200F7000DE416
|
||||
:0200F8000DEC0D
|
||||
:0200F9000DEC0C
|
||||
:0200FA000DEE09
|
||||
:0200FB000DF600
|
||||
:0200FC000DF401
|
||||
:0200FD000DF6FE
|
||||
:0200FE000DF8FB
|
||||
:0200FF000E02EF
|
||||
:00000001ff
|
|
@ -1,67 +0,0 @@
|
|||
// (C) 1992-2016 Intel Corporation.
|
||||
// Intel, the Intel logo, Intel, MegaCore, NIOS II, Quartus and TalkBack words
|
||||
// and logos are trademarks of Intel Corporation or its subsidiaries in the U.S.
|
||||
// and/or other countries. Other marks and brands may be claimed as the property
|
||||
// of others. See Trademarks on intel.com for full list of Intel trademarks or
|
||||
// the Trademarks & Brands Names Database (if Intel) or See www.Intel.com/legal (if Altera)
|
||||
// Your use of Intel Corporation's design tools, logic functions and other
|
||||
// software and tools, and its AMPP partner logic functions, and any output
|
||||
// files any of the foregoing (including device programming or simulation
|
||||
// files), and any associated documentation or information are expressly subject
|
||||
// to the terms and conditions of the Altera Program License Subscription
|
||||
// Agreement, Intel MegaCore Function License Agreement, or other applicable
|
||||
// license agreement, including, without limitation, that your use is for the
|
||||
// sole purpose of programming logic devices manufactured by Intel and sold by
|
||||
// Intel or its authorized distributors. Please refer to the applicable
|
||||
// agreement for further details.
|
||||
|
||||
module acl_fp_add(dataa, datab, clock, enable, result);
|
||||
|
||||
input [31:0] dataa;
|
||||
input [31:0] datab;
|
||||
input clock, enable;
|
||||
|
||||
output [31:0] result;
|
||||
|
||||
// FP MAC wysiwyg
|
||||
twentynm_fp_mac mac_fp_wys (
|
||||
// inputs
|
||||
.accumulate(),
|
||||
.chainin_overflow(),
|
||||
.chainin_invalid(),
|
||||
.chainin_underflow(),
|
||||
.chainin_inexact(),
|
||||
.ax(dataa),
|
||||
.ay(datab),
|
||||
.az(),
|
||||
.clk({2'b00,clock}),
|
||||
.ena({2'b11,enable}),
|
||||
.aclr(2'b00),
|
||||
.chainin(),
|
||||
// outputs
|
||||
.overflow(),
|
||||
.invalid(),
|
||||
.underflow(),
|
||||
.inexact(),
|
||||
.chainout_overflow(),
|
||||
.chainout_invalid(),
|
||||
.chainout_underflow(),
|
||||
.chainout_inexact(),
|
||||
.resulta(result),
|
||||
.chainout()
|
||||
);
|
||||
defparam mac_fp_wys.operation_mode = "sp_add";
|
||||
defparam mac_fp_wys.use_chainin = "false";
|
||||
defparam mac_fp_wys.adder_subtract = "true";
|
||||
defparam mac_fp_wys.ax_clock = "0";
|
||||
defparam mac_fp_wys.ay_clock = "0";
|
||||
defparam mac_fp_wys.az_clock = "none";
|
||||
defparam mac_fp_wys.output_clock = "0";
|
||||
defparam mac_fp_wys.accumulate_clock = "none";
|
||||
defparam mac_fp_wys.ax_chainin_pl_clock = "none";
|
||||
defparam mac_fp_wys.accum_pipeline_clock = "none";
|
||||
defparam mac_fp_wys.mult_pipeline_clock = "none";
|
||||
defparam mac_fp_wys.adder_input_clock = "0";
|
||||
defparam mac_fp_wys.accum_adder_clock = "none";
|
||||
|
||||
endmodule
|
486
hw/rtl/fp_cores/altera/acl_fp_utof.sv
Normal file
486
hw/rtl/fp_cores/altera/acl_fp_utof.sv
Normal file
|
@ -0,0 +1,486 @@
|
|||
// -------------------------------------------------------------------------
|
||||
// High Level Design Compiler for Intel(R) FPGAs Version 17.1 (Release Build #273)
|
||||
// Quartus Prime development tool and MATLAB/Simulink Interface
|
||||
//
|
||||
// Legal Notice: Copyright 2017 Intel Corporation. All rights reserved.
|
||||
// Your use of Intel Corporation's design tools, logic functions and other
|
||||
// software and tools, and its AMPP partner logic functions, and any output
|
||||
// files any of the foregoing (including device programming or simulation
|
||||
// files), and any associated documentation or information are expressly
|
||||
// subject to the terms and conditions of the Intel FPGA Software License
|
||||
// Agreement, Intel MegaCore Function License Agreement, or other applicable
|
||||
// license agreement, including, without limitation, that your use is for
|
||||
// the sole purpose of programming logic devices manufactured by Intel
|
||||
// and sold by Intel or its authorized distributors. Please refer to the
|
||||
// applicable agreement for further details.
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
// SystemVerilog created from acl_fp_utof
|
||||
// SystemVerilog created on Wed Aug 5 12:58:16 2020
|
||||
|
||||
|
||||
(* altera_attribute = "-name AUTO_SHIFT_REGISTER_RECOGNITION OFF; -name MESSAGE_DISABLE 10036; -name MESSAGE_DISABLE 10037; -name MESSAGE_DISABLE 14130; -name MESSAGE_DISABLE 14320; -name MESSAGE_DISABLE 15400; -name MESSAGE_DISABLE 14130; -name MESSAGE_DISABLE 10036; -name MESSAGE_DISABLE 12020; -name MESSAGE_DISABLE 12030; -name MESSAGE_DISABLE 12010; -name MESSAGE_DISABLE 12110; -name MESSAGE_DISABLE 14320; -name MESSAGE_DISABLE 13410; -name MESSAGE_DISABLE 113007; -name MESSAGE_DISABLE 10958" *)
|
||||
module acl_fp_utof (
|
||||
input wire [31:0] a,
|
||||
input wire [0:0] en,
|
||||
output wire [31:0] q,
|
||||
input wire clk,
|
||||
input wire areset
|
||||
);
|
||||
|
||||
wire [0:0] GND_q;
|
||||
wire [5:0] maxCount_uid7_fxpToFPTest_q;
|
||||
wire [0:0] inIsZero_uid8_fxpToFPTest_qi;
|
||||
reg [0:0] inIsZero_uid8_fxpToFPTest_q;
|
||||
wire [7:0] msbIn_uid9_fxpToFPTest_q;
|
||||
wire [8:0] expPreRnd_uid10_fxpToFPTest_a;
|
||||
wire [8:0] expPreRnd_uid10_fxpToFPTest_b;
|
||||
logic [8:0] expPreRnd_uid10_fxpToFPTest_o;
|
||||
wire [8:0] expPreRnd_uid10_fxpToFPTest_q;
|
||||
wire [32:0] expFracRnd_uid12_fxpToFPTest_q;
|
||||
wire [0:0] sticky_uid16_fxpToFPTest_qi;
|
||||
reg [0:0] sticky_uid16_fxpToFPTest_q;
|
||||
wire [0:0] nr_uid17_fxpToFPTest_q;
|
||||
wire [0:0] rnd_uid18_fxpToFPTest_qi;
|
||||
reg [0:0] rnd_uid18_fxpToFPTest_q;
|
||||
wire [34:0] expFracR_uid20_fxpToFPTest_a;
|
||||
wire [34:0] expFracR_uid20_fxpToFPTest_b;
|
||||
logic [34:0] expFracR_uid20_fxpToFPTest_o;
|
||||
wire [33:0] expFracR_uid20_fxpToFPTest_q;
|
||||
wire [23:0] fracR_uid21_fxpToFPTest_in;
|
||||
wire [22:0] fracR_uid21_fxpToFPTest_b;
|
||||
wire [9:0] expR_uid22_fxpToFPTest_b;
|
||||
wire [11:0] udf_uid23_fxpToFPTest_a;
|
||||
wire [11:0] udf_uid23_fxpToFPTest_b;
|
||||
logic [11:0] udf_uid23_fxpToFPTest_o;
|
||||
wire [0:0] udf_uid23_fxpToFPTest_n;
|
||||
wire [7:0] expInf_uid24_fxpToFPTest_q;
|
||||
wire [11:0] ovf_uid25_fxpToFPTest_a;
|
||||
wire [11:0] ovf_uid25_fxpToFPTest_b;
|
||||
logic [11:0] ovf_uid25_fxpToFPTest_o;
|
||||
wire [0:0] ovf_uid25_fxpToFPTest_n;
|
||||
wire [0:0] excSelector_uid26_fxpToFPTest_q;
|
||||
wire [22:0] fracZ_uid27_fxpToFPTest_q;
|
||||
wire [0:0] fracRPostExc_uid28_fxpToFPTest_s;
|
||||
reg [22:0] fracRPostExc_uid28_fxpToFPTest_q;
|
||||
wire [0:0] udfOrInZero_uid29_fxpToFPTest_q;
|
||||
wire [1:0] excSelector_uid30_fxpToFPTest_q;
|
||||
wire [7:0] expZ_uid33_fxpToFPTest_q;
|
||||
wire [7:0] expR_uid34_fxpToFPTest_in;
|
||||
wire [7:0] expR_uid34_fxpToFPTest_b;
|
||||
wire [1:0] expRPostExc_uid35_fxpToFPTest_s;
|
||||
reg [7:0] expRPostExc_uid35_fxpToFPTest_q;
|
||||
wire [31:0] outRes_uid36_fxpToFPTest_q;
|
||||
wire [31:0] zs_uid38_lzcShifterZ1_uid6_fxpToFPTest_q;
|
||||
wire [0:0] vCount_uid40_lzcShifterZ1_uid6_fxpToFPTest_qi;
|
||||
reg [0:0] vCount_uid40_lzcShifterZ1_uid6_fxpToFPTest_q;
|
||||
wire [0:0] vStagei_uid42_lzcShifterZ1_uid6_fxpToFPTest_s;
|
||||
reg [31:0] vStagei_uid42_lzcShifterZ1_uid6_fxpToFPTest_q;
|
||||
wire [15:0] zs_uid43_lzcShifterZ1_uid6_fxpToFPTest_q;
|
||||
wire [0:0] vCount_uid45_lzcShifterZ1_uid6_fxpToFPTest_q;
|
||||
wire [31:0] cStage_uid48_lzcShifterZ1_uid6_fxpToFPTest_q;
|
||||
wire [0:0] vStagei_uid49_lzcShifterZ1_uid6_fxpToFPTest_s;
|
||||
reg [31:0] vStagei_uid49_lzcShifterZ1_uid6_fxpToFPTest_q;
|
||||
wire [0:0] vCount_uid52_lzcShifterZ1_uid6_fxpToFPTest_q;
|
||||
wire [31:0] cStage_uid55_lzcShifterZ1_uid6_fxpToFPTest_q;
|
||||
wire [0:0] vStagei_uid56_lzcShifterZ1_uid6_fxpToFPTest_s;
|
||||
reg [31:0] vStagei_uid56_lzcShifterZ1_uid6_fxpToFPTest_q;
|
||||
wire [3:0] zs_uid57_lzcShifterZ1_uid6_fxpToFPTest_q;
|
||||
wire [0:0] vCount_uid59_lzcShifterZ1_uid6_fxpToFPTest_q;
|
||||
wire [31:0] cStage_uid62_lzcShifterZ1_uid6_fxpToFPTest_q;
|
||||
wire [0:0] vStagei_uid63_lzcShifterZ1_uid6_fxpToFPTest_s;
|
||||
reg [31:0] vStagei_uid63_lzcShifterZ1_uid6_fxpToFPTest_q;
|
||||
wire [1:0] zs_uid64_lzcShifterZ1_uid6_fxpToFPTest_q;
|
||||
wire [0:0] vCount_uid66_lzcShifterZ1_uid6_fxpToFPTest_q;
|
||||
wire [31:0] cStage_uid69_lzcShifterZ1_uid6_fxpToFPTest_q;
|
||||
wire [0:0] vStagei_uid70_lzcShifterZ1_uid6_fxpToFPTest_s;
|
||||
reg [31:0] vStagei_uid70_lzcShifterZ1_uid6_fxpToFPTest_q;
|
||||
wire [0:0] vCount_uid73_lzcShifterZ1_uid6_fxpToFPTest_q;
|
||||
wire [31:0] cStage_uid76_lzcShifterZ1_uid6_fxpToFPTest_q;
|
||||
wire [0:0] vStagei_uid77_lzcShifterZ1_uid6_fxpToFPTest_s;
|
||||
reg [31:0] vStagei_uid77_lzcShifterZ1_uid6_fxpToFPTest_q;
|
||||
wire [5:0] vCount_uid78_lzcShifterZ1_uid6_fxpToFPTest_q;
|
||||
wire [7:0] vCountBig_uid80_lzcShifterZ1_uid6_fxpToFPTest_a;
|
||||
wire [7:0] vCountBig_uid80_lzcShifterZ1_uid6_fxpToFPTest_b;
|
||||
logic [7:0] vCountBig_uid80_lzcShifterZ1_uid6_fxpToFPTest_o;
|
||||
wire [0:0] vCountBig_uid80_lzcShifterZ1_uid6_fxpToFPTest_c;
|
||||
wire [0:0] vCountFinal_uid82_lzcShifterZ1_uid6_fxpToFPTest_s;
|
||||
reg [5:0] vCountFinal_uid82_lzcShifterZ1_uid6_fxpToFPTest_q;
|
||||
wire [1:0] l_uid13_fxpToFPTest_merged_bit_select_in;
|
||||
wire [0:0] l_uid13_fxpToFPTest_merged_bit_select_b;
|
||||
wire [0:0] l_uid13_fxpToFPTest_merged_bit_select_c;
|
||||
wire [15:0] rVStage_uid44_lzcShifterZ1_uid6_fxpToFPTest_merged_bit_select_b;
|
||||
wire [15:0] rVStage_uid44_lzcShifterZ1_uid6_fxpToFPTest_merged_bit_select_c;
|
||||
wire [7:0] rVStage_uid51_lzcShifterZ1_uid6_fxpToFPTest_merged_bit_select_b;
|
||||
wire [23:0] rVStage_uid51_lzcShifterZ1_uid6_fxpToFPTest_merged_bit_select_c;
|
||||
wire [3:0] rVStage_uid58_lzcShifterZ1_uid6_fxpToFPTest_merged_bit_select_b;
|
||||
wire [27:0] rVStage_uid58_lzcShifterZ1_uid6_fxpToFPTest_merged_bit_select_c;
|
||||
wire [1:0] rVStage_uid65_lzcShifterZ1_uid6_fxpToFPTest_merged_bit_select_b;
|
||||
wire [29:0] rVStage_uid65_lzcShifterZ1_uid6_fxpToFPTest_merged_bit_select_c;
|
||||
wire [0:0] rVStage_uid72_lzcShifterZ1_uid6_fxpToFPTest_merged_bit_select_b;
|
||||
wire [30:0] rVStage_uid72_lzcShifterZ1_uid6_fxpToFPTest_merged_bit_select_c;
|
||||
wire [30:0] fracRnd_uid11_fxpToFPTest_merged_bit_select_in;
|
||||
wire [23:0] fracRnd_uid11_fxpToFPTest_merged_bit_select_b;
|
||||
wire [6:0] fracRnd_uid11_fxpToFPTest_merged_bit_select_c;
|
||||
reg [23:0] redist0_fracRnd_uid11_fxpToFPTest_merged_bit_select_b_1_q;
|
||||
reg [0:0] redist1_vCount_uid66_lzcShifterZ1_uid6_fxpToFPTest_q_1_q;
|
||||
reg [0:0] redist2_vCount_uid59_lzcShifterZ1_uid6_fxpToFPTest_q_1_q;
|
||||
reg [0:0] redist3_vCount_uid52_lzcShifterZ1_uid6_fxpToFPTest_q_2_q;
|
||||
reg [0:0] redist4_vCount_uid45_lzcShifterZ1_uid6_fxpToFPTest_q_3_q;
|
||||
reg [0:0] redist5_vCount_uid40_lzcShifterZ1_uid6_fxpToFPTest_q_4_q;
|
||||
reg [9:0] redist6_expR_uid22_fxpToFPTest_b_1_q;
|
||||
reg [22:0] redist7_fracR_uid21_fxpToFPTest_b_1_q;
|
||||
reg [32:0] redist8_expFracRnd_uid12_fxpToFPTest_q_1_q;
|
||||
reg [0:0] redist9_inIsZero_uid8_fxpToFPTest_q_2_q;
|
||||
reg [31:0] redist10_xIn_a_1_q;
|
||||
|
||||
|
||||
// GND(CONSTANT,0)
|
||||
assign GND_q = 1'b0;
|
||||
|
||||
// expInf_uid24_fxpToFPTest(CONSTANT,23)
|
||||
assign expInf_uid24_fxpToFPTest_q = 8'b11111111;
|
||||
|
||||
// expZ_uid33_fxpToFPTest(CONSTANT,32)
|
||||
assign expZ_uid33_fxpToFPTest_q = 8'b00000000;
|
||||
|
||||
// rVStage_uid72_lzcShifterZ1_uid6_fxpToFPTest_merged_bit_select(BITSELECT,89)@4
|
||||
assign rVStage_uid72_lzcShifterZ1_uid6_fxpToFPTest_merged_bit_select_b = vStagei_uid70_lzcShifterZ1_uid6_fxpToFPTest_q[31:31];
|
||||
assign rVStage_uid72_lzcShifterZ1_uid6_fxpToFPTest_merged_bit_select_c = vStagei_uid70_lzcShifterZ1_uid6_fxpToFPTest_q[30:0];
|
||||
|
||||
// cStage_uid76_lzcShifterZ1_uid6_fxpToFPTest(BITJOIN,75)@4
|
||||
assign cStage_uid76_lzcShifterZ1_uid6_fxpToFPTest_q = {rVStage_uid72_lzcShifterZ1_uid6_fxpToFPTest_merged_bit_select_c, GND_q};
|
||||
|
||||
// rVStage_uid65_lzcShifterZ1_uid6_fxpToFPTest_merged_bit_select(BITSELECT,88)@3
|
||||
assign rVStage_uid65_lzcShifterZ1_uid6_fxpToFPTest_merged_bit_select_b = vStagei_uid63_lzcShifterZ1_uid6_fxpToFPTest_q[31:30];
|
||||
assign rVStage_uid65_lzcShifterZ1_uid6_fxpToFPTest_merged_bit_select_c = vStagei_uid63_lzcShifterZ1_uid6_fxpToFPTest_q[29:0];
|
||||
|
||||
// zs_uid64_lzcShifterZ1_uid6_fxpToFPTest(CONSTANT,63)
|
||||
assign zs_uid64_lzcShifterZ1_uid6_fxpToFPTest_q = 2'b00;
|
||||
|
||||
// cStage_uid69_lzcShifterZ1_uid6_fxpToFPTest(BITJOIN,68)@3
|
||||
assign cStage_uid69_lzcShifterZ1_uid6_fxpToFPTest_q = {rVStage_uid65_lzcShifterZ1_uid6_fxpToFPTest_merged_bit_select_c, zs_uid64_lzcShifterZ1_uid6_fxpToFPTest_q};
|
||||
|
||||
// rVStage_uid58_lzcShifterZ1_uid6_fxpToFPTest_merged_bit_select(BITSELECT,87)@3
|
||||
assign rVStage_uid58_lzcShifterZ1_uid6_fxpToFPTest_merged_bit_select_b = vStagei_uid56_lzcShifterZ1_uid6_fxpToFPTest_q[31:28];
|
||||
assign rVStage_uid58_lzcShifterZ1_uid6_fxpToFPTest_merged_bit_select_c = vStagei_uid56_lzcShifterZ1_uid6_fxpToFPTest_q[27:0];
|
||||
|
||||
// zs_uid57_lzcShifterZ1_uid6_fxpToFPTest(CONSTANT,56)
|
||||
assign zs_uid57_lzcShifterZ1_uid6_fxpToFPTest_q = 4'b0000;
|
||||
|
||||
// cStage_uid62_lzcShifterZ1_uid6_fxpToFPTest(BITJOIN,61)@3
|
||||
assign cStage_uid62_lzcShifterZ1_uid6_fxpToFPTest_q = {rVStage_uid58_lzcShifterZ1_uid6_fxpToFPTest_merged_bit_select_c, zs_uid57_lzcShifterZ1_uid6_fxpToFPTest_q};
|
||||
|
||||
// rVStage_uid51_lzcShifterZ1_uid6_fxpToFPTest_merged_bit_select(BITSELECT,86)@2
|
||||
assign rVStage_uid51_lzcShifterZ1_uid6_fxpToFPTest_merged_bit_select_b = vStagei_uid49_lzcShifterZ1_uid6_fxpToFPTest_q[31:24];
|
||||
assign rVStage_uid51_lzcShifterZ1_uid6_fxpToFPTest_merged_bit_select_c = vStagei_uid49_lzcShifterZ1_uid6_fxpToFPTest_q[23:0];
|
||||
|
||||
// cStage_uid55_lzcShifterZ1_uid6_fxpToFPTest(BITJOIN,54)@2
|
||||
assign cStage_uid55_lzcShifterZ1_uid6_fxpToFPTest_q = {rVStage_uid51_lzcShifterZ1_uid6_fxpToFPTest_merged_bit_select_c, expZ_uid33_fxpToFPTest_q};
|
||||
|
||||
// rVStage_uid44_lzcShifterZ1_uid6_fxpToFPTest_merged_bit_select(BITSELECT,85)@1
|
||||
assign rVStage_uid44_lzcShifterZ1_uid6_fxpToFPTest_merged_bit_select_b = vStagei_uid42_lzcShifterZ1_uid6_fxpToFPTest_q[31:16];
|
||||
assign rVStage_uid44_lzcShifterZ1_uid6_fxpToFPTest_merged_bit_select_c = vStagei_uid42_lzcShifterZ1_uid6_fxpToFPTest_q[15:0];
|
||||
|
||||
// zs_uid43_lzcShifterZ1_uid6_fxpToFPTest(CONSTANT,42)
|
||||
assign zs_uid43_lzcShifterZ1_uid6_fxpToFPTest_q = 16'b0000000000000000;
|
||||
|
||||
// cStage_uid48_lzcShifterZ1_uid6_fxpToFPTest(BITJOIN,47)@1
|
||||
assign cStage_uid48_lzcShifterZ1_uid6_fxpToFPTest_q = {rVStage_uid44_lzcShifterZ1_uid6_fxpToFPTest_merged_bit_select_c, zs_uid43_lzcShifterZ1_uid6_fxpToFPTest_q};
|
||||
|
||||
// zs_uid38_lzcShifterZ1_uid6_fxpToFPTest(CONSTANT,37)
|
||||
assign zs_uid38_lzcShifterZ1_uid6_fxpToFPTest_q = 32'b00000000000000000000000000000000;
|
||||
|
||||
// redist10_xIn_a_1(DELAY,101)
|
||||
dspba_delay_ver #( .width(32), .depth(1), .reset_kind("ASYNC") )
|
||||
redist10_xIn_a_1 ( .xin(a), .xout(redist10_xIn_a_1_q), .ena(en[0]), .clk(clk), .aclr(areset) );
|
||||
|
||||
// vCount_uid40_lzcShifterZ1_uid6_fxpToFPTest(LOGICAL,39)@0 + 1
|
||||
assign vCount_uid40_lzcShifterZ1_uid6_fxpToFPTest_qi = a == zs_uid38_lzcShifterZ1_uid6_fxpToFPTest_q ? 1'b1 : 1'b0;
|
||||
dspba_delay_ver #( .width(1), .depth(1), .reset_kind("ASYNC") )
|
||||
vCount_uid40_lzcShifterZ1_uid6_fxpToFPTest_delay ( .xin(vCount_uid40_lzcShifterZ1_uid6_fxpToFPTest_qi), .xout(vCount_uid40_lzcShifterZ1_uid6_fxpToFPTest_q), .ena(en[0]), .clk(clk), .aclr(areset) );
|
||||
|
||||
// vStagei_uid42_lzcShifterZ1_uid6_fxpToFPTest(MUX,41)@1
|
||||
assign vStagei_uid42_lzcShifterZ1_uid6_fxpToFPTest_s = vCount_uid40_lzcShifterZ1_uid6_fxpToFPTest_q;
|
||||
always @(vStagei_uid42_lzcShifterZ1_uid6_fxpToFPTest_s or en or redist10_xIn_a_1_q or zs_uid38_lzcShifterZ1_uid6_fxpToFPTest_q)
|
||||
begin
|
||||
unique case (vStagei_uid42_lzcShifterZ1_uid6_fxpToFPTest_s)
|
||||
1'b0 : vStagei_uid42_lzcShifterZ1_uid6_fxpToFPTest_q = redist10_xIn_a_1_q;
|
||||
1'b1 : vStagei_uid42_lzcShifterZ1_uid6_fxpToFPTest_q = zs_uid38_lzcShifterZ1_uid6_fxpToFPTest_q;
|
||||
default : vStagei_uid42_lzcShifterZ1_uid6_fxpToFPTest_q = 32'b0;
|
||||
endcase
|
||||
end
|
||||
|
||||
// vCount_uid45_lzcShifterZ1_uid6_fxpToFPTest(LOGICAL,44)@1
|
||||
assign vCount_uid45_lzcShifterZ1_uid6_fxpToFPTest_q = rVStage_uid44_lzcShifterZ1_uid6_fxpToFPTest_merged_bit_select_b == zs_uid43_lzcShifterZ1_uid6_fxpToFPTest_q ? 1'b1 : 1'b0;
|
||||
|
||||
// vStagei_uid49_lzcShifterZ1_uid6_fxpToFPTest(MUX,48)@1 + 1
|
||||
assign vStagei_uid49_lzcShifterZ1_uid6_fxpToFPTest_s = vCount_uid45_lzcShifterZ1_uid6_fxpToFPTest_q;
|
||||
always @ (posedge clk or posedge areset)
|
||||
begin
|
||||
if (areset)
|
||||
begin
|
||||
vStagei_uid49_lzcShifterZ1_uid6_fxpToFPTest_q <= 32'b0;
|
||||
end
|
||||
else if (en == 1'b1)
|
||||
begin
|
||||
unique case (vStagei_uid49_lzcShifterZ1_uid6_fxpToFPTest_s)
|
||||
1'b0 : vStagei_uid49_lzcShifterZ1_uid6_fxpToFPTest_q <= vStagei_uid42_lzcShifterZ1_uid6_fxpToFPTest_q;
|
||||
1'b1 : vStagei_uid49_lzcShifterZ1_uid6_fxpToFPTest_q <= cStage_uid48_lzcShifterZ1_uid6_fxpToFPTest_q;
|
||||
default : vStagei_uid49_lzcShifterZ1_uid6_fxpToFPTest_q <= 32'b0;
|
||||
endcase
|
||||
end
|
||||
end
|
||||
|
||||
// vCount_uid52_lzcShifterZ1_uid6_fxpToFPTest(LOGICAL,51)@2
|
||||
assign vCount_uid52_lzcShifterZ1_uid6_fxpToFPTest_q = rVStage_uid51_lzcShifterZ1_uid6_fxpToFPTest_merged_bit_select_b == expZ_uid33_fxpToFPTest_q ? 1'b1 : 1'b0;
|
||||
|
||||
// vStagei_uid56_lzcShifterZ1_uid6_fxpToFPTest(MUX,55)@2 + 1
|
||||
assign vStagei_uid56_lzcShifterZ1_uid6_fxpToFPTest_s = vCount_uid52_lzcShifterZ1_uid6_fxpToFPTest_q;
|
||||
always @ (posedge clk or posedge areset)
|
||||
begin
|
||||
if (areset)
|
||||
begin
|
||||
vStagei_uid56_lzcShifterZ1_uid6_fxpToFPTest_q <= 32'b0;
|
||||
end
|
||||
else if (en == 1'b1)
|
||||
begin
|
||||
unique case (vStagei_uid56_lzcShifterZ1_uid6_fxpToFPTest_s)
|
||||
1'b0 : vStagei_uid56_lzcShifterZ1_uid6_fxpToFPTest_q <= vStagei_uid49_lzcShifterZ1_uid6_fxpToFPTest_q;
|
||||
1'b1 : vStagei_uid56_lzcShifterZ1_uid6_fxpToFPTest_q <= cStage_uid55_lzcShifterZ1_uid6_fxpToFPTest_q;
|
||||
default : vStagei_uid56_lzcShifterZ1_uid6_fxpToFPTest_q <= 32'b0;
|
||||
endcase
|
||||
end
|
||||
end
|
||||
|
||||
// vCount_uid59_lzcShifterZ1_uid6_fxpToFPTest(LOGICAL,58)@3
|
||||
assign vCount_uid59_lzcShifterZ1_uid6_fxpToFPTest_q = rVStage_uid58_lzcShifterZ1_uid6_fxpToFPTest_merged_bit_select_b == zs_uid57_lzcShifterZ1_uid6_fxpToFPTest_q ? 1'b1 : 1'b0;
|
||||
|
||||
// vStagei_uid63_lzcShifterZ1_uid6_fxpToFPTest(MUX,62)@3
|
||||
assign vStagei_uid63_lzcShifterZ1_uid6_fxpToFPTest_s = vCount_uid59_lzcShifterZ1_uid6_fxpToFPTest_q;
|
||||
always @(vStagei_uid63_lzcShifterZ1_uid6_fxpToFPTest_s or en or vStagei_uid56_lzcShifterZ1_uid6_fxpToFPTest_q or cStage_uid62_lzcShifterZ1_uid6_fxpToFPTest_q)
|
||||
begin
|
||||
unique case (vStagei_uid63_lzcShifterZ1_uid6_fxpToFPTest_s)
|
||||
1'b0 : vStagei_uid63_lzcShifterZ1_uid6_fxpToFPTest_q = vStagei_uid56_lzcShifterZ1_uid6_fxpToFPTest_q;
|
||||
1'b1 : vStagei_uid63_lzcShifterZ1_uid6_fxpToFPTest_q = cStage_uid62_lzcShifterZ1_uid6_fxpToFPTest_q;
|
||||
default : vStagei_uid63_lzcShifterZ1_uid6_fxpToFPTest_q = 32'b0;
|
||||
endcase
|
||||
end
|
||||
|
||||
// vCount_uid66_lzcShifterZ1_uid6_fxpToFPTest(LOGICAL,65)@3
|
||||
assign vCount_uid66_lzcShifterZ1_uid6_fxpToFPTest_q = rVStage_uid65_lzcShifterZ1_uid6_fxpToFPTest_merged_bit_select_b == zs_uid64_lzcShifterZ1_uid6_fxpToFPTest_q ? 1'b1 : 1'b0;
|
||||
|
||||
// vStagei_uid70_lzcShifterZ1_uid6_fxpToFPTest(MUX,69)@3 + 1
|
||||
assign vStagei_uid70_lzcShifterZ1_uid6_fxpToFPTest_s = vCount_uid66_lzcShifterZ1_uid6_fxpToFPTest_q;
|
||||
always @ (posedge clk or posedge areset)
|
||||
begin
|
||||
if (areset)
|
||||
begin
|
||||
vStagei_uid70_lzcShifterZ1_uid6_fxpToFPTest_q <= 32'b0;
|
||||
end
|
||||
else if (en == 1'b1)
|
||||
begin
|
||||
unique case (vStagei_uid70_lzcShifterZ1_uid6_fxpToFPTest_s)
|
||||
1'b0 : vStagei_uid70_lzcShifterZ1_uid6_fxpToFPTest_q <= vStagei_uid63_lzcShifterZ1_uid6_fxpToFPTest_q;
|
||||
1'b1 : vStagei_uid70_lzcShifterZ1_uid6_fxpToFPTest_q <= cStage_uid69_lzcShifterZ1_uid6_fxpToFPTest_q;
|
||||
default : vStagei_uid70_lzcShifterZ1_uid6_fxpToFPTest_q <= 32'b0;
|
||||
endcase
|
||||
end
|
||||
end
|
||||
|
||||
// vCount_uid73_lzcShifterZ1_uid6_fxpToFPTest(LOGICAL,72)@4
|
||||
assign vCount_uid73_lzcShifterZ1_uid6_fxpToFPTest_q = rVStage_uid72_lzcShifterZ1_uid6_fxpToFPTest_merged_bit_select_b == GND_q ? 1'b1 : 1'b0;
|
||||
|
||||
// vStagei_uid77_lzcShifterZ1_uid6_fxpToFPTest(MUX,76)@4
|
||||
assign vStagei_uid77_lzcShifterZ1_uid6_fxpToFPTest_s = vCount_uid73_lzcShifterZ1_uid6_fxpToFPTest_q;
|
||||
always @(vStagei_uid77_lzcShifterZ1_uid6_fxpToFPTest_s or en or vStagei_uid70_lzcShifterZ1_uid6_fxpToFPTest_q or cStage_uid76_lzcShifterZ1_uid6_fxpToFPTest_q)
|
||||
begin
|
||||
unique case (vStagei_uid77_lzcShifterZ1_uid6_fxpToFPTest_s)
|
||||
1'b0 : vStagei_uid77_lzcShifterZ1_uid6_fxpToFPTest_q = vStagei_uid70_lzcShifterZ1_uid6_fxpToFPTest_q;
|
||||
1'b1 : vStagei_uid77_lzcShifterZ1_uid6_fxpToFPTest_q = cStage_uid76_lzcShifterZ1_uid6_fxpToFPTest_q;
|
||||
default : vStagei_uid77_lzcShifterZ1_uid6_fxpToFPTest_q = 32'b0;
|
||||
endcase
|
||||
end
|
||||
|
||||
// fracRnd_uid11_fxpToFPTest_merged_bit_select(BITSELECT,90)@4
|
||||
assign fracRnd_uid11_fxpToFPTest_merged_bit_select_in = vStagei_uid77_lzcShifterZ1_uid6_fxpToFPTest_q[30:0];
|
||||
assign fracRnd_uid11_fxpToFPTest_merged_bit_select_b = fracRnd_uid11_fxpToFPTest_merged_bit_select_in[30:7];
|
||||
assign fracRnd_uid11_fxpToFPTest_merged_bit_select_c = fracRnd_uid11_fxpToFPTest_merged_bit_select_in[6:0];
|
||||
|
||||
// sticky_uid16_fxpToFPTest(LOGICAL,15)@4 + 1
|
||||
assign sticky_uid16_fxpToFPTest_qi = fracRnd_uid11_fxpToFPTest_merged_bit_select_c != 7'b0000000 ? 1'b1 : 1'b0;
|
||||
dspba_delay_ver #( .width(1), .depth(1), .reset_kind("ASYNC") )
|
||||
sticky_uid16_fxpToFPTest_delay ( .xin(sticky_uid16_fxpToFPTest_qi), .xout(sticky_uid16_fxpToFPTest_q), .ena(en[0]), .clk(clk), .aclr(areset) );
|
||||
|
||||
// nr_uid17_fxpToFPTest(LOGICAL,16)@5
|
||||
assign nr_uid17_fxpToFPTest_q = ~ (l_uid13_fxpToFPTest_merged_bit_select_c);
|
||||
|
||||
// maxCount_uid7_fxpToFPTest(CONSTANT,6)
|
||||
assign maxCount_uid7_fxpToFPTest_q = 6'b100000;
|
||||
|
||||
// redist5_vCount_uid40_lzcShifterZ1_uid6_fxpToFPTest_q_4(DELAY,96)
|
||||
dspba_delay_ver #( .width(1), .depth(3), .reset_kind("ASYNC") )
|
||||
redist5_vCount_uid40_lzcShifterZ1_uid6_fxpToFPTest_q_4 ( .xin(vCount_uid40_lzcShifterZ1_uid6_fxpToFPTest_q), .xout(redist5_vCount_uid40_lzcShifterZ1_uid6_fxpToFPTest_q_4_q), .ena(en[0]), .clk(clk), .aclr(areset) );
|
||||
|
||||
// redist4_vCount_uid45_lzcShifterZ1_uid6_fxpToFPTest_q_3(DELAY,95)
|
||||
dspba_delay_ver #( .width(1), .depth(3), .reset_kind("ASYNC") )
|
||||
redist4_vCount_uid45_lzcShifterZ1_uid6_fxpToFPTest_q_3 ( .xin(vCount_uid45_lzcShifterZ1_uid6_fxpToFPTest_q), .xout(redist4_vCount_uid45_lzcShifterZ1_uid6_fxpToFPTest_q_3_q), .ena(en[0]), .clk(clk), .aclr(areset) );
|
||||
|
||||
// redist3_vCount_uid52_lzcShifterZ1_uid6_fxpToFPTest_q_2(DELAY,94)
|
||||
dspba_delay_ver #( .width(1), .depth(2), .reset_kind("ASYNC") )
|
||||
redist3_vCount_uid52_lzcShifterZ1_uid6_fxpToFPTest_q_2 ( .xin(vCount_uid52_lzcShifterZ1_uid6_fxpToFPTest_q), .xout(redist3_vCount_uid52_lzcShifterZ1_uid6_fxpToFPTest_q_2_q), .ena(en[0]), .clk(clk), .aclr(areset) );
|
||||
|
||||
// redist2_vCount_uid59_lzcShifterZ1_uid6_fxpToFPTest_q_1(DELAY,93)
|
||||
dspba_delay_ver #( .width(1), .depth(1), .reset_kind("ASYNC") )
|
||||
redist2_vCount_uid59_lzcShifterZ1_uid6_fxpToFPTest_q_1 ( .xin(vCount_uid59_lzcShifterZ1_uid6_fxpToFPTest_q), .xout(redist2_vCount_uid59_lzcShifterZ1_uid6_fxpToFPTest_q_1_q), .ena(en[0]), .clk(clk), .aclr(areset) );
|
||||
|
||||
// redist1_vCount_uid66_lzcShifterZ1_uid6_fxpToFPTest_q_1(DELAY,92)
|
||||
dspba_delay_ver #( .width(1), .depth(1), .reset_kind("ASYNC") )
|
||||
redist1_vCount_uid66_lzcShifterZ1_uid6_fxpToFPTest_q_1 ( .xin(vCount_uid66_lzcShifterZ1_uid6_fxpToFPTest_q), .xout(redist1_vCount_uid66_lzcShifterZ1_uid6_fxpToFPTest_q_1_q), .ena(en[0]), .clk(clk), .aclr(areset) );
|
||||
|
||||
// vCount_uid78_lzcShifterZ1_uid6_fxpToFPTest(BITJOIN,77)@4
|
||||
assign vCount_uid78_lzcShifterZ1_uid6_fxpToFPTest_q = {redist5_vCount_uid40_lzcShifterZ1_uid6_fxpToFPTest_q_4_q, redist4_vCount_uid45_lzcShifterZ1_uid6_fxpToFPTest_q_3_q, redist3_vCount_uid52_lzcShifterZ1_uid6_fxpToFPTest_q_2_q, redist2_vCount_uid59_lzcShifterZ1_uid6_fxpToFPTest_q_1_q, redist1_vCount_uid66_lzcShifterZ1_uid6_fxpToFPTest_q_1_q, vCount_uid73_lzcShifterZ1_uid6_fxpToFPTest_q};
|
||||
|
||||
// vCountBig_uid80_lzcShifterZ1_uid6_fxpToFPTest(COMPARE,79)@4
|
||||
assign vCountBig_uid80_lzcShifterZ1_uid6_fxpToFPTest_a = {2'b00, maxCount_uid7_fxpToFPTest_q};
|
||||
assign vCountBig_uid80_lzcShifterZ1_uid6_fxpToFPTest_b = {2'b00, vCount_uid78_lzcShifterZ1_uid6_fxpToFPTest_q};
|
||||
assign vCountBig_uid80_lzcShifterZ1_uid6_fxpToFPTest_o = $unsigned(vCountBig_uid80_lzcShifterZ1_uid6_fxpToFPTest_a) - $unsigned(vCountBig_uid80_lzcShifterZ1_uid6_fxpToFPTest_b);
|
||||
assign vCountBig_uid80_lzcShifterZ1_uid6_fxpToFPTest_c[0] = vCountBig_uid80_lzcShifterZ1_uid6_fxpToFPTest_o[7];
|
||||
|
||||
// vCountFinal_uid82_lzcShifterZ1_uid6_fxpToFPTest(MUX,81)@4 + 1
|
||||
assign vCountFinal_uid82_lzcShifterZ1_uid6_fxpToFPTest_s = vCountBig_uid80_lzcShifterZ1_uid6_fxpToFPTest_c;
|
||||
always @ (posedge clk or posedge areset)
|
||||
begin
|
||||
if (areset)
|
||||
begin
|
||||
vCountFinal_uid82_lzcShifterZ1_uid6_fxpToFPTest_q <= 6'b0;
|
||||
end
|
||||
else if (en == 1'b1)
|
||||
begin
|
||||
unique case (vCountFinal_uid82_lzcShifterZ1_uid6_fxpToFPTest_s)
|
||||
1'b0 : vCountFinal_uid82_lzcShifterZ1_uid6_fxpToFPTest_q <= vCount_uid78_lzcShifterZ1_uid6_fxpToFPTest_q;
|
||||
1'b1 : vCountFinal_uid82_lzcShifterZ1_uid6_fxpToFPTest_q <= maxCount_uid7_fxpToFPTest_q;
|
||||
default : vCountFinal_uid82_lzcShifterZ1_uid6_fxpToFPTest_q <= 6'b0;
|
||||
endcase
|
||||
end
|
||||
end
|
||||
|
||||
// msbIn_uid9_fxpToFPTest(CONSTANT,8)
|
||||
assign msbIn_uid9_fxpToFPTest_q = 8'b10011110;
|
||||
|
||||
// expPreRnd_uid10_fxpToFPTest(SUB,9)@5
|
||||
assign expPreRnd_uid10_fxpToFPTest_a = {1'b0, msbIn_uid9_fxpToFPTest_q};
|
||||
assign expPreRnd_uid10_fxpToFPTest_b = {3'b000, vCountFinal_uid82_lzcShifterZ1_uid6_fxpToFPTest_q};
|
||||
assign expPreRnd_uid10_fxpToFPTest_o = $unsigned(expPreRnd_uid10_fxpToFPTest_a) - $unsigned(expPreRnd_uid10_fxpToFPTest_b);
|
||||
assign expPreRnd_uid10_fxpToFPTest_q = expPreRnd_uid10_fxpToFPTest_o[8:0];
|
||||
|
||||
// redist0_fracRnd_uid11_fxpToFPTest_merged_bit_select_b_1(DELAY,91)
|
||||
dspba_delay_ver #( .width(24), .depth(1), .reset_kind("ASYNC") )
|
||||
redist0_fracRnd_uid11_fxpToFPTest_merged_bit_select_b_1 ( .xin(fracRnd_uid11_fxpToFPTest_merged_bit_select_b), .xout(redist0_fracRnd_uid11_fxpToFPTest_merged_bit_select_b_1_q), .ena(en[0]), .clk(clk), .aclr(areset) );
|
||||
|
||||
// expFracRnd_uid12_fxpToFPTest(BITJOIN,11)@5
|
||||
assign expFracRnd_uid12_fxpToFPTest_q = {expPreRnd_uid10_fxpToFPTest_q, redist0_fracRnd_uid11_fxpToFPTest_merged_bit_select_b_1_q};
|
||||
|
||||
// l_uid13_fxpToFPTest_merged_bit_select(BITSELECT,84)@5
|
||||
assign l_uid13_fxpToFPTest_merged_bit_select_in = expFracRnd_uid12_fxpToFPTest_q[1:0];
|
||||
assign l_uid13_fxpToFPTest_merged_bit_select_b = l_uid13_fxpToFPTest_merged_bit_select_in[1:1];
|
||||
assign l_uid13_fxpToFPTest_merged_bit_select_c = l_uid13_fxpToFPTest_merged_bit_select_in[0:0];
|
||||
|
||||
// rnd_uid18_fxpToFPTest(LOGICAL,17)@5 + 1
|
||||
assign rnd_uid18_fxpToFPTest_qi = l_uid13_fxpToFPTest_merged_bit_select_b | nr_uid17_fxpToFPTest_q | sticky_uid16_fxpToFPTest_q;
|
||||
dspba_delay_ver #( .width(1), .depth(1), .reset_kind("ASYNC") )
|
||||
rnd_uid18_fxpToFPTest_delay ( .xin(rnd_uid18_fxpToFPTest_qi), .xout(rnd_uid18_fxpToFPTest_q), .ena(en[0]), .clk(clk), .aclr(areset) );
|
||||
|
||||
// redist8_expFracRnd_uid12_fxpToFPTest_q_1(DELAY,99)
|
||||
dspba_delay_ver #( .width(33), .depth(1), .reset_kind("ASYNC") )
|
||||
redist8_expFracRnd_uid12_fxpToFPTest_q_1 ( .xin(expFracRnd_uid12_fxpToFPTest_q), .xout(redist8_expFracRnd_uid12_fxpToFPTest_q_1_q), .ena(en[0]), .clk(clk), .aclr(areset) );
|
||||
|
||||
// expFracR_uid20_fxpToFPTest(ADD,19)@6
|
||||
assign expFracR_uid20_fxpToFPTest_a = {{2{redist8_expFracRnd_uid12_fxpToFPTest_q_1_q[32]}}, redist8_expFracRnd_uid12_fxpToFPTest_q_1_q};
|
||||
assign expFracR_uid20_fxpToFPTest_b = {34'b0000000000000000000000000000000000, rnd_uid18_fxpToFPTest_q};
|
||||
assign expFracR_uid20_fxpToFPTest_o = $signed(expFracR_uid20_fxpToFPTest_a) + $signed(expFracR_uid20_fxpToFPTest_b);
|
||||
assign expFracR_uid20_fxpToFPTest_q = expFracR_uid20_fxpToFPTest_o[33:0];
|
||||
|
||||
// expR_uid22_fxpToFPTest(BITSELECT,21)@6
|
||||
assign expR_uid22_fxpToFPTest_b = expFracR_uid20_fxpToFPTest_q[33:24];
|
||||
|
||||
// redist6_expR_uid22_fxpToFPTest_b_1(DELAY,97)
|
||||
dspba_delay_ver #( .width(10), .depth(1), .reset_kind("ASYNC") )
|
||||
redist6_expR_uid22_fxpToFPTest_b_1 ( .xin(expR_uid22_fxpToFPTest_b), .xout(redist6_expR_uid22_fxpToFPTest_b_1_q), .ena(en[0]), .clk(clk), .aclr(areset) );
|
||||
|
||||
// expR_uid34_fxpToFPTest(BITSELECT,33)@7
|
||||
assign expR_uid34_fxpToFPTest_in = redist6_expR_uid22_fxpToFPTest_b_1_q[7:0];
|
||||
assign expR_uid34_fxpToFPTest_b = expR_uid34_fxpToFPTest_in[7:0];
|
||||
|
||||
// ovf_uid25_fxpToFPTest(COMPARE,24)@7
|
||||
assign ovf_uid25_fxpToFPTest_a = {{2{redist6_expR_uid22_fxpToFPTest_b_1_q[9]}}, redist6_expR_uid22_fxpToFPTest_b_1_q};
|
||||
assign ovf_uid25_fxpToFPTest_b = {4'b0000, expInf_uid24_fxpToFPTest_q};
|
||||
assign ovf_uid25_fxpToFPTest_o = $signed(ovf_uid25_fxpToFPTest_a) - $signed(ovf_uid25_fxpToFPTest_b);
|
||||
assign ovf_uid25_fxpToFPTest_n[0] = ~ (ovf_uid25_fxpToFPTest_o[11]);
|
||||
|
||||
// inIsZero_uid8_fxpToFPTest(LOGICAL,7)@5 + 1
|
||||
assign inIsZero_uid8_fxpToFPTest_qi = vCountFinal_uid82_lzcShifterZ1_uid6_fxpToFPTest_q == maxCount_uid7_fxpToFPTest_q ? 1'b1 : 1'b0;
|
||||
dspba_delay_ver #( .width(1), .depth(1), .reset_kind("ASYNC") )
|
||||
inIsZero_uid8_fxpToFPTest_delay ( .xin(inIsZero_uid8_fxpToFPTest_qi), .xout(inIsZero_uid8_fxpToFPTest_q), .ena(en[0]), .clk(clk), .aclr(areset) );
|
||||
|
||||
// redist9_inIsZero_uid8_fxpToFPTest_q_2(DELAY,100)
|
||||
dspba_delay_ver #( .width(1), .depth(1), .reset_kind("ASYNC") )
|
||||
redist9_inIsZero_uid8_fxpToFPTest_q_2 ( .xin(inIsZero_uid8_fxpToFPTest_q), .xout(redist9_inIsZero_uid8_fxpToFPTest_q_2_q), .ena(en[0]), .clk(clk), .aclr(areset) );
|
||||
|
||||
// udf_uid23_fxpToFPTest(COMPARE,22)@7
|
||||
assign udf_uid23_fxpToFPTest_a = {11'b00000000000, GND_q};
|
||||
assign udf_uid23_fxpToFPTest_b = {{2{redist6_expR_uid22_fxpToFPTest_b_1_q[9]}}, redist6_expR_uid22_fxpToFPTest_b_1_q};
|
||||
assign udf_uid23_fxpToFPTest_o = $signed(udf_uid23_fxpToFPTest_a) - $signed(udf_uid23_fxpToFPTest_b);
|
||||
assign udf_uid23_fxpToFPTest_n[0] = ~ (udf_uid23_fxpToFPTest_o[11]);
|
||||
|
||||
// udfOrInZero_uid29_fxpToFPTest(LOGICAL,28)@7
|
||||
assign udfOrInZero_uid29_fxpToFPTest_q = udf_uid23_fxpToFPTest_n | redist9_inIsZero_uid8_fxpToFPTest_q_2_q;
|
||||
|
||||
// excSelector_uid30_fxpToFPTest(BITJOIN,29)@7
|
||||
assign excSelector_uid30_fxpToFPTest_q = {ovf_uid25_fxpToFPTest_n, udfOrInZero_uid29_fxpToFPTest_q};
|
||||
|
||||
// expRPostExc_uid35_fxpToFPTest(MUX,34)@7
|
||||
assign expRPostExc_uid35_fxpToFPTest_s = excSelector_uid30_fxpToFPTest_q;
|
||||
always @(expRPostExc_uid35_fxpToFPTest_s or en or expR_uid34_fxpToFPTest_b or expZ_uid33_fxpToFPTest_q or expInf_uid24_fxpToFPTest_q)
|
||||
begin
|
||||
unique case (expRPostExc_uid35_fxpToFPTest_s)
|
||||
2'b00 : expRPostExc_uid35_fxpToFPTest_q = expR_uid34_fxpToFPTest_b;
|
||||
2'b01 : expRPostExc_uid35_fxpToFPTest_q = expZ_uid33_fxpToFPTest_q;
|
||||
2'b10 : expRPostExc_uid35_fxpToFPTest_q = expInf_uid24_fxpToFPTest_q;
|
||||
2'b11 : expRPostExc_uid35_fxpToFPTest_q = expInf_uid24_fxpToFPTest_q;
|
||||
default : expRPostExc_uid35_fxpToFPTest_q = 8'b0;
|
||||
endcase
|
||||
end
|
||||
|
||||
// fracZ_uid27_fxpToFPTest(CONSTANT,26)
|
||||
assign fracZ_uid27_fxpToFPTest_q = 23'b00000000000000000000000;
|
||||
|
||||
// fracR_uid21_fxpToFPTest(BITSELECT,20)@6
|
||||
assign fracR_uid21_fxpToFPTest_in = expFracR_uid20_fxpToFPTest_q[23:0];
|
||||
assign fracR_uid21_fxpToFPTest_b = fracR_uid21_fxpToFPTest_in[23:1];
|
||||
|
||||
// redist7_fracR_uid21_fxpToFPTest_b_1(DELAY,98)
|
||||
dspba_delay_ver #( .width(23), .depth(1), .reset_kind("ASYNC") )
|
||||
redist7_fracR_uid21_fxpToFPTest_b_1 ( .xin(fracR_uid21_fxpToFPTest_b), .xout(redist7_fracR_uid21_fxpToFPTest_b_1_q), .ena(en[0]), .clk(clk), .aclr(areset) );
|
||||
|
||||
// excSelector_uid26_fxpToFPTest(LOGICAL,25)@7
|
||||
assign excSelector_uid26_fxpToFPTest_q = redist9_inIsZero_uid8_fxpToFPTest_q_2_q | ovf_uid25_fxpToFPTest_n | udf_uid23_fxpToFPTest_n;
|
||||
|
||||
// fracRPostExc_uid28_fxpToFPTest(MUX,27)@7
|
||||
assign fracRPostExc_uid28_fxpToFPTest_s = excSelector_uid26_fxpToFPTest_q;
|
||||
always @(fracRPostExc_uid28_fxpToFPTest_s or en or redist7_fracR_uid21_fxpToFPTest_b_1_q or fracZ_uid27_fxpToFPTest_q)
|
||||
begin
|
||||
unique case (fracRPostExc_uid28_fxpToFPTest_s)
|
||||
1'b0 : fracRPostExc_uid28_fxpToFPTest_q = redist7_fracR_uid21_fxpToFPTest_b_1_q;
|
||||
1'b1 : fracRPostExc_uid28_fxpToFPTest_q = fracZ_uid27_fxpToFPTest_q;
|
||||
default : fracRPostExc_uid28_fxpToFPTest_q = 23'b0;
|
||||
endcase
|
||||
end
|
||||
|
||||
// outRes_uid36_fxpToFPTest(BITJOIN,35)@7
|
||||
assign outRes_uid36_fxpToFPTest_q = {GND_q, expRPostExc_uid35_fxpToFPTest_q, fracRPostExc_uid28_fxpToFPTest_q};
|
||||
|
||||
// xOut(GPOUT,4)@7
|
||||
assign q = outRes_uid36_fxpToFPTest_q;
|
||||
|
||||
endmodule
|
392
hw/rtl/fp_cores/altera/dspba_library_ver.sv
Normal file
392
hw/rtl/fp_cores/altera/dspba_library_ver.sv
Normal file
|
@ -0,0 +1,392 @@
|
|||
// Legal Notice: Copyright 2017 Intel Corporation. All rights reserved.
|
||||
// Your use of Intel Corporation's design tools, logic functions and other
|
||||
// software and tools, and its AMPP partner logic functions, and any output
|
||||
// files any of the foregoing device programming or simulation files), and
|
||||
// any associated documentation or information are expressly subject to the
|
||||
// terms and conditions of the Intel FPGA Software License Agreement,
|
||||
// Intel MegaCore Function License Agreement, or other applicable license
|
||||
// agreement, including, without limitation, that your use is for the sole
|
||||
// purpose of programming logic devices manufactured by Intel and sold by
|
||||
// Intel or its authorized distributors. Please refer to the applicable
|
||||
// agreement for further details.
|
||||
|
||||
|
||||
module dspba_delay_ver
|
||||
#(
|
||||
parameter width = 8,
|
||||
parameter depth = 1,
|
||||
parameter reset_high = 1'b1,
|
||||
parameter reset_kind = "ASYNC"
|
||||
) (
|
||||
input clk,
|
||||
input aclr,
|
||||
input ena,
|
||||
input [width-1:0] xin,
|
||||
output [width-1:0] xout
|
||||
);
|
||||
|
||||
wire reset;
|
||||
reg [width-1:0] delays [depth-1:0];
|
||||
|
||||
assign reset = aclr ^ reset_high;
|
||||
|
||||
generate
|
||||
if (depth > 0)
|
||||
begin
|
||||
genvar i;
|
||||
for (i = 0; i < depth; ++i)
|
||||
begin : delay_block
|
||||
if (reset_kind == "ASYNC")
|
||||
begin : sync_reset
|
||||
always @ (posedge clk or negedge reset)
|
||||
begin: a
|
||||
if (!reset) begin
|
||||
delays[i] <= 0;
|
||||
end else begin
|
||||
if (ena) begin
|
||||
if (i > 0) begin
|
||||
delays[i] <= delays[i - 1];
|
||||
end else begin
|
||||
delays[i] <= xin;
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if (reset_kind == "SYNC")
|
||||
begin : async_reset
|
||||
always @ (posedge clk)
|
||||
begin: a
|
||||
if (!reset) begin
|
||||
delays[i] <= 0;
|
||||
end else begin
|
||||
if (ena) begin
|
||||
if (i > 0) begin
|
||||
delays[i] <= delays[i - 1];
|
||||
end else begin
|
||||
delays[i] <= xin;
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if (reset_kind == "NONE")
|
||||
begin : no_reset
|
||||
always @ (posedge clk)
|
||||
begin: a
|
||||
if (ena) begin
|
||||
if (i > 0) begin
|
||||
delays[i] <= delays[i - 1];
|
||||
end else begin
|
||||
delays[i] <= xin;
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
assign xout = delays[depth - 1];
|
||||
end else begin
|
||||
assign xout = xin;
|
||||
end
|
||||
endgenerate
|
||||
|
||||
endmodule
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
module dspba_sync_reg_ver
|
||||
#(
|
||||
parameter width1 = 8,
|
||||
parameter width2 = 8,
|
||||
parameter depth = 2,
|
||||
parameter pulse_multiplier = 1,
|
||||
parameter counter_width = 8,
|
||||
parameter init_value = 0,
|
||||
parameter reset1_high = 1'b1,
|
||||
parameter reset2_high = 1'b1,
|
||||
parameter reset_kind = "ASYNC"
|
||||
) (
|
||||
input clk1,
|
||||
input aclr1,
|
||||
input [0 : 0] ena,
|
||||
input [width1-1 : 0] xin,
|
||||
output [width1-1 : 0] xout,
|
||||
input clk2,
|
||||
input aclr2,
|
||||
output [width2-1 : 0] sxout
|
||||
);
|
||||
wire [width1-1 : 0] init_value_internal;
|
||||
|
||||
wire reset1;
|
||||
wire reset2;
|
||||
|
||||
reg iclk_enable;
|
||||
reg [width1-1 : 0] iclk_data;
|
||||
reg [width2-1 : 0] oclk_data;
|
||||
|
||||
// For Synthesis this means: preserve this registers and do not merge any other flip-flops with synchronizer flip-flops
|
||||
// For TimeQuest this means: identify these flip-flops as synchronizer to enable automatic MTBF analysis
|
||||
(* altera_attribute = {"-name ADV_NETLIST_OPT_ALLOWED NEVER_ALLOW; -name SYNCHRONIZER_IDENTIFICATION FORCED; -name DONT_MERGE_REGISTER ON; -name PRESERVE_REGISTER ON"} *) reg [depth-1 : 0] sync_regs;
|
||||
|
||||
wire oclk_enable;
|
||||
|
||||
wire ena_internal;
|
||||
reg [counter_width-1 : 0] counter;
|
||||
|
||||
assign init_value_internal = init_value;
|
||||
|
||||
assign reset1 = aclr1 ^ reset1_high;
|
||||
assign reset2 = aclr2 ^ reset2_high;
|
||||
|
||||
generate
|
||||
if (pulse_multiplier == 1)
|
||||
begin: no_multiplication
|
||||
assign ena_internal = ena[0];
|
||||
end
|
||||
endgenerate
|
||||
|
||||
generate
|
||||
if (pulse_multiplier > 1)
|
||||
begin: multiplu_ena_pulse
|
||||
if (reset_kind == "ASYNC")
|
||||
begin: async_reset
|
||||
always @ (posedge clk1 or negedge reset1)
|
||||
begin
|
||||
if (reset1 == 1'b0) begin
|
||||
counter <= 0;
|
||||
end else begin
|
||||
if (counter > 0) begin
|
||||
if (counter == pulse_multiplier - 1) begin
|
||||
counter <= 0;
|
||||
end else begin
|
||||
counter <= counter + 2'd1;
|
||||
end
|
||||
end else begin
|
||||
if (ena[0] == 1'b1) begin
|
||||
counter <= 1;
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
if (reset_kind == "SYNC")
|
||||
begin: sync_reset
|
||||
always @ (posedge clk1)
|
||||
begin
|
||||
if (reset1 == 1'b0) begin
|
||||
counter <= 0;
|
||||
end else begin
|
||||
if (counter > 0) begin
|
||||
if (counter == pulse_multiplier - 1) begin
|
||||
counter <= 0;
|
||||
end else begin
|
||||
counter <= counter + 2'd1;
|
||||
end
|
||||
end else begin
|
||||
if (ena[0] == 1'b1) begin
|
||||
counter <= 1;
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
if (reset_kind == "NONE")
|
||||
begin: no_reset
|
||||
always @ (posedge clk1)
|
||||
begin
|
||||
if (counter > 0) begin
|
||||
if (counter == pulse_multiplier - 1) begin
|
||||
counter <= 0;
|
||||
end else begin
|
||||
counter <= counter + 2'd1;
|
||||
end
|
||||
end else begin
|
||||
if (ena[0] == 1'b1) begin
|
||||
counter <= 1;
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
assign ena_internal = counter > 0 ? 1'b1 : ena[0];
|
||||
end
|
||||
endgenerate
|
||||
|
||||
assign oclk_enable = sync_regs[depth - 1];
|
||||
|
||||
generate
|
||||
if (reset_kind == "ASYNC")
|
||||
begin: iclk_async_reset
|
||||
always @ (posedge clk1 or negedge reset1)
|
||||
begin
|
||||
if (reset1 == 1'b0) begin
|
||||
iclk_data <= init_value_internal;
|
||||
iclk_enable <= 1'b0;
|
||||
end else begin
|
||||
iclk_enable <= ena_internal;
|
||||
if (ena[0] == 1'b1) begin
|
||||
iclk_data <= xin;
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
if (reset_kind == "SYNC")
|
||||
begin: iclk_sync_reset
|
||||
always @ (posedge clk1)
|
||||
begin
|
||||
if (reset1 == 1'b0) begin
|
||||
iclk_data <= init_value_internal;
|
||||
iclk_enable <= 1'b0;
|
||||
end else begin
|
||||
iclk_enable <= ena_internal;
|
||||
if (ena[0] == 1'b1) begin
|
||||
iclk_data <= xin;
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
if (reset_kind == "NONE")
|
||||
begin: iclk_no_reset
|
||||
always @ (posedge clk1)
|
||||
begin
|
||||
iclk_enable <= ena_internal;
|
||||
if (ena[0] == 1'b1) begin
|
||||
iclk_data <= xin;
|
||||
end
|
||||
end
|
||||
end
|
||||
endgenerate
|
||||
|
||||
generate
|
||||
genvar i;
|
||||
for (i = 0; i < depth; ++i)
|
||||
begin: sync_regs_block
|
||||
if (reset_kind == "ASYNC")
|
||||
begin: sync_reg_async_reset
|
||||
always @ (posedge clk2 or negedge reset2) begin
|
||||
if (reset2 == 1'b0) begin
|
||||
sync_regs[i] <= 1'b0;
|
||||
end else begin
|
||||
if (i > 0) begin
|
||||
sync_regs[i] <= sync_regs[i - 1];
|
||||
end else begin
|
||||
sync_regs[i] <= iclk_enable;
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
if (reset_kind == "SYNC")
|
||||
begin: sync_reg_sync_reset
|
||||
always @ (posedge clk2) begin
|
||||
if (reset2 == 1'b0) begin
|
||||
sync_regs[i] <= 1'b0;
|
||||
end else begin
|
||||
if (i > 0) begin
|
||||
sync_regs[i] <= sync_regs[i - 1];
|
||||
end else begin
|
||||
sync_regs[i] <= iclk_enable;
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
if (reset_kind == "NONE")
|
||||
begin: sync_reg_no_reset
|
||||
always @ (posedge clk2) begin
|
||||
if (i > 0) begin
|
||||
sync_regs[i] <= sync_regs[i - 1];
|
||||
end else begin
|
||||
sync_regs[i] <= iclk_enable;
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
endgenerate
|
||||
|
||||
generate
|
||||
if (reset_kind == "ASYNC")
|
||||
begin: oclk_async_reset
|
||||
always @ (posedge clk2 or negedge reset2)
|
||||
begin
|
||||
if (reset2 == 1'b0) begin
|
||||
oclk_data <= init_value_internal[width2-1 : 0];
|
||||
end else begin
|
||||
if (oclk_enable == 1'b1) begin
|
||||
oclk_data <= iclk_data[width2-1 : 0];
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
if (reset_kind == "SYNC")
|
||||
begin: oclk_sync_reset
|
||||
always @ (posedge clk2)
|
||||
begin
|
||||
if (reset2 == 1'b0) begin
|
||||
oclk_data <= init_value_internal[width2-1 : 0];
|
||||
end else begin
|
||||
if (oclk_enable == 1'b1) begin
|
||||
oclk_data <= iclk_data[width2-1 : 0];
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
if (reset_kind == "NONE")
|
||||
begin: oclk_no_reset
|
||||
always @ (posedge clk2)
|
||||
begin
|
||||
if (oclk_enable == 1'b1) begin
|
||||
oclk_data <= iclk_data[width2-1 : 0];
|
||||
end
|
||||
end
|
||||
end
|
||||
endgenerate
|
||||
|
||||
assign xout = iclk_data;
|
||||
assign sxout = oclk_data;
|
||||
|
||||
endmodule
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
module dspba_pipe
|
||||
#(
|
||||
parameter num_bits = 8,
|
||||
parameter num_stages = 0,
|
||||
parameter init_value = 1'bx
|
||||
) (
|
||||
input clk,
|
||||
input [num_bits-1:0] d,
|
||||
output [num_bits-1:0] q
|
||||
);
|
||||
logic [num_bits-1:0] init_stage = { num_bits { init_value } };
|
||||
|
||||
generate
|
||||
if (num_stages > 0)
|
||||
begin
|
||||
reg [num_bits-1:0] stage_array[num_stages-1:0];
|
||||
|
||||
genvar i;
|
||||
for (i = 0; i < num_stages; ++i)
|
||||
begin : g_pipe
|
||||
always @ (posedge clk) begin
|
||||
if (i>0) begin
|
||||
stage_array[i] <= stage_array[i-1];
|
||||
end else begin
|
||||
stage_array[i] <= d;
|
||||
end
|
||||
end
|
||||
end
|
||||
initial begin
|
||||
stage_array = '{ num_stages { init_stage } };
|
||||
end
|
||||
|
||||
assign q = stage_array[num_stages-1];
|
||||
|
||||
end else begin
|
||||
assign q = d;
|
||||
end
|
||||
endgenerate
|
||||
|
||||
endmodule
|
25
hw/rtl/fp_cores/altera/generate.sh
Executable file
25
hw/rtl/fp_cores/altera/generate.sh
Executable file
|
@ -0,0 +1,25 @@
|
|||
#!/bin/bash
|
||||
|
||||
CMD_POLY_EVAL_PATH=$QUARTUS_HOME/dspba/backend/linux64
|
||||
|
||||
OPTIONS="-target Arria10 -lang verilog -frequency 300 -enableHardFP 1 -printMachineReadable -faithfulRounding -noChanValid -enable -speedgrade 2"
|
||||
|
||||
export LD_LIBRARY_PATH=$CMD_POLY_EVAL_PATH:$LD_LIBRARY_PATH
|
||||
|
||||
CMD="$CMD_POLY_EVAL_PATH/cmdPolyEval $OPTIONS"
|
||||
|
||||
EXP_BITS=8
|
||||
MAN_BITS=23
|
||||
FBITS="f$(($EXP_BITS + $MAN_BITS + 1))"
|
||||
|
||||
echo Generating IP cores for $FBITS
|
||||
{
|
||||
$CMD -name acl_fp_div FPDiv $EXP_BITS $MAN_BITS 0
|
||||
$CMD -name acl_fp_sqrt FPSqrt $EXP_BITS $MAN_BITS
|
||||
$CMD -name acl_fp_ftoi FPToFXP $EXP_BITS $MAN_BITS 32 0 1
|
||||
$CMD -name acl_fp_ftou FPToFXP $EXP_BITS $MAN_BITS 32 0 0
|
||||
$CMD -name acl_fp_itof FXPToFP 32 0 1 $EXP_BITS $MAN_BITS
|
||||
$CMD -name acl_fp_utof FXPToFP 32 0 0 $EXP_BITS $MAN_BITS
|
||||
} > log.txt 2>&1
|
||||
|
||||
cp $QUARTUS_HOME/dspba/backend/Libraries/sv/base/dspba_library_ver.sv .
|
|
@ -20,12 +20,12 @@ interface VX_cmt_to_issue_if ();
|
|||
wire [`ISTAG_BITS-1:0] gpu_tag;
|
||||
|
||||
`IGNORE_WARNINGS_BEGIN
|
||||
is_data_t alu_data;
|
||||
is_data_t lsu_data;
|
||||
is_data_t csr_data;
|
||||
is_data_t mul_data;
|
||||
is_data_t fpu_data;
|
||||
is_data_t gpu_data;
|
||||
issue_data_t alu_data;
|
||||
issue_data_t lsu_data;
|
||||
issue_data_t csr_data;
|
||||
issue_data_t mul_data;
|
||||
issue_data_t fpu_data;
|
||||
issue_data_t gpu_data;
|
||||
`IGNORE_WARNINGS_END
|
||||
|
||||
endinterface
|
||||
|
|
|
@ -31,7 +31,6 @@ module VX_divide #(
|
|||
.denom (denom),
|
||||
.quotient (quotient_unqual),
|
||||
.remain (remainder_unqual),
|
||||
.aclr (1'b0),
|
||||
.clken (clk_en)
|
||||
);
|
||||
|
||||
|
@ -41,7 +40,7 @@ module VX_divide #(
|
|||
divide.lpm_widthd = WIDTHD,
|
||||
divide.lpm_nrepresentation = NSIGNED ? "SIGNED" : "UNSIGNED",
|
||||
divide.lpm_drepresentation = DSIGNED ? "SIGNED" : "UNSIGNED",
|
||||
divide.lpm_hint = "MAXIMIZE_SPEED=9,LPM_REMAINDERPOSITIVE=FALSE",
|
||||
divide.lpm_hint = "MAXIMIZE_SPEED=6,LPM_REMAINDERPOSITIVE=FALSE",
|
||||
divide.lpm_pipeline = PIPELINE;
|
||||
|
||||
assign quotient = quotient_unqual [WIDTHQ-1:0];
|
||||
|
|
|
@ -23,8 +23,6 @@ module VX_multiplier #(
|
|||
.dataa (dataa),
|
||||
.datab (datab),
|
||||
.result (result),
|
||||
.sclr (reset),
|
||||
.aclr (1'b0),
|
||||
.clken (clk_en),
|
||||
.sum (1'b0)
|
||||
);
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
module VX_shift_register #(
|
||||
parameter DATAW = 1,
|
||||
parameter DEPTH = 0
|
||||
parameter DEPTH = 1
|
||||
) (
|
||||
input wire clk,
|
||||
input wire reset,
|
||||
|
@ -10,41 +10,33 @@ module VX_shift_register #(
|
|||
input wire [DATAW-1:0] in,
|
||||
output wire [DATAW-1:0] out
|
||||
);
|
||||
if (0 == DEPTH) begin
|
||||
reg [DEPTH-1:0][DATAW-1:0] entries;
|
||||
|
||||
assign out = in;
|
||||
|
||||
end if (1 == DEPTH) begin
|
||||
|
||||
reg [DATAW-1:0] ram;
|
||||
if (1 == DEPTH) begin
|
||||
|
||||
always @(posedge clk) begin
|
||||
if (reset) begin
|
||||
ram <= '0;
|
||||
entries <= '0;
|
||||
end else begin
|
||||
if (enable) begin
|
||||
ram <= in;
|
||||
entries <= in;
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
assign out = ram;
|
||||
|
||||
end else begin
|
||||
|
||||
reg [DEPTH-1:0][DATAW-1:0] ram;
|
||||
end else begin
|
||||
|
||||
always @(posedge clk) begin
|
||||
if (reset) begin
|
||||
ram <= '0;
|
||||
entries <= '0;
|
||||
end else begin
|
||||
if (enable) begin
|
||||
ram <= {ram[DEPTH-2:0], in};
|
||||
entries <= {entries[DEPTH-2:0], in};
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
assign out = ram [DEPTH-1];
|
||||
end
|
||||
|
||||
assign out = entries [DEPTH-1];
|
||||
|
||||
endmodule
|
|
@ -1,6 +1,6 @@
|
|||
set_time_format -unit ns -decimal_places 3
|
||||
|
||||
create_clock -name {clk} -period "200 MHz" -waveform { 0.0 1.0 } [get_ports {clk}]
|
||||
create_clock -name {clk} -period "300 MHz" -waveform { 0.0 1.0 } [get_ports {clk}]
|
||||
|
||||
derive_pll_clocks -create_base_clocks
|
||||
derive_clock_uncertainty
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue