correlate_and_accumulate_pack.vhd

来自「如何使用ISE和FPGA使用指南」· VHDL 代码 · 共 50 行

VHD
50
字号
library ieee;
use ieee.std_logic_1164.all;

package correlate_and_accumulate_pack is

    function or_reduce (
        slv : std_logic_vector)
        return std_logic;

    function and_reduce (
        slv : std_logic_vector)
        return std_logic;

    function xor_reduce (
        slv : std_logic_vector)
        return std_logic;

end correlate_and_accumulate_pack;

package body correlate_and_accumulate_pack is

    function or_reduce (slv : std_logic_vector) return std_logic is
        variable result     : std_logic := '0';
    begin
        for i in slv'range loop
            result                      := result or slv(i);
        end loop;
        return result;
    end function or_reduce;

    function and_reduce (slv : std_logic_vector) return std_logic is
        variable result      : std_logic := '1';
    begin
        for i in slv'range loop
            result                       := result and slv(i);
        end loop;
        return result;
    end function and_reduce;

    function xor_reduce (slv : std_logic_vector) return std_logic is
        variable result      : std_logic := '0';
    begin
        for i in slv'range loop
            result                       := result xor slv(i);
        end loop;
        return result;
    end function xor_reduce;

end correlate_and_accumulate_pack;

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?