| 전에 다른 분이 답변을 주셨던것 같은데, 내용이 삭제 된것 같아서 다시 올립니다.
1. A <= (others => );의 구문은 A의 모든 값을 으로 하라는 것입니다.
예를 들어 A가 8비트의 signal 변수라 한다면 앞에서 아래와 같이 선언되었을 것입니다.
signal A : std_logic_vector(7 downto 0);
이곳에 이라는 값을 전부 입력시켜 주기 위해서는 A <= 0000000; 이렇게 사용하여야 하는데, 위의 A <= (others => ); 이렇게 사용해 주어도 됩니다.
변수의 비트가 더 많을 경우에는 이런 방법이 더 편합니다.
2. if clkevent and clk = 1 then
의 구문은 latch가 아닌 dff입니다. 그렇기 때문에 하나의 클럭후에 데이터가 전달되는 것으로 나타날 수 있습니다.
또, 이 부분에서 사용하는 변수가 signal 일 경우에, signal 변수의 특징인 값의 update가 process문의 끝나는 시점에 일어난다는 것에 의해 한 클럭 딜레이 되어 데이터가 나오는 것일 수도 있습니다.
그럼,
|