1
나는 VHDL을 처음 사용하고 있으며 인터넷을 검색 한 결과 나에게 도움이되는 자료를 찾지 못했습니다!배열 요소의 합 VHDL
I는 (! 32 개 요소) 배열의 요소를 추가하는 것을 시도하고, 그래서 단지 예들 < = S (0) +는 S (1) +는 (S) (3) ... S 대 물품 캔트 (5) + .... s (32)
어떻게 그런 계산을 일반화 할 수 있습니까 ?? 또는 내가 뭘 잘못하고 있니?
내 코드 (시뮬레이션에서 그 didnt 한 작업은) ...
library IEEE;
library work;
library std;
use IEEE.STD_LOGIC_1164.all;
use IEEE.STD_LOGIC_UNSIGNED.all;
use ieee.std_logic_arith.all;
entity main is Port (
EIN : in std_logic;
AUS_1 : out std_logic_vector(3 downto 0));
end main;
architecture Behaviour of main is
type Cosinus is array (0 to 4) of std_logic_vector(3 downto 0);
type Sinus is array (0 to 4) of std_logic_vector(3 downto 0);
Signal SumSin :std_logic_vector(3 downto 0);
begin
main : process(Ein)
variable Cos : Cosinus;
variable Sin : Sinus;
begin
if(Ein='1') then
sin(0) := "0011";
sin(1) := "0001";
sin(2) := "1010";
sin(3) := "1111";
sin(4) := "1110";
for n in 0 to 4 loop
SumSin <= SumSin + Sin(n);
end loop;
else
sin(0) := "1011";
sin(1) := "0101";
sin(2) := "1000";
sin(3) := "1001";
sin(4) := "1100";
for n in 0 to 4 loop
SumSin <= SumSin + Sin(n);
end loop;
end if;
end process;
Aus_1 <= SumSin;
end Behaviour;
내가 먼저 thanksfull
이 프로그램에는 많은 문제가 있지만 가장 큰 문제는 신호 할당에 대한 오해라고 생각합니다. 신호 할당이 어떻게 작동하는지에 대한 설명은이 게시물을 참조하십시오. http://stackoverflow.com/questions/13954193/is-process-in-vhdl-reentrant 그것에 대해 무엇을 할 것인가? 한 가지 해결책은 SumSin을 변수로 만들고 단일 신호 할당을 통해이를 복사하여 그 과정의 마지막에 Aus. –