하나의 프로세스에서 3 개의 클록을 사용할 때 문제가 발생했습니다. HC1, HC2가 동시에 작동 할 수 있으며 H, H보다 훨씬 느립니다. 16MHZ에서 작동하는 기본 시계입니다.VHDL 복수 시계로 하나의 신호 수정
entity fifo is
Port (H : in STD_LOGIC;
HC1 : in STD_LOGIC;
HC2 : in STD_LOGIC;
C1data : in STD_LOGIC_VECTOR (2 downto 0);
C2data : in STD_LOGIC_VECTOR (2 downto 0);
Buffer1 : out STD_LOGIC_VECTOR (3 downto 0);
Buffer2 : out STD_LOGIC_VECTOR (3 downto 0));
end fifo;
architecture Behavioral of fifo is
signal Full1,Full2 : STD_LOGIC;
begin
process(H,HC1,HC2)
begin
if(rising_edge(H)) then
Full1 <= '0';
Full2 <= '0';
else
if(rising_edge(HC1)) then
Buffer1(3 downto 1) <= C1data;
Buffer1(0) <= C1data(2) xor C1data(1) xor C1data(0);
Full1 <= '1';
end if;
if(rising_edge(HC2)) then
Buffer2(3 downto 1) <= C2data;
Buffer2(0) <= C2data(2) xor C2data(1) xor C2data(0);
Full2 <= '1';
end if;
end if;
최종 처리;
하고 말한다
ERROR : XST : 827 - "C : /Users/Administrator/Desktop/test/justatest/fifo.vhd"라인 45 : 신호 Buffer1 < 0> 나쁜 동기 설명을 합성 할 수 없다. 동기 요소 (레지스터, 메모리 등)를 설명하는 데 사용하는 설명 스타일은 현재 소프트웨어 릴리스에서 지원되지 않습니다.
왜? 많은 감사합니다!
음, 먼저 코드를 해독 할 수 있도록 질문 레이아웃을 수정 해주십시오. : D –
당신이 필요로하는 것은 단일 클럭과 다중 "로드"신호 등입니다. 나는 또한 이것을 먼저 시뮬레이트하여 당신이 의도 한대로 작동하는지, 합성 코드가 나쁜지 여부를 확인하는 것을 추천한다. – fru1tbat
XST 사용자 가이드 (예 : UG627 v 14.5)를 살펴보면 한 클럭 및 elsif가있는 if 문은 VHDL 순차 회로, VHDL 순차 처리 감도 목록. – user1155120