C
Crouch
Guest
Jeg er at designe en seriel port controllor, så jeg vil bevare nogle perifere registre.
Jeg spekulerer på, hvordan man kan udtrykke perifere registre i HDL.
Hovedsagelig controllor er opdelt i tre moduler: CPU-grænseflade, modtageren og senderen
registre kan inddeles i tre typer af, hvordan de er skrevet.
1: skrevet kun ved cpu
2: kun skrevet af receiver / transmitter
3: skrevet af både CPU og receiver / transmitter
for 1. type, kan jeg bruge en verilog'reg "i CPU interface modul til at indse det
og den tilsvarende måde for type 2
men for type 3, tror jeg, at jeg er nødt til at skrive en lille abitrator modul som nedenfor (reset logik er udeladt)
reg [7:0] register3;
modul reg_abit (
input CLK,
input [7:0] data_cpu,
input [7:0] data_tran,
input wr_cpu,
input wr_tran,
)
altid @ (posedge clk)
if (~ wr_cpu)
register3 <= data_cpu;
else if (~ wr_tran)
register3 <= data_tran;
anden
register3 <= register3;
endmodule
Jeg kender ikke det er en god stil eller ej, skal du give mig nogle råd, tak.
PS: Jeg vil vide, hvordan CPU register filen er orgnised også.
Jeg spekulerer på, hvordan man kan udtrykke perifere registre i HDL.
Hovedsagelig controllor er opdelt i tre moduler: CPU-grænseflade, modtageren og senderen
registre kan inddeles i tre typer af, hvordan de er skrevet.
1: skrevet kun ved cpu
2: kun skrevet af receiver / transmitter
3: skrevet af både CPU og receiver / transmitter
for 1. type, kan jeg bruge en verilog'reg "i CPU interface modul til at indse det
og den tilsvarende måde for type 2
men for type 3, tror jeg, at jeg er nødt til at skrive en lille abitrator modul som nedenfor (reset logik er udeladt)
reg [7:0] register3;
modul reg_abit (
input CLK,
input [7:0] data_cpu,
input [7:0] data_tran,
input wr_cpu,
input wr_tran,
)
altid @ (posedge clk)
if (~ wr_cpu)
register3 <= data_cpu;
else if (~ wr_tran)
register3 <= data_tran;
anden
register3 <= register3;
endmodule
Jeg kender ikke det er en god stil eller ej, skal du give mig nogle råd, tak.
PS: Jeg vil vide, hvordan CPU register filen er orgnised også.