Verilog 도움말

  • Thread starter maheshkuruganti
  • Start date
M

maheshkuruganti

Guest
안녕,
난 내가의 UART를 사용하는 직렬 인터페이스를 통해 6 레지스터들의 값을 할당해야합니다.그래서 만약 내 논리가 정확한지 여부를 알고 싶어 다음 코드를 내 섬기게 될 것이다 CMOSExod 마이크로 UART.I을 확인할 수없습니다.

코드 :

모듈의 입력 (

입력 Clk,

입력, RxD

출력 [31:0] FreqW,

출력 [31:0] 비밀 번호,

출력 [31:0] PW2,

출력 [31:0] 딜레이,

출력 [31:0] Delay2

);////////////////////////////////////////////////// ////////////////////////////////

/ / 매개 변수를 선언합니다. / /

////////////////////////////////////////////////// ////////////////////////////////

매개 변수 Increment1K = 42949;

매개 변수 Increment1M = 42949672;

매개 변수는 유휴 = 6'b000001;

= 6'b000010 ADR 매개 변수;

매개 변수가 D0 = 6'b000100;

매개 변수 D1 = 6'b001000;

매개 변수를 D2에 = 6'b010000;

매개 변수 D3 = 6'b100000;////////////////////////////////////////////////// ////////////////////////////////

/ / 등록 및 와이어 선언합니다. / /

////////////////////////////////////////////////// ////////////////////////////////

[31:0] FrequencyWord = Increment1M * 2 reg;

[31:0] Pulse_Width = 25 reg;

] Pulse_Width2 [31:0 reg;

[31:0] Delay_Hold = 32'h00000005 reg;

] Delay_Hold2 [31:0 reg;

] 데이터 [31:0 reg;

/ / 바이트 카운터.

] ByteCounter [5시 reg;

/ / 데이터 에지 감지기

] DataRdy [1:0 reg;

와이어 DataReady;

/ / 디코딩 주소

] 주소 [7시 reg;

/ /의 UART 전선.

와이어 RxD_data_ready;

와이어 [7시] RxD_data;

와이어 Baud_Clk;

////////////////////////////////////////////////// ////////////////////////////////

/ / USART 리시버와 디코더. / /

////////////////////////////////////////////////// ///////////////////////////////// / 모듈 인스턴스

u_rec 수신기 (

. sys_rst_l (1),

. sys_clk (Baud_Clk),

. uart_dataH (RxD)

. rec_dataH (RxD_data),

. rec_readyH (RxD_data_ready)

);/ / 모듈 인스턴스

보오드 Baud_Generator (

. sys_clk (Clk),

. sys_rst_l (1),

. baud_clk (Baud_Clk)

);////////////////////////////////////////////////// ////////////////////////////////

/ / 데이터 디코더 또는 해석기 / /

////////////////////////////////////////////////// ///////////////////////////////// / 저장소에 등록 전환하면 데이터 준비 상태.

항상 (posedge Clk) @

DataRdy <= (DataRdy [0], RxD_data_ready);/ / 데이터 가용성 비트.

) DataReady = (DataRdy == 2'b01 할당?
1'b1 : 1'b0;항상 (posedge Clk) @

시작

만약 () DataReady

시작

케이스 (ByteCounter)

유휴 모드 : ByteCounter = ADR;

ADR : ByteCounter =가 D0;

가 D0 : ByteCounter = D1;

D1 : ByteCounter = D2에;

D2에 : ByteCounter = D3;

D3 : ByteCounter = 유휴;

기본값 : ByteCounter = 유휴;

endcase



끝항상 (posedge Clk) @

시작

(ByteCounter == ADR)

주소 = RxD_data;

다른 경우 (ByteCounter ==가 D0)

데이터 = (데이터 [31:8], RxD_data);

다른 경우 (ByteCounter == D1)

데이터 = (데이터 [31:16], RxD_data, 데이터 [7시]);

다른 경우 (ByteCounter == D2에)

데이터 = (데이터 [31:24], RxD_data, 데이터 [15시]);

다른 경우 (ByteCounter == D3)

데이터 = (RxD_data, 데이터 [23시]);

끝항상 (posedge Clk) @

시작

케이스 (주소)

8'h41 : FrequencyWord = 데이터;

8'h42 : Pulse_Width = 데이터;

8'h43 : Pulse_Width2 = 데이터;

8'h44 : Delay_Hold = 데이터;

8'h45 : Delay_Hold2 = 데이터;

기본값 : FrequencyWord = FrequencyWord;

endcase

끝FreqW = FrequencyWord 할당;

비밀 번호 = Pulse_Width 할당;

PW2 = Pulse_Width2 할당;

지연 = Delay_Hold 할당;

Delay2 = Delay_Hold2 할당;endmodule

 
HTC zaprezentowało kolejne urządzenie pracujące pod kontrolą systemu Android. Model Sensation to smartfon z 4,3-calowym ekranem i dwurdzeniowym procesorem. HTC określa go mianem "multimedialnego supertelefonu".

Read more...
 

Welcome to EDABoard.com

Sponsor

Back
Top