(단지 CPLD에서만의 문제는 아니지만)
일반적으로 신호의 level에 의해서 다른 signal을 구동하는 방법이 있지만
가끔은 edge로 동작해야 하는 경우가 있어서

이런 경우에는 보통 입력 신호의 system clk에 의해서 delay된 signal을 이용해서
입력 신호와 delayed 신호를 동시에 참조해서 해당되는 signal을 구동시켰었다.

그런데, system clk이 꽤 느린 경우이고,
구동해야할 signal은 많은 delay를 허용하지 않는 경우라면
여러가지로 고민하게 된다...

이런 경우에 입력 신호를 not gatering 해서
그 출력과 입력 신호를 잘 묶어서 생각해보면
not gate의 출력 신호는 입력에 비해 5~6ns 정도의 gate delay를 가지므로
결과적으로 5~6ns 정도의 1-pulse를 생성해낼수 있을텐데...

이 5ns 정도의 1-pulse를 async reset/set 등으로 사용한다면
system clk에 의한 방법보단 timing적으론 괜찮지 않을까 싶은데

그렇다곤 해도 5ns...라...
과연 system 안정성 면에선 어떨지 모르겠네...

한번 테스트해볼 필요는 있을 듯
분명 특별한 케이스에 필요한 날이 있을테니

'VHDL' 카테고리의 다른 글

Quartus에서 Power-on시의 Register 초기값 설정하기  (0) 2008.07.29
by sminchoi 2008. 7. 29. 12:42

일반적인 경우,
VHLD에서 Register의 값은 system reset 신호에 의해 async로 초기화를 해주게 된다.

그런데 어떤 특이한 케이스에서
Power-on 시에 (system reset으로 제어할수가 없어서) 초기값을 설정해야 할 필요가 있었다.

사용하는 M3000 시리즈의 EPM3128의 manual을 참조하면
모든 register는 Power-Up 시점에 clear 된다고 나와 있고
"Power-Up Level logic option" 을 사용해서 그 값을 선택할 수 있다고 되어 있다.
(Quartus에서만 가능하다고 되어 있음)

그런데 막상 아무리 저 값을 setting 해봐도 정상적으로 동작하는 것 같지는 않았다
아무래도 Quartus version과 해당 Device 등등과 관련되어 있는 듯

시간날 때 다시 한 번 확인해보고 정리할 필요는 있을 것 같음.


'VHDL' 카테고리의 다른 글

CPLD에서 특정 signal의 edge에서의 동작  (1) 2008.07.29
by sminchoi 2008. 7. 29. 11:54
| 1 |