verilog fout, bereik moet worden begrensd door constante exprsns

V

venky16

Guest
dna-module (string, y);
output [8 * 7:0] string;
output [8 * 1:0] y;
integer i, j;
reg [8 * 7:0] string, y;

eerste beginnen
string = "ATGCCTA";

for (i = 0; i <49; I = I 7)
beginnen
j = 7;
for (j = 7; j <55; j = j 7)
beginnen
geval (string [j: i])
"A": begin y [j: i] = "T"; einde
"T": begin y [j: i] = "A"; einde
"G": begin y [j: i] = "C"; einde
"C": begin y [j: i] = "G"; einde
endcase
eindigen
eindigeneindigen
endmodule

Ik krijg een foutmelding zegt Range moet worden begrensd door constante expressions.Could je me helpen met een betere manier van de uitvoering van deze lus, zodat het doorloopt voor 56-bits

 
Wat u wilt bereiken is niet duidelijk uit ur code!
Het probleem is hier het geval (string [j: i]) verklaring.waar J en ik zijn variabelen.

 
Eigenlijk moet ik het een complementaire sequentie te voeren voor een bepaald DNA.
Stel dat ik geven "ATGCATT" als mijn input, ik krijg een uitgang als "TACGTAA".

Dit komt omdat steeds "A" vervangt "T" en vice vera en "G" vervangt "C" en vice versa.

Het belangrijkste is dat ik hier moet de output in de vorm van tekens krijgen en niet met behulp van de ASCII-waarden op elk moment in mijn programma.

Ik denk dat in VHDL is het gemakkelijker, maar ik moet het in verilog.I weten verilog is niet goed voor karakters.Dus gegeven een 7 tekenreeks ik moet haar aanvulling sequentie.

Toen ik neem string [7:0] in het eerste geval loop, dan zal ik kijken of het is "A" of "T" of "G" of "C" en vervolgens de uitgang y [7:0] als haar aan te vullen.Dus ik moet dit doen tot string [55:49] en y [55:49].Ik kan dit doen met 7 case-statements als mijn eerste, maar mijn doel is om de looping structuur verminderen met behulp van een for-lus.
hope u got it.Please help wanneer u kunt.

 
output [8 * 7:0] string;
output [8 * 1:0] y;

reg [8 * 7:0] string, y;

u have y aangegeven als output -> [8 * 1:0] en reg -> [8 * 7:0], zijn in tegenspraak, probeer de uitgang verklaring te wijzigen.

 
Ik kan niet zien wat je bedoeld om de output tekstnavigatie veranderen.De fout is Range moet worden begrensd met een constante reeks.Het is te doen met

# ** Error: dna.v (13): Bereik moet worden begrensd door constante expressies
# ** Error: dna.v (14): Bereik moet worden begrensd door constante expressies
# ** Error: dna.v (15): Bereik moet worden begrensd door constante expressies
# ** Error: dna.v (16): Bereik moet worden begrensd door constante expressies
# ** Error: dna.v (17): Bereik moet worden begrensd door constante expressies

 
in uw ontwerp niet nodig om j = 7; verklaring, omdat het al in de gegeven for-lus verklaring.Toegevoegd na 5 minuten:Wat is de input voor dit verilog code, kan u de ingangen in de module declaration.why je niet noemt de inputs.Are u op zoek naar de uitgang slechts?

 

Welcome to EDABoard.com

Sponsor

Back
Top