Tag: system-verilog
SystemVerilog ist eine einheitliche hardware-design, Spezifikation und Verifikation Sprache basiert auf Erweiterungen Verilog.
1
Antworten
Habe ich ein UVM testbench für einen kleinen block in meinem chip. In diesem gibt es einen Agenten mit einem Treiber, der Festplatten-Daten auf einem virtuellen interface, die wie folgt aussieht: interface my_if (input bit clk); logic
2
Antworten
Sehen das vereinfachte Beispiel-code hier: process job[num_objs]; //assume also, arr_obj1s (array of type obj1) and //arr_obj2s (array of type obj2) are arrays of size //num_objs, and the objects define a run() function foreach (arr_obj1s[i]) begin fork automatic
2
Antworten
Die Antwort für das folgende Programm ist {6,7,8} aber ich verstehe nicht, warum, erläutern Sie bitte ein bit: module q (); typedef byte byteq[$]; initial begin byte ans[$]; ans = byteq'({>>byte{24'h060708}}); $display("A:expect '{6,7,8} get %p", ans); end
1
Antworten
Möchte ich prüfen, ob der aktuelle Wert der variable ist "1", dann den vorherigen Wert der variable sollte '0'. Ich bin mit $Vergangenheit im System Verilog Assertions. Hier bin ich die Kontrolle, wenn cal_frame_mode=1, dann ist der
1
Antworten
Binäre zusätzlich auf A und B - und-Ausgänge zusammen mit der richtigen carry-bit. Ich bin mir nicht sicher, wie Sie Sie implementieren das carry-bit A und B sind 4 bit Eingänge C 1-bit-Ausgabe, die verwendet wird für
3
Antworten
Ich bin derzeit mit modelsim 5.8 SE e. Es spielt keine Unterstützung für SystemVerilog. Ich brauche für die Verwendung von SystemVerilog für das design und die Validierung von meinem Projekt. Eine Idee, welche version von Modelsim unterstützt
2
Antworten
Ich möchte eine Uhr in meiner top-level-testbench, deren Periode gesteuert werden können, von der Prüfung aus. Was ich Tat, war, den Zeitraum festlegen, in dem uvm_config_db und bekommen es zurück in die testbench. Ich musste in einem
2
Antworten
Ich den code schreiben, berechnen perfektes Quadrat der Zahl, aber ich bin nicht immer die korrekte Ausgabe. Ich nehme input b - und regs a, d. Erstens, lege ich 1 im d, dann Platz es aus und
4
Antworten
Diese Frage ist nicht UVM spezifisch, aber das Beispiel, das ich arbeite, ist UVM Verwandte. Ich habe ein array von Agenten in meinem UVM Umwelt und die würde ich gerne zum starten einer Sequenz auf alle parallel.
2
Antworten
Gibt es eine Möglichkeit zu nennen $dumpvars, $dumpon $dumpoff aus dem Körper() für eine Sequenz ? Es ist möglich, von einer Modul-task. Muss ich Steuern $dumpon $dumpoff, so dass der dump nicht zu groß Eine alternative Möglichkeit
2
Antworten
Erstellt habe ich ein einfaches Modul, dass ich replizieren mehrere Male mit der Verilog-Anweisung generieren. Es scheint jedoch, dass die generate-Anweisung irgendwie Effekte variable Zuordnung in das Modul. Hier ist der code: module test(); timeunit 10ns; timeprecision
1
Antworten
In SystemVerilog, ist es möglich zu drucken, die das ganze Objekt mit Eigenschaften? (Hier weiß ich nicht, wie viele Variablen deklariert, die in meinem übergeordneten Klasse.) Narasimha wenn Ihr Fragen wurden beantwortet, es wäre wirklich gut zu
2
Antworten
Dies ist für SystemVerilog. Ich weiß, Sie können angeben, die GEWICHTE für die Werte oder Wertebereiche, in der Menge der Werte, die eine Zufallsvariable wählt aus, was aber, wenn Sie wollen eine schöne Gauß-Verteilung? Wie du schreibst,
2
Antworten
Ich habe Schwierigkeiten beim Verständnis der Nutzung von Unions und Strukturen im System Verilog. Ich weiß, dass Sie Speicher in unterschiedlicher Weise , aber , ich will in der Tiefe wissen über Strukturen und Gewerkschaften. Das LRM
1
Antworten
Ich habe ein array, ich möchte zu initialisieren, um alle 1. Um dies zu tun, ich habe folgende code-snippet: logic [15:0] memory [8]; always_ff @(posedge clk or posedge reset) begin if(reset) begin memory <= '{default:'1}; end else
2
Antworten
SystemVerilog eingeführt, einige sehr nützliche Konstrukte zur Verbesserung der coding style. Aber, wie einer meiner Kollegen sagt immer, "Sie sind nicht das schreiben von software, das Sie beschreiben die hardware." Mit dem im Verstand, welche Funktionen die
1
Antworten
Gibt es eine Möglichkeit, die in Verilog oder SystemVerilog einfügen generieren-Anweisung im case-Anweisung zu generieren, die alle möglichen input-Kombinationen. Zum Beispiel ein typischer Anwendungsfall wäre für eine N:1-mux. case(sel) generate for(i = 0; i < N; i
5
Antworten
Angenommen ich habe eine top-level Datei, die ich übergebe mein compiler hat: `include "my_defines.sv" `include "my_component.sv" Innen "my_component.sv" Datei, ich bin mit einigen bestimmt aus "my_defines.sv", so wie hier: my_variable = `CONSTANT_FROM_MY_DEFINES; Die Frage ist folgende: muss
2
Antworten
Gibt es irgendwelche features, die der SV, dass ein Programm sperren Angebote, die nicht dupliziert werden, die mit anderen Methoden? Weniger konkrete version dieser Frage ist: sollte ich mir die Mühe mit dem Programm-Bausteine für die Verifizierung?
2
Antworten
Ich versuche zu machen BCD-Zähler mit Verilog, die in Verbindung mit 7-segment-decoder.Nachdem ich synthetisieren es, der der Fehler aufgetreten ist wie diese: Multi-source in Unit <BCDcountmod> on signal <BCD0<3>>; this signal is connected to multiple drivers.>**Und mehr.....
2
Antworten
Den ich gestoßen bin in ein Beispiel für ein system verilog-code Unabhängigkeitserklärung der ein-und Ausgänge für eine module ohne Angabe Ihrer Art, e.g logic, wire... module mat_to_stream ( input [2:0] [2:0] [2:0] a,b, input newdata, input rst,
1
Antworten
Ich bin verilog-Benutzer-und nicht mit systemverilog. Habe ich gefunden, was verwendet modport und instantiieren zwischen Messobjekt und Oberfläche in systemverilog. Aber bin ich nicht ohne Grund verwenden die modport und wie zu verwenden und interconnect zwischen interface
2
Antworten
Ich würde gerne instanziieren ein array von systemverilog-interfaces, wo jedes array-element verwendet, einen anderen Eingang aus. Wenn alle Elemente mit demselben input, dann die Instanziierung ist einfach: x_if x_IF[`NUM_INTERFACES](clk); Hier, wenn `NUM_INTERFACES ist 2, dann die clk
1
Antworten
Einige Körper mir empfehlen, wie man die Instanziierung Namen ohne "." wie "genblk1.name" wenn ich generate for-Schleife für die Schaffung von mehr-Modul-Instanziierungen. Möchte ich Instanziierung Namen wie addr_1,addr_2 (addr mein Modul name) Sie sind gedacht, um zu
2
Antworten
Wenn ich ein Verilog-Modul " top " und ein verilog-Modul 'alternativen' wie kann ich instanzieren Unterkomponente in der Spitze? top: module top( input clk, input rst_n, input enable, input [9:0] data_rx_1, input [9:0] data_rx_2, output [9:0] data_tx_2
4
Antworten
Aus der testbench ich beschädigte einen bus ins design. Ich bin mit einer random-variable wählen Sie eine bit-Position (bit_sel) bit_sel = $urandom_range(0,MAX_LENGTH-1); Bus ist irgendwo tief in der RTL-mit einer Breite von MAXLENGTH. wire [MAX_LENGTH-1:0] BUS_TO_BE_FORCED; In
7
Antworten
SystemVerilog Hinzugefügt-Pakete zu bieten namespaces für gemeinsame code-Teile (Funktionen, Typen, Konstanten, etc.). Aber da die Pakete nicht instanziiert werden, Sie können nicht parametrisiert werden, so dass der Umgang mit parametrisierten Mitglieder ist problematisch. In der Praxis ich
2
Antworten
Anstatt module ... ( .. ) ; #15 endmodule Möchte ich verwenden module ... ( ... ) ; //GateDelay is a const, like in c language const int GateDelay = 15 ; # GateDelay endmodule Oder gleiche
1
Antworten
Ich habe zwei arrays verpackt Signale und ich brauche zum erstellen einer Eigenschaft und der entsprechende Behauptung für diese Eigenschaft, der beweist, dass die beiden arrays identisch sind, unter bestimmten Bedingungen. Ich bin formal verifizieren und das
5
Antworten
Was ist der Unterschied zwischen den folgenden zwei Beispielen mit Bezug auf die simulation? A) reg a; initial a = 1'b0; und B) reg a = 1'b0; Ist es anders für Logik-Variablen? Sie haben tagged dies sowohl
2
Antworten
Ich bin clock-gating einige Riegel und Logik in der Konstruktion. Ich habe nicht viel Erfahrung in der Synthese und place & route. Was ist die richtige Art und Weise zu implementieren, clock-gating bei RTL? Beispiel1: always_comb begin
4
Antworten
Ist der folgende code wird unterstützt, in SystemVerilog? int cnt = 0; wait( cnt == (cnt+1) ) Konnte einem Punkt gibt mir der Abschnitt in der LRM? Abschnitt 9.4 der IEEE 1800-2012 deckt wait-Anweisungen. InformationsquelleAutor user3510047 |
1
Antworten
Jemand wissen, warum dieser case-Anweisung funktioniert nicht: int width; width = 8; case (width === 16) 1'b0: begin //correct code end 1'b1: begin //we end up here end endcase Bin ich mit dem VCS. Ich habe versucht
2
Antworten
Ich versuche zu schaffen, ein multi-Stufen-Komparator in verilog und ich kann nicht herausfinden, wie man increment-mehrere genvars in einer einzigen Schleife generieren. Ich versuche das folgende: genvar i,j; //Level 1 generate j=0; for (i=0;i<128;i=i+1) begin: level1Comp assign
6
Antworten
Ich versuche zu generieren, die zufällig einzelne bits, und das ist einfach, solange Sie möchten, eine normale Randomisierung: wire R; assign R = $random % 2; Was ich Suche, ist eine Art der gewichteten Wahrscheinlichkeit wie: wire
2
Antworten
module DoorControl( clk, data, open,addressOftheMemory, outp ); localparam Size_ofTheWord = 32; input open; input [16:0] addressOftheMemory; input [Size_ofTheWord-1:0] data; input clk ; output reg outp; reg [WordSize-1: 0] Memory [65535: 0]; always @ ( open ) //open
2
Antworten
Kann ich nicht kompilieren dieses Codes: function integer[$] get_register_name; integer ret[$]; ret.push_back(1); ret.push_back(2); return ret; endfunction Ist es möglich, um wieder eine Warteschlange von einer Funktion? InformationsquelleAutor e19293001 | 2012-12-20
3
Antworten
Ich würde gerne einen parameter basierend auf einem parameter, die eingestellt ist, wenn das Modul instanziiert. Ich habe die folgende. module foo #(WORDS = 8); parameter P00 = 33; logic [7:0] tmp; generate case (WORDS) 4: begin
5
Antworten
module binarytogray #( parameter PTR=2 )( input logic [PTR:0] binary_value, output logic [PTR:0] gray_value ); genvar i; generate for(i=0;i<PTR;i=i+1) begin:for_loop assign gray_value[i]=binary_value[i]^binary_value[i+1]; end endgenerate assign gray_value[PTR]=binary_value[PTR]; endmodule Diese Binär-zu-Grau-Konvertierung code ist ein Beispiel aus einem Buch. Kann
2
Antworten
Ich versuche, eine Schnittstelle zu erstellen, die ein array mit einem einfacheren interface. In VHDL, ich könnte einfach definieren zwei Arten, ein Rekord und ein array von Datensätzen. Aber wie dies zu tun in SystemVerilog? Hier ist,
1
Antworten
Ich definiert eine Schnittstelle im system-verilog und verwenden Sie bind-Anweisung zu binden, interne RTL-Signale. Ich möchte in der Lage sein zu zwingen, interne RTL-Signale über die Schnittstelle. Aber dadurch verursacht wird, dass die RTL-signal 'x', wenn ich
6
Antworten
Ich verstehe, dass Sie können erklären, eine Zeichenfolge in ein Verilog-Prüfstand wie folgt: reg [8*14:1] string_value; initial string_value = "Hello, World!"; Dann kann ich Dinge tun, die mit dieser Zeichenfolge, wie die Nutzung $display in einem Prüfstand,
2
Antworten
Schrieb ich einen code für die Verkettung wie folgt: module p2; int n[1:2][1:3] = {2{{3{1}}}}; initial begin $display("val:%d",n[2][1]); end endmodule Es zeigt Fehler. Bitte erklären? Was für Fehler? Was denkst du n[1:2][1:3] = {2{{3{1}}}}; bedeutet? Ich meinte,
1
Antworten
Ich habe eine Hierarchie von Modulen, wo ich bin versuchen zu tun, ein force um unterschiedliche Wert bei unterschiedlichen Modul-Schnittstellen. Ich arbeite an einer Komponente, deren Aufgabe es ist, zu injizieren Transaktion zu einem Modul in der
3
Antworten
Wie die form der Variablen-name mit definiert im system verilog, eigentlich brauche ich zum konfigurieren meiner Registern (rund 100). zu tun, dass ich zu fest die 100 Aussage. gibt es irgendeine Möglichkeit, eine variable mit define(anyother Weg)?
1
Antworten
Ich bin nur zu lernen, HDL und ich bin daran interessiert, wie eine for-Schleife implementiert in System Verilog. Mit dem folgenden code... always_ff(posedge clk) begin for(int i = 0; i < 32; i++) s[i] = a[i] +
2
Antworten
Habe ich eine einfache fifo-code im System Verilog. Ich erhalte mehrere vlog-2110 illegal reference to net Fehlermeldungen. Ich schaute auf die vorherigen stackoverflow-Richtlinien und nicht sehen, nichts falsch mit dem, was ich Tue. Bitte um Hilfe!!!! Gebe
3
Antworten
Was sind die Richtlinien für die Auswahl generieren, die Aussagen über `Makros definieren und Umgekehrt in Systemverilog? Zum Beispiel, wenn ich wollen bedingt instanziieren entweder module1 oder module2, es scheint, kann ich entweder tun, `ifdef COND1 module1
4
Antworten
In ModelSim, der folgende code funktioniert Prima: string r; string s; //...assign some string to s... integer i; r = ""; for (i=s.len()-1; i>=0; i=i-1) begin if (s[i] != "\n") begin r = {s[i], r}; end end
1
Antworten
Wollte ich mit floating point-zahlen im System Verilog mit der real Daten geben. Ich habe versucht den folgenden code, aber es scheint nicht zu funktionieren. Ich bin immer 2.000000 wo ich erwarten 2.500000. Modul: module real_check(input [31:0]a,