문제

저는 간단하 verilog 프로그램으로 증가하는 32 비트 카운터로 숫자를 ASCII 문자열을 사용하여$sformat 고 그런 다음 밀어 문자열을 호스트 컴퓨터 1 바이트를 사용하여 한 번에는 FTDI FT245RL.

불행하게도 Xilinx XST 유지 최적화하는 멀리 문자열을 등록 벡터입니다.나가려고 일 처리의 주위에 다양한 초기화와 액세스 루틴 성공했다.나는 할 수 없을 끄고 최적화 모두의 예를 찾을 온라인과 다를 아주 작은 내 초기화 루틴입니다.무엇이 잘못된 것입니까?

module counter(CK12, TXE_, WR, RD_, LED, USBD);

   input CK12;
   input TXE_;
   output WR;
   output RD_;
   output [7:0] LED;
   inout [7:0] USBD;

   reg [31:0] count = 0;

   reg [7:0] k;
   reg wrf  = 0;
   reg rd   = 1;
   reg [7:0] lbyte = 8'b00000000;   

   reg td              = 1;
   parameter MEM_SIZE  = 88;
   parameter STR_SIZE  = 11;
   reg [MEM_SIZE - 1:0] str;
   reg [7:0] strpos = 8'b00000000;

   initial
     begin
        for (k = 0; k < MEM_SIZE; k = k + 1)
          begin
             str[k]    = 0;
          end
     end

   always @(posedge CK12)
     begin
        if (TXE_ == 0 && wrf == 1)
          begin
             count    = count + 1;
             wrf         = 0;
          end


        else if (wrf == 0)  // If we've already lowered the strobe, latch the data
          begin
             if(td)
               begin
                  $sformat(str, "%0000000000d\n", count);
                  strpos = 0;
                  td     = 0;
               end

             str      = str << 8;
             wrf         = 1;
             strpos      = strpos + 1;       

             if(strpos == STR_SIZE)
               td        = 1;

          end       
     end

   assign RD_             = rd;
   assign WR              = wrf;
   assign USBD            = str[87:80];
   assign LED             = count[31:24];

endmodule 

로딩 장치에 대한 응용 프로그램 Rf_Device 파일에서'3s100e.nph'in 환경/opt/Xilinx/10.1/ISE.경고:Xst:1293-FF/래치 str_0 상수의 값은 0 에서 블록 .이 FF/래치 될 것입니다 트리밍 동안 최적화 과정입니다.

경고:Xst:1896-으로 인해 기타 FF/래치 트리밍,FF/래치 str_1 상수의 값은 0 에서 블록 .이 FF/래치 될 것입니다 트리밍 동안 최적화 과정입니다.

경고:Xst:1896-으로 인해 기타 FF/래치 트리밍,FF/래치 str_2 상수의 값은 0 에서 블록 .이 FF/래치 될 것입니다 트리밍 동안 최적화 과정입니다.

도움이 되었습니까?

해결책

합$sformat 작업이 될 가능성이 synthesisable-무엇을 고려 하드웨어 컴파일러를 생산해야를 구현하는 이 기능을!즉,'str'등록하지 않도록 컴파일러는 생각은 그것을 최적화할 수 있습니다.고려 BCD 카운터,아마 검색 표 변환하 BCD 코드를 ASCII 코드입니다.

AFAIK'초기'블록되지 않은 synthesisable.초기화롭 사용하는 리셋 신호입니다.기억해야'에 대한 반복과 같은 있지만 어떤 트리거 후 재설정합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top