ich einen bidirektionalen Datenbus verwenden möchten, in den Code der controller.HereWie bidirektionale Stift (inout) in einer Verilog Aufgabe behandeln
module controller (clk, data_out);
// Port Declaration
input clk;
inout [7:0] data_out;
reg [7:0] a;
reg [7:0] b;
wire [7:0] c;
// data should write to data_out (data_out act as output)
task write;
input c;
begin
assign data_out = a;
data_out <= c;
end
endtask
// data should read from data_out (data_out act as input)
task read;
output b;
begin
assign data_out = 8'bz;
b <= data_out;
end
endtask
endmodule
, wenn ich das kompilieren ich einen Fehler bin immer sagen
LHS in prozeduraler fortlaufender Zuweisung darf kein Netz sein: data_out.
es sagt, es ist ein Fehler in assign data_out = a;
und assign data_out = 8'bz;
Ich weiß, in immer oder Anfangsblock durchgeführt werden, sondern in einer Aufgabe zuweisen, sollte diese Blöcke verwendet nutzlos/geben eroor
Dann, wie wir ändern können Richtungen des Busses in der Seite eine Aufgabe?
* kann nicht * sollte ersetzt werden mit *** sollte nicht ***. Eine prozedurale Zuweisung (Assign innerhalb von immer/initial) ist derzeit zulässig, obwohl sie als veraltet eingestuft ist. [IEEE1800-2012] (http://standards.ieee.org/getieee/1800/download/1800-2012.pdf) Anhang C.4.2 "Die prozeduralen Assign- und Deassign-Anweisungen können eine Quelle von Designfehlern sein und können ein Hindernis bei der Tool-Implementierung. Die prozeduralen Assign- und Deassign-Anweisungen bieten keine Möglichkeit, die nicht mit einer anderen Methode erledigt werden kann, die diese Probleme vermeidet. Daher befinden sich die Anweisungen processing assign und deassign in einer deprecation-Liste. " – Greg
@Greg Danke, fertig :) – Laleh