URL
https://opencores.org/ocsvn/mod_sim_exp/mod_sim_exp/trunk
Subversion Repositories mod_sim_exp
Compare Revisions
- This comparison shows the changes necessary to convert path
/mod_sim_exp/trunk/rtl/vhdl/core
- from Rev 55 to Rev 59
- ↔ Reverse comparison
Rev 55 → Rev 59
/std_functions.vhd
0,0 → 1,81
---------------------------------------------------------------------- |
---- std_functions ---- |
---- ---- |
---- This file is part of the ---- |
---- Modular Simultaneous Exponentiation Core project ---- |
---- http://www.opencores.org/cores/mod_sim_exp/ ---- |
---- ---- |
---- Description ---- |
---- package with standard functions used in this project ---- |
---- ---- |
---- Authors: ---- |
---- - Geoffrey Ottoy, DraMCo research group ---- |
---- - Jonas De Craene, JonasDC@opencores.org ---- |
---- ---- |
---------------------------------------------------------------------- |
---- ---- |
---- Copyright (C) 2011 DraMCo research group and OPENCORES.ORG ---- |
---- ---- |
---- This source file may be used and distributed without ---- |
---- restriction provided that this copyright statement is not ---- |
---- removed from the file and that any derivative work contains ---- |
---- the original copyright notice and the associated disclaimer. ---- |
---- ---- |
---- 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 2.1 of the License, or (at your option) any ---- |
---- later version. ---- |
---- ---- |
---- This source 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 Lesser General Public License for more ---- |
---- details. ---- |
---- ---- |
---- You should have received a copy of the GNU Lesser General ---- |
---- Public License along with this source; if not, download it ---- |
---- from http://www.opencores.org/lgpl.shtml ---- |
---- ---- |
---------------------------------------------------------------------- |
library ieee; |
use ieee.std_logic_1164.all; |
use ieee.std_logic_unsigned.all; |
|
package std_functions is |
function maxV(L, R: INTEGER) return INTEGER; |
function minV(L, R: INTEGER) return INTEGER; |
function log2 (val: INTEGER) return natural; |
end std_functions; |
|
package body std_functions is |
function maxV(L, R: INTEGER) return INTEGER is |
begin |
if L > R then |
return L; |
else |
return R; |
end if; |
end; |
|
function minV(L, R: INTEGER) return INTEGER is |
begin |
if L < R then |
return L; |
else |
return R; |
end if; |
end; |
|
function log2 (val: INTEGER) return natural is |
variable res : natural; |
begin |
for i in 0 to 31 loop |
if (val <= (2**i)) then |
res := i; |
exit; |
end if; |
end loop; |
return res; |
end function Log2; |
end std_functions; |