Hjelp nødvendig å fjerne feil i 128 bits buffer

I

irshan

Guest
hei
Jeg har nødvendige 128 bit input for testing av en kjerne, jeg er villig til å gi innspill fra datamaskinen ved hjelp seril port, for å utføre min oppgave jeg har designet sate maskin som buffer 8-bits data fra seriell til buffer, og gir 128 bits til min kjernen på mottak av alle 128-bit form seial porten er kjernen gitt som popunder og advarsel som jeg har fått på det syntese etterfølges av kjernen, ur hjelpe nødvendig å modifisere kjernen slik at den fungerer riktig,

modul buffer (
input mclk, / / Master klokke
input arst_n, / / Asynkron reset (aktiv lav)
input [0:7] RxD_data,
input RxD_data_ready,
output reg [0:127] input_data, / / Leveres datato core
output reg input_valid

);

reg [3:0] Byte_count = 4'd0;

reg [2:0] currentstate, nextstate;
parameter [2:0] IDLE = 3'b001;
parameter [2:0] shift_reg = 3'b010;
parameter [2:0] input_data_valid = 3'b100;

alltid @ (posedge mclk eller negedge arst_n)
begynne
if (! arst_n)
currentstate <= IDLE;
ellers
currentstate <= nextstate;
slutt

alltid @ *
begynne
case (currentstate)
IDLE:
begynne
if (! arst_n)
begynne
Byte_count <= 4'd0;
slutt
ellers
nextstate <= shift_reg;
slutt

shift_reg:
begynne
if (RxD_data_ready)
case (Byte_count)
4'b0000:
input_data [0:7] <= RxD_data;
4'b0001:
input_data [8:15] <= RxD_data;
4'b0010:
input_data [16:23] <= RxD_data;
4'b0011:
input_data [24:31] <= RxD_data;
4'b0100:
input_data [32:39] <= RxD_data;
4'b0101:
input_data [40:47] <= RxD_data;
4'b0110:
input_data [48:55] <= RxD_data;
4'b0111:
input_data [56:63] <= RxD_data;
4'b1000:
input_data [64:71] <= RxD_data;
4'b1001:
input_data [72:79] <= RxD_data;
4'b1010:
input_data [80:87] <= RxD_data;
4'b1011:
input_data [88:95] <= RxD_data;
4'b1100:
input_data [96:103] <= RxD_data;
4'b1101:
input_data [104:111] <= RxD_data;
4'b1110:
input_data [112:119] <= RxD_data;
4'b1111:
input_data [120:127] <= RxD_data;
default:
input_data [0:127] <= 128'dz;
endcase
Byte_count <= Byte_count 1'b1;
nextstate <= input_data_valid;
slutt

input_data_valid:
begynne
if (Byte_count == 15)
begynne
inputdata_valid <= 1 B1;
else if (! arst_n)
nextstate <= IDLE;
ellers
nextstate <= shift_reg;
slutt
default nextstate <= IDLE;
endcase
slutt
endmodule
VarselXst: 737 - Fant 1-bit sperren for signal <input_data_1>.
.
.
.
Xst: 737 - Fant 1-bit sperren for signal <input_data_127>.Xst: 2117 - HDL ADVISOR - Mux Selector <currentstate> av Case uttalelse linje 48 ble re-kodet med en varm koding.Saken erklæringen vil være optimalisert (standard statement optimalisering), men denne optimaliseringen kan føre til design initialisering problemer.For å sikre design virker trygt, kan du:
- Legge til en 'attributt INIT "på signal <currentstate> (optimalisering er da gjøres uten risiko)
- Bruke attributtet 'signal_encoding bruker for å unngå onehot optimalisering
- Bruke attributtet 'safe_implementation ja til å tvinge XST å utføre en kontrollert (men mindre effektivt) optimalisering

Xst: 2734 - Bolig "use_dsp48" gjelder ikke for denne teknologien.

Xst: 737 - Found 4-bits sperren for signal <Byte_count>.
Xst: 2371 - HDL ADVISOR - Logic funksjoner henholdsvis driver data og gate aktivere inngangene av denne sperren har felles treff.Denne situasjonen vil kunne føre til setup / holde brudd, og som et resultat av simulering problemer.Denne situasjonen kan komme fra en ufullstendig sak statement (alle velgeren verdier er ikke dekket).Du bør nøye vurdere om det var din intensjon å beskrive en slik låsen.

Xst: 737 - Found 3-bit sperren for signal <nextstate>.
Xst: 2371 - HDL ADVISOR - Logic funksjoner henholdsvis driver data og gate aktivere inngangene av denne sperren har felles treff.Denne situasjonen vil kunne føre til setup / holde brudd, og som et resultat av simulering problemer.Denne situasjonen kan komme fra en ufullstendig sak statement (alle velgeren verdier er ikke dekket).Du bør nøye vurdere om det var din intensjon å beskrive en slik låsen.

Xst: 2169 - HDL ADVISOR - Noen klokke signaler var ikke automatisk bufret ved XST med BUFG / BUFR ressurser.Vennligst bruk buffer_type begrensningen for å sette inn disse buffere til klokken signaler for å unngå skjeve problemer.

 
I FPGA bør du bruke flip-flops i stedet for låsene, dvs. bruk posedge eller negedge i alle synkrone prosessen.Bruk av låsene i FPGA design kan betraktes som dårlig design praksis.

 
På grunn av måten du koden, du er inferring låsene stedet flip flops.I flere if-else-blokker, du ikke helt angir staten hvert signal.

For eksempel i kodebit:

Code:if (! arst_n)

begynne

Byte_count <= 4'd0;

slutt

ellers

nextstate <= shift_reg;

slutt
 

Welcome to EDABoard.com

Sponsor

Back
Top