OpenCores
URL https://opencores.org/ocsvn/xilinx_virtex_fp_library/xilinx_virtex_fp_library/trunk

Subversion Repositories xilinx_virtex_fp_library

[/] [xilinx_virtex_fp_library/] [trunk/] [GeneralPrecMAFMappedConversions/] [special_cases_mul.v] - Blame information for rev 19

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 19 constantin
 
2
`timescale 1ns / 1ps
3
//////////////////////////////////////////////////////////////////////////////////
4
// Company: 
5
// Engineer: 
6
// 
7
// Create Date:    18:56:11 10/07/2013 
8
// Design Name: 
9
// Module Name:    special_cases_mul
10
// Project Name: 
11
// Target Devices: 
12
// Tool versions: 
13
// Description: 
14
//
15
// Dependencies: 
16
//
17
// Revision: 
18
// Revision 0.01 - File Created
19
// Additional Comments: 
20
//
21
//////////////////////////////////////////////////////////////////////////////////
22
module special_cases_mul        #(      parameter size_exception_field = 2'd2,
23
                                                                parameter [size_exception_field - 1 : 0] zero = 0, //00
24
                                                                parameter [size_exception_field - 1 : 0] normal_number   = 1, //01
25
                                                                parameter [size_exception_field - 1 : 0] infinity                = 2, //10
26
                                                                parameter [size_exception_field - 1 : 0] NaN                     = 3) //11
27
                                                        (       input [size_exception_field - 1 : 0] sp_case_a_number,
28
                                                                input [size_exception_field - 1 : 0] sp_case_b_number,
29
                                                                output reg [size_exception_field - 1 : 0] sp_case_result_o);
30
 
31
        always
32
                @(*)
33
        begin
34
                case ({sp_case_a_number, sp_case_b_number})
35
                        {zero, zero}:                                           sp_case_result_o = zero;
36
                        {zero, normal_number}:                          sp_case_result_o = zero;
37
                        {zero, infinity}:                                       sp_case_result_o = NaN;
38
                        {zero, NaN}:                                            sp_case_result_o = NaN;
39
 
40
                        {normal_number,zero}:                           sp_case_result_o = zero;
41
                        {normal_number,normal_number}:          sp_case_result_o = normal_number;
42
                        {normal_number,infinity}:                       sp_case_result_o = infinity;
43
                        {normal_number,NaN}:                            sp_case_result_o = NaN;
44
 
45
                        {infinity, zero}:                                       sp_case_result_o = NaN;
46
                        {infinity, normal_number}:                      sp_case_result_o = infinity;
47
                        {infinity, infinity}:                           sp_case_result_o = NaN;
48
                        {infinity, NaN}:                                        sp_case_result_o = NaN;
49
 
50
                        {NaN, zero}:                                            sp_case_result_o = NaN;
51
                        {NaN, normal_number}:                           sp_case_result_o = NaN;
52
                        {NaN, infinity}:                                        sp_case_result_o = NaN;
53
                        {NaN, NaN}:                                             sp_case_result_o = NaN;
54
 
55
                        default:                                                        sp_case_result_o = zero;
56
                endcase
57
        end
58
 
59
endmodule
60
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.