-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathSLICE_WO.v
48 lines (40 loc) · 1.07 KB
/
SLICE_WO.v
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company:
// Engineer:
//
// Create Date: 11/20/2018 02:18:05 PM
// Design Name:
// Module Name: SLICE_WO
// Project Name:
// Target Devices:
// Tool Versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//////////////////////////////////////////////////////////////////////////////////
module SLICE_WO #(
parameter win = 64,
parameter uout = 31,
parameter lout = 18
)(
input clk_i,
input [win-1:0] sig_i,
output [uout-lout:0] sig_o
);
reg [uout-lout:0] sig;
always @(posedge clk_i) begin
if ({sig_i[win-1],|sig_i[win-3:uout]} == 2'b01) //positive overflow
sig <= 14'h1FFF ;
else if ({sig_i[win-1],&sig_i[win-2:uout]} == 2'b10) //negative overflow
sig <= 14'h2000 ;
else
sig <= sig_i[uout:lout] ;
end
assign sig_o = sig;
endmodule