Verilog

S

Sobakava

Guest
난 패턴 발생기 Verilog 및 XC9500 CPLD를 사용하여 구현했습니다.

패턴은 클럭 입력과 함께 생성합니다.

저기 카운터이다, 그것은 계산에는 케이스 / / endcase
블록 펄스를 생성하는 과정을 카운터 가치와 ...
카운터 21048에 도달하면, 난 0과 다음 프레임을 시작으로 설정 ...

자유롭게 내 패턴 생성기를 실행하는 동안에는 아무 문제가 없다 ...

하지만 지금은 외부 트리거와 발전기를 제어할 필요가있다면 ...
만약 부정적 또는 긍정적인 스타트 핀 가장자리에서 그것을 감지
발전기를 한번 실행해야 ...단 한 차례 이루어져야
그럼 21,048에 도달하면 다음 스타트 때까지 방아쇠, 그만해야한다 ...

입력 main_clock;
reg 카운터 [14시];
= 0 can_read reg;

항상 (posedge main_clock)
@시작

만약 (카운터 == 21048)
시작
카운터 = 0;
can_read = 0;


(can_read)
/ / 수 읽기 시작 시작
카운터 = 카운터 1;

케이스 (카운터)
1 : 시작 ...끝
2 : 시작 ...끝
endcase

끝난 reg라는 CAN_READ 디자인을 추가로 ...

입력 readit;
항상 (posedge readit)
@시작
can_read = 1;
끝내가 말했듯이, 때
긍정 가장자리 감지 핀 READIT에서 언급했듯이, can_read 비트 설정하고 패턴을 생성합니다 main_clk 설정할 때까지 can_read 남아있다.카운터 21048에 도달하면, can_read 및 패턴 발생기 resetted 멈추지 않을 것입니다 ...

자일링스는 ISE이 디자인을 구현할 수 있도록하고 난 칩에로드, 그러나 그것이 작동하지 않는 것 같다 ...생성기를 항상 실행하고 난 READIT 핀 .... 사용을 멈출 수가 없어

그것을 설정하는 것은 불가능합니다
/ 2 언제나 (@ posedge. 다른 ...) 블록 (can_read) 등록 재설정?

어떤 의견?

 
neccesarry, 귀하의 카운터, 최대 카운트하거나 그게 가능
그를 내려 카운트 있니?

 
확실히 나는 그것을 반대로 만들 수 있지만 - 테이블 ... endcase 사건의 경우를 변경해야합니다
왜?이 오류 메시지가 나타납니다 :
오류 : NgdBuild : 755 - 선 15 'counter.ucf': 찾을 수없습니다 그물 (들)
'디자인 readit'.이 오류는 올바른 네트를 지정 억제하려면
이름이나 제약 사항을 제거합니다.'난 무시 \ O를 제약 잘못된 개체에
이름은 '자산도 (설정할 수 -
aul 스위치를 커맨드 라인 사용자를 위해).
동안 구문 분석 오류 : Parsers : 11 - 인식할 수없는 제약이 발생했습니다.
오류 : NgdBuild : 19 - 오류 발견하면서 "counter.ucf"파일을 제약 파싱.항상 (posedge readit)
@시작
can_read = 1;


하지만 만약 내가 덤미랑 출력 핀을 추가하고 posedge @ READIT이 오류를 부여하지 않는다에서 전환 :

항상 (posedge readit)
@시작
can_read = 1;
덤미랑 = ~ 더미;
끝왜냐고요?

난 항상 ISE (posedge readit) @ 제거 같은데 ....블록
난 단지 can_read 떠날 때 = 1; 성명 ...
reg can_read (posedge main_clock)도 차단 @ 항상 사용됩니다.
가 금지?어떻게이 문제를 해결하려면?

 
그것을 금지하지 않습니다., 유를 사용하면 끝이라고 생각
항상 (posedge readit)
@can_read = 1;
, 그것은 분명히 상수 최적화해야 하나 거기에 대한 단 하나 can_read 가능한 가치와 그것을 ISE 코드 ur에게 무슨 짓을했는지.
당신은
HDL을 모델링하는, 새로운 것보다 더 많은 책을 읽고 / 예제 u'd.

 
합성, 후 경고를 확인하고 설계도를 보면은 RTL 합성기 왜 당신의 디자인을 제거하십시오.

 
내가 문제를 줄이는 노력을 함께 할 수하려고합니다 :

내 칩에 입력 :
시계
읽기

출력 :


제가 프레임으로 모든 셀 / 리셋주기 전화 ...상단에 도달 할 때 카운터 시계 시계, 함께, 그것은 하나의 맥박이 리셋 신호가 출력에 나타나는 프레임을 실행합니다.카운터 동안 일부 다른 작업을 할 필요가 기대하고있다.

긍정적인 가장자리를 읽는 맥박이 감지되면이 비트가 설정되어있는 경우 (risign 가장자리와 어떤 길이 펄스), 비트 실행중 다음 프레임에, 내가 내 작업을 할 (posedge 시계)
@ 블록을
설정해야합니다 ....

이 없다면 새로운 읽는 맥박, 다음 프레임의 시작 부분에서 액티브 비트 허가를 받아야합니다 ...

내 문제는 내가 / 활성 메커니즘 ... 읽는 구현할 수 없다는 것입니다내가 Verilog에서 전문가, 학습자 스스로
오전 아닙니다

<img src="http://www.edaboard.com/images/smiles/icon_wink.gif" alt="윙크" border="0" />
.1. 항상 (posedge 읽는)
@.2. 시작
.3.activate_it = 1
.4. 끝
.5.
0.6. 항상 (posedge 배치되어)
@.7. 시작
.8.카운트 = 카운트 1
.9.만약 (카운트 == 0)
10.시작
11.(activate_it)
12.시작
13.activate_it = 0;
14.실행중 = 1
15.끝
16.그 밖의
17.실행중 = 0
18.끝
19.end자일링스 이세 라인 3에 동의하지 않습니다 ...

항상 (posedge 읽는)
@시작
activate_it = ~ activate_it;

만약 내가, 내가 오류없이,하지만 디자인을 구현할 수있습니다 :항상 (posedge 읽는)
@시작
activate_it = 1;

만약 내가, "경고 : Xst : 647 - 입력 <READ> 사용하지 않습니다.
메시지가 나타납니다 ...
오류 : NgdBuild : 755 - 선 16 'counter.ucf': 찾을 수없습니다 그물 (들) '읽기'에
동안 구문 분석 오류 : Parsers : 11 - 인식할 수없는 제약이 발생했습니다.
오류 : NgdBuild : 19 - 오류 발견하면서 "counter.ucf"파일을 제약 파싱.나는
그것을 최적화하는 이유 중 하나입니다, 합성 도구 제거 ...나는 그것을 기초와 간단한 질문이지만 정말 도움이 필요하다고 생각들 ...

첨부 이미지를 위해 내가 뭘해야하는 노력의 타이밍 다이어그램은 ...
미안하지만, 당신이 첨부 파일을보기 위해서는 로그인이 필요

 
카운터 그를 언제 당신이 HIV에 번호를 알려 드릴 수있는 다양한 사용자가 원하는 상태로 reachs입니다.그리고 외부 triger 0 귀하의 카운터를 재설정해야합니다.새로 만들기를 가리킨 thise 프레임 밖 시작이다.

 
외부 트리거와 카운터를 다시 설정할 수없습니다.그것은 고정 가치를 뒤집다 원하는 시간을 계산해야한다 ...

 
경고 : Xst : 528 - 멀티 - 신호 <counter>에 단위 소스 <activate_it> 논리로 대체되지
신호 접지에 갇혀있다
오류 : Xst : 415 - 합성 실패무슨 뜻이지?

 
<img src="http://www.edaboard.com/images/smiles/icon_rolleyes.gif" alt="롤링 아이즈" border="0" /> 내가 뭘 yeewang! waht 더 있어요, 당신을 할당할 수없습니다 값이 동일한 신호라고 생각 오른쪽 두 사전 - 시뮬레이션?
always.did 맞아?

 
제가 이해 한 바로는,
하지만 한가지에 "항상"비트를 설정할 수있습니다 '및 기타에 항상 재설정 ...

합성 도구,이 합성 수 없지만,

"어떤 걸로 하나요?"

그림을 참조하시기 바랍니다, 당신은
내가 뭐가 필요한지 이해할 수있을
겁니다 ...

 

Welcome to EDABoard.com

Sponsor

Back
Top