Forum: FPGA, VHDL & Co. FPGA-Register-Manipulation mit ChipScope


von Hallbergmoser (Gast)


Lesenswert?

Ist es möglich, in einem Xilinx FPGA design irgendwelche Register oder 
BRAMS so zu definieren, daß man sie per ChipsScope beschreiben kann?

Ich müsste während der Chipscope-Messung einige Parameter ändern sowie 
einige FSMs gezielt starten.

Ich würde gerne ein Register haben, das ich von Aussen einfach mit 1 
oder 0 beschreiben kann, sodaß ich im Design das REgister abfragen und 
darauf reagieren kann.

Geht sowas?

von D. I. (Gast)


Lesenswert?

Das geht m. W. nicht.

Aber du könntest ja z.B. (wenn vorhanden) einen Push-Button für solche 
Zwecke hernehmen (Taste gedrückt = FSM-Start)

von Hans (Gast)


Lesenswert?

Kann man nicht so einen JTAG-Core instanziieren, mit dem man RAM-Zellen 
modifizieren kann?

Ich meine, beim Altera Wizzard mal sowas gesehen zu haben, bin aber 
nicht sicher.

Eigentlich muss das prinzipiell gehen, weil die Analyzer (Signaltap und 
Chipscope) ja auch Startbefehle an "ihre" Hardware senden müssen.

Wer weisß da was genaues?

von Christian R. (supachris)


Lesenswert?

Naja, es gibt schon so ein BSCAN Element, mit dem man interne Signale 
über JTAG beeinflussen kann. Allerdings ist das durch den LogicAnalyzer 
dann belegt. Ich hab sowas auch mal gesucht, und keine Möglichkeit 
gefunden.

von Jürgen (Gast)


Lesenswert?

Hallbergmoser schrieb:
> Ist es möglich, in einem Xilinx FPGA design irgendwelche Register oder
> BRAMS so zu definieren, daß man sie per ChipsScope beschreiben kann?
>
> Ich müsste während der Chipscope-Messung einige Parameter ändern sowie
> einige FSMs gezielt starten.
>
> Ich würde gerne ein Register haben, das ich von Aussen einfach mit 1
> oder 0 beschreiben kann, sodaß ich im Design das REgister abfragen und
> darauf reagieren kann.
>
> Geht sowas?

Der ChipScope VIO Core ist dein Freund. Das ist eine GPIO Komponente mit 
bis zu 256 synchronen oder asynchronen Inputs/Outputs die du über die 
ChipScope GUI oder per JTAG ansteuern kannst.

von Hallbergmoser (Gast)


Lesenswert?

Ui, da schau ich mal.

von Hallbergmoser (Gast)


Lesenswert?

Ich habe nun einen VIO-Core drin und auch einen ICON instanziiert, an 
dem der 36 pin-Breite Control bus hängt.

nun kommt:

ERROR:PhysDesignRules:1683 - Unsupported programming for BSCAN block and
   JTAG_CHAIN attribute value 1. The BSCAN component
   your_instance_name/U0/U_ICON/I_YES_BSCAN.U_BS/I_V4.U_BS has placement 
which
   requires the JTAG_CHAIN attribute to be set to the value 2. The 
JTAG_CHAIN
   attribute must be changed or the programming for the BSCAN block must 
be
   moved to a location corresponding to the JTAG_CHAIN attribute 
setting.
ERROR:Pack:1642 - Errors in physical DRC.

Was ist die Ursache?

Ist der Grund gfs der, dass ich noch einen ICON/ILA drin habe, den ich 
mit einem CDC initiiere?

Was ist zu tun?

von Duke Scarring (Gast)


Lesenswert?

Hallbergmoser schrieb:
> Ist der Grund gfs der, dass ich noch einen ICON/ILA drin habe, den ich
> mit einem CDC initiiere?

Richtig. Die Hilfe ist aber auch schon angegeben:
1
requires the JTAG_CHAIN attribute to be set to the value 2

Bei Deinem Chip sind m.E. bis zu 4 BSCAN-Instanzen möglich. Du mußt sie 
nur mit einer Nummer (=JTAG_CHAIN attribute) auseinanderhalten.

Duke

von Hallbergmoser (Gast)


Lesenswert?

Wie mache ich das real? Wo muss man das einstellen?

von Duke Scarring (Gast)


Lesenswert?

Such mal im "Libraries Guide for HDL Designs" nach BSCAN. Dort solltest 
Du fündig werden.

Duke

von Hallbergmoser (Gast)


Lesenswert?

Ich habe jetzt im CoreGen den Eintrag für JTAg auf "User2" gestellt. 
Jetzt kollidiert es offenbar nicht mehr und synthetisiert/mapped etc...

von Hallbergmoser (Gast)


Lesenswert?

Durch ist es, aber ich habe noch keinen Erfolg.

Ich habe die Verdrahtung vorgenommen, wie im ChipsScope Manual 
angegeben, kann aber den zweiten ICON nicht sehen - egal,was ich mit 
ChipScope versuche. Ich sehe immer nur den ICON0/ILA0, den ich mit dem 
CDC erzeuge.

Das ist die Verdrahtung:
1
vio : xvio
2
  port map (
3
    CONTROL => VIO_CONTROL,
4
    CLK => my_clk,
5
    SYNC_IN => VIO_SYNC_IN);
6
7
icon : xicon
8
  port map (
9
    CONTROL0 => VIO_CONTROL);

Ich habe auch versucht, mit dem CDC (chips Scope core inserter) einen 
zweiten ICON zu erzeugen, geht aber nicht.

?

von Duke Scarring (Gast)


Lesenswert?

User2 ist nicht JTAG_CHAIN, oder?!

Duke

von Sym (Gast)


Lesenswert?

Bei Altera ist es so: Wenn du eine Soft-CPU verbaut hast, dann kannst du 
natürlich jede beliebige Speicherzelle, auf die die CPU Zugriff hat, 
manipulieren. Z.B. Variablen des angehaltenen Programms ändern usw..
Wie bei den Mikrocontrollern eben.

von Hallbergmoser (Gast)


Lesenswert?

Ich habe keine Soft-CPU drin. Was den "user2" angeht: Der mit dem CDC 
integrierte Core steht auf "user1". Wenn ich den CoreGen nutze, um den 
VIO zu konfigurieren finde ich nichts mit JTAG. Nur beim ICON kann ich 
user1...user4 einstellen.

von Duke Scarring (Gast)


Lesenswert?

Hallbergmoser schrieb:
> Nur beim ICON kann ich
> user1...user4 einstellen

Das ist richtig so. Du kannst bist zu vier ICONs ins System stecken. An 
die ICONs werden dann ILA oder VIO oder weiß der Geier was 
angeschlossen.
In dem Fall müßte die Einstellung mit User2 stimmen.
Darf man nur nicht verwechseln, weil es am BSCAN auch ein Signal Namens 
User2 gibt.

Duke

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.