[FPGA]AHDL로 BeMicro SDK LED 켜기 by allrelease

일단 핀이 VCC일 때 꺼진다. GND일 때 켜진다.

LED를 배열로 LED[7..0]하고서

if BTN  then
    LED[] = h"F0"
else
    LED[] = h"0F"
end if

이건 case를 쓰던 간에 돌리면 RTL부터 게이트 합성 안 되어 있다. 발악을 해도 못 함. 신테싸이져 주겨버려,,,



LED를 낱개로 하면 일단 합성은 제대로 된다.

if BTN then
    LED0= GND;
    LED1=VCC; ...
else
    LED0= VCC;
    LED1=GND; ...

하면 안 꺼진다. 안 꺼지고 희미해진다. 멘탈이 찢어진다.
VARIABLE에서 DFF 추가해서 연결시키면 켜지는 건 뭐 걱정 없고 꺼질 때도 깔끔하게 꺼진다.
RTL에서 합성된 걸 봤을 때 NOT이나 버튼 입력에서 직결로 LED로 이어지면 안 꺼지는 문제가 생긴다.



다시 LED를 배열로 하고서 DFF에 연결하고 합성 제대로 되나 봐야겠다. 하지만 자야겠다.
///// 자고 일어나서/////
SUBDESIGN LED
(
BTN, CLK : input;
LED[7..0] : output;
)

VARIABLE
buf[7..0] : DFF;

BEGIN
defaults
buf[] = b"00000000";
end defaults;
buf[].CLK = CLK;
LED[] = buf;
if BTN then
buf[] = b"11110000";
else
buf[] = b"00001111";
end if;
END;
으로 DFF를 대놓고 사용해본다.

합성이 완벽하게 되어 회로가 제대로 배치 되었다. 희미하게 꺼지고나서 다시 안 켜지는 문제도 해결. END.

덧글

댓글 입력 영역