시스템에서 자일링스 FPGA를 구현하기 위해 32 비트 승수를 설명하는 데 VHDL을 사용하고 있는데, 웹에서 경험적으로 볼 수 있듯이 N 비트 크기의 입력을 가지고 있다면 출력은 (2 * N) 비트 크기 여야합니다. 나는 그것을 피드백 시스템을 위해 사용하고있다. 입력의 크기와 동일한 출력을 갖는 승수를 갖는 것이 가능한가?출력이 같은 쪽의 입력을 가진 VHDL 곱셈기
vhdl 코드에 동일한 크기의 신호로 연결된 덧셈기와 곱셈기 블록이있는 FPGA 응용 프로그램을 찾았 으면 한 번 맹세했습니다. 코드를 작성한 사람은 제품의 결과를 64 비트 신호에 넣기 만하면 결과가 가장 중요한 32 비트의 결과를 가져와야한다고 말했고 (가장 중요한 32 비트에 꼭 필요한 것은 아니 었습니다 64 비트 신호의). 나는 다음 코드를 사용하여 (분명히 작동) 시스템을 구축시
:library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
entity Multiplier32Bits is
port(
CLK: in std_logic;
A,B: in std_logic_vector(31 downto 0);
R: out std_logic_vector(31 downto 0)
);
end Multiplier32Bits;
architecture Behavioral of Multiplier32Bits is
signal next_state: std_logic_vector(63 downto 0);
signal state: std_logic_vector(31 downto 0);
begin
Sequential: process(CLK,state,next_state)
begin
if CLK'event and CLK = '1' then
state <= next_state(61 downto 30);
else
state <= state;
end if;
end process Sequential;
--Combinational part
next_state <= std_logic_vector(signed(A)*signed(B));
--Output assigment
R <= state;
end Behavioral;
나는이 시점에서 내가 액티브 HDL FPGA 시뮬레이터 시뮬레이션 블록을 가지고 있기 때문에 일하고 있지만, 그러나 알고 자일링스 ISE Design Suite의 iSim을 사용하여 전체 32 비트 시스템을 시뮬레이트하고있다. 필자는 출력 결과가 A와 B 입력의 실제 제품과 큰 차이가 있다는 것을 알았습니다. 32 비트를 건너 뛰는 정확도가 느슨하거나 코드가 잘못되었다는 것을 알지 못합니다.
오케이, 질문은 어디에 있습니까? – Staszek
그리고 시뮬레이션에 사용한 번호를 제공하십시오. – Staszek
결과를 정렬하려면 포스트 시프 팅을 사용하는 것이 좋습니다. 그리고 서명 된 고정 소수점 입력을 사용했습니다. – JHBonarius