URL
https://opencores.org/ocsvn/ft816float/ft816float/trunk
Subversion Repositories ft816float
[/] [ft816float/] [trunk/] [test_bench/] [fpSigmoid_tb.sv] - Rev 72
Go to most recent revision | Compare with Previous | Blame | View Log
// ============================================================================// __// \\__/ o\ (C) 2017-2019 Robert Finch, Waterloo// \ __ / All rights reserved.// \/_// robfinch<remove>@finitron.ca// ||//// sigmoid_tb.v// - test sigmoid////// This source file is free software: you can redistribute it and/or modify// it under the terms of the GNU Lesser General Public License as published// by the Free Software Foundation, either version 3 of the License, or// (at your option) any later version.//// This source file is distributed in the hope that it will be useful,// but WITHOUT ANY WARRANTY; without even the implied warranty of// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the// GNU General Public License for more details.//// You should have received a copy of the GNU General Public License// along with this program. If not, see <http://www.gnu.org/licenses/>.////// This module returns the sigmoid of a number using a lookup table.// -1.0 or +1.0 is returned for entries outside of the range -8.0 to +8.0////// ============================================================================module sigmoid_tb();reg clk, rst;reg [12:0] ndx;wire [31:0] o;initial begin#0 rst = 1'b0;#0 clk = 1'b0;#10 rst = 1'b1;#40 rst = 1'b0;endalways #5 clk = ~clk;reg [31:0] RngLUT [0:8191];initial begin`include "D:\Cores6\rtfItanium\v1\rtl\fpUnit\RangeTbl.ver"endfpSigmoid #(32) u1 (clk, 1'b1, RngLUT[ndx], o);always @(posedge clk)if (rst)ndx = 0;else beginndx = ndx + 13'd1;endwire [31:0] o1, o2;// Multiply number by 4096 (it is in range -1 to 1) then convert to integerassign o1[22:0] = o[22:0];assign o1[30:23] = o[30:23] + 8'd12; // we know this won't overflowassign o1[31] = o[31];f2i #(32) u2(.clk(clk),.ce(1'b1),.i(o1),.o(o2));endmodule
Go to most recent revision | Compare with Previous | Blame | View Log
