2012-11-26 2 views
1

나는 일련의 값을 메모리 배열에 저장하고 있습니다. 이 시퀀스를 LED 디스플레이에 출력 할 때가되면 여러 드라이버에서 오류가 발생합니다.Verilog 배열 연결 : 다중 드라이버

그것은 "여러 드라이버"결과 주도 출력에 메모리 어레이의 각 레지스터에 연결하려는 Verilog를 보인다
reg [3:0] p[0:63]; // pattern sequence 
.... 
led = p[playcnt]; // display current pattern; playcnt loops from 0 to 63 

오류 : 여기

내가 함께 일하고 있어요 코드 조각이다 . 메모리 어레이의 단일 출력 만 LED 출력에 연결하고 메모리 배열에 주소로 playcnt 변수를 사용하는 쉬운 방법이 있습니까?

도움 주셔서 감사합니다. 대단히 감사합니다.

+5

당신은 led' 선언하고 정확한 오류 메시지 방법'표시되어야합니다. 그 외에도 다중 운전자는 귀하가 게시 한 바깥에있을 가능성이 가장 큰 다른 것입니다. –

답변

1

"led"와 관련된 모든 코드를 제공하고 "playcnt 루프 0에서 63"까지 무엇을 의미하는지 표시하십시오.

이 유사한 코드가있는 경우 : 당신이 실제로 하나의 포트에 모든 레지스터를 연결

always_comb 
    for (int playcnt=0; playcnt<64; playcnt++) 
    led = p[playcnt]; 

. 내가 제대로 당신의 의도를 이해하면

, 다음 (하지 테스트)이 유사한 코드가 있어야합니다

reg [3:0] p [0:63]; 
reg [5:0] playcnt; 
wire [3:0] led; 

always @ (posedge clk or negedge rst) 
    if (!rst) 
    playcnt[5:0] <= 6'h0; 
    else 
    playcnt[5:0] <= playcnt[5:0] + 6'h1; 

assign led[3:0] = p[playcnt];