(디지털)"조합

T

tarkyss

Guest
아니 시계
마 입력
승 출력
모든 니은 번째 (n은 1 2 4 수있습니다

<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="차가운" border="0" />

T는되는 높은 수준의
승 출력 높은 수준의 너비가 T와 동일합니다
항상 @ (재설정 또는 T)
(리셋)하는 경우
시작
카운터 = n;
승 = 1'b0;

그 밖의
시작
(T)를하는 경우
시작
카운터 = 카운터 1;
만약 (카운터 == n)이
승 = 1'b1;

그 밖의
시작
승 = 1'b0;
만약 (카운터 == T)를
카운터 = n;


는 괜찮 아요?합성 후 거기에 걸쇠가 무엇입니까?명령이 있기 때문에 카운터 = 카운터 1;
재설정 글로벌 asy 신호를, 다른 정상적인 신호와 항상 목록에 넣어, 거기에 어떤 문제가 무엇입니까?

 
확실히이 생성됩니다 래치!
하지만 당신과 같은 카운터를 쓰고 고무???

 
만약 내가 카운터, 어떻게 사용하는 기능을 구현할 수 있도록 해달라고?어쨌든 좋아, 시계 제외

 
아니하거나 비치 샌들 래치와 직렬 입력 카운터를 구축하는 것은 불가능합니다.직렬 입력 카운터, 정의에 의해, 이전의 수를 기억 뭔가를해야합니다.

당신 combinational 카운터를 얻을 수있는 유일한 방법은 병렬 입력합니다.만약 T는 n 비트의 배열입니다, 당신의 카운터를 만들 수있는 얼마나 많은 1의 순수 combinational 논리와 N을 입력있습니다.올린날짜 4 분 후 :tarkyss 썼습니다 :

아니 시계

항상 @ (재설정 또는 T)

(리셋)하는 경우

:

그 밖의

시작

(T)를하는 경우

시작

카운터 = 카운터 1;

 
그건 불가능합니다 latchs를 사용하지 않고 카운터를 구축했다.

 
하지만 난 분명히 좋은 생각이 당신의 목적이 combinational 카운터를 활용하는 것입니다있어, 로직 디자인이 그 신호를 레지스터에 의해 샘플입니다 누른 다음 레지스터로 전송 수단의 주요 뜻은 RTL 구현되어있습니다.물론이 전송 로직을 다른 combinatory 로직이 포함될 수있습니다.

여기 combinatioal 카운터와 같은 경우라고 생각합니다.귀하의 구현 unncessary 짜증나는 선반 위해서는 분쇄기에 따라서, 내 의견에서, 당신은 가능 한한 당신이 수있는 레지스터를 사용한다.다음과 같은 하나의 간단한 예입니다 :

(posedge CLK 또는 negedge 재설정)은 항상 @
(리셋)하는 경우
카운터 "= 0;
...
다른 경우 (counter_en)
카운터 "= 카운터 1; / / 조합 adder 사이 lgoic 추론
/ / 해당 레지스터

그러나, 만약 순차 adder가 필요합니다, 다음과 같은 adder FSM을 사용하는 대신 직접 1 카운터를 사용하여 mechansim과 같은 구성한다.예를 들면 :

paramete s0 = 4'b00, / / 예제 2 비트 카운터를 사용하여
에스원 = 4'b01,
S2는 = 4'b10,
s3 = 4'b11;
[1시 reg] addst 추가; / / 카운터의 현재 상태와 다음 상태

(posedg CLK 또는 negedge 재설정)은 항상 @
(리셋)하는 경우
adders "= s0;
다른 경우 (counter_en)
adders "= adderst;

항상 (adders) @
케이스 (adders)
s0 : adderst = S1은;
에스원 : adderst = S2를;
S2는 : adderst = s3;
s3 : adderst = s0;
기본값 : aderst = s0;
endcase

 
다른 스레드에서와 마찬가지로 토론 :
http://www.edaboard.com/viewtopic.php?t=132423

 

Welcome to EDABoard.com

Sponsor

Back
Top