VHDL-UART-FPGA

E

Elexstudent

Guest
Labas,
can anyone prašome pateikti kodas imtuvas UART?
Aš įgyvendino siùstuvas, bet Im iškyla problemų imtuvo dalis ...
Prašau ...

 
tai kodas UART gauti bet verilog nuo Xilinx app dėmesį

Kodas:

modulis rcvr (dout, data_ready, framing_error, parity_error, rxd, clk16x, RST, rdn);įvesties rxd;

įvesties clk16x;

įvesties RST;

įvesties rdn;

išvesties [7:0] dout;

produkcijos data_ready;

produkcijos framing_error;

produkcijos parity_error;reg rxd1;

reg rxd2;

reg clk1x_enable;

reg [3:0] clkdiv;

reg [7:0] RSR;

reg [7:0] rbr;

reg [3:0] no_bits_rcvd;reg data_ready;reg pariteto;

reg parity_error;

reg framing_error;viela clk1x;priskirti dout =! rdn?
rbr: 8'bz;visada @ (posedge clk16x arba posedge RST)

pradėti

jei (RST)

pradėti

rxd1 <= 1'b1;

rxd2 <= 1'b1;

pabaiga

kitas

pradėti

rxd1 <= rxd;

rxd2 <= rxd1;

pabaiga

pabaigavisada @ (posedge clk16x arba posedge RST)

pradėti

jei (RST)

clk1x_enable <= 1'b0;

else if (! rxd1 & & rxd2)

clk1x_enable <= 1'b1;

else if (no_bits_rcvd == 4'b1100)

clk1x_enable <= 1'b0;

pabaigavisada @ (posedge clk16x arba posedge RST arba negedge rdn)

pradėti

jei (RST)

data_ready = 1'b0;

else if (! rdn)

data_ready = 1'b0;

kitas

jei (no_bits_rcvd == 4'b1011)

data_ready = 1'b1;

pabaigavisada @ (posedge clk16x arba posedge RST)

pradėti

jei (RST)

clkdiv = 4'b0000;

else if (clk1x_enable)

clkdiv = clkdiv 1;

pabaigapriskirti clk1x = clkdiv [3];visada @ (posedge clk1x arba posedge RST)

jei (RST)

pradėti

RSR <= 8'b0;

rbr <= 8'b0;

pariteto <= 1'b1;

framing_error = 1'b0;

parity_error = 1'b0;

pabaiga

kitas

pradėti

jei (no_bits_rcvd> = 4'b0001 & & no_bits_rcvd <= 4'b1001)

pradėti

RSR [0] <= rxd2;

RSR [7:1] <= RSR [6:0];

pariteto <= pariteto ^ RSR [7];

pabaiga

else if (no_bits_rcvd == 4'b1010)

pradėti

rbr <= RSR;

pabaiga

else if (! paritetas)

parity_error = 1'b1;

else if ((no_bits_rcvd == 4'b1011) & & (rxd2! = 1'b1))

framing_error = 1'b1;

kitas

framing_error = 1'b0;

pabaigavisada @ (posedge clk1x arba posedge RST arba negedge clk1x_enable)

jei (RST)

no_bits_rcvd = 4'b0000;

kitas

if (! clk1x_enable)

no_bits_rcvd = 4'b0000;

kitas

no_bits_rcvd = no_bits_rcvd 1;endmodule
 

Welcome to EDABoard.com

Sponsor

Back
Top