Help needed ..

S

sharada.144

Guest
Salut, quelqu'un peut-il s'il vous plaît donnez-moi un code VHDL pour convertir 8 bits données parallèles en données série avec son banc d'essai, si tu l'as?S'il vous plaît.Son urgence.

Merci,
Sharada
Dernière édition par sharada.144 le 29 Avr 2008 11:33, édité 1 fois au total

 
Plus wprowadza odświeżoną ofertę Plush Mix, a w niej: Internet bez konsekwencji oraz Plush rozmowy i SMSy bez limitu do wszystkich, a nie tylko w siec ...

Read more...
 
Voici le code, cela ne fonctionnera que lorsque l'entrée est changé en même temps que le posedge d'horloge.

//------------- RTL --------------------//

module P2S (clk, rst, EN, DIN, DOUT);

entrée CLK, RST, en;
input [7:0] din;
sortie DOUT;
reg DOUT;

fil pos_edge_detect;
reg drapeau, enable;
reg [7:0] temp;

assigner pos_edge_detect = (fr & & ~ temp);

always @ (CLK posedge ou la TVD negedge)
if (! TVD)
temp <= 8'b0;
else if (fr)
temp <= din;
else if (activer)
temp <= (1'b0, temp [7:1]);
autre
temp <= temp;

always @ (CLK posedge ou la TVD negedge)
if (! TVD)
flag <= 1'b0;
autre
flag <= fr;

always @ (CLK posedge ou la TVD negedge)
if (! TVD)
Activer <= 1'b0;
else if (pos_edge_detect & & temp! = 8'b0)
Activer <= 1'b1;
else if (temp == 8'b0)
Activer <= 1'b0;

always @ (CLK posedge ou la TVD negedge)
if (! TVD)
DOUT <= 1'b0;
else if (activer)
DOUT <= temp [0];

endmodule/ / --------------- --------------- Banc d'essai / /`include". / rtl.v "
module tb_p2s ();

reg clk, rst, en;
reg [7:0] din;
fil DOUT;

P2S p1 (. CLK (CLK),
TVD. (RST),
. DIN (DIN),
. fr (en),
. DOUT (DOUT)
);

initiale
commencer
$ recordfile ( "p2s.trn");
$ recordvars ();
fin

initiale
commencer
clk = 1'b1;
rst = 1'b0;
fr = 1'b0;
# 25 rst = 1'b1;
# 25 en = 1'b1;
din = 8'h45;
# 10 en = 1'b0;
# 100 $ finish ();
fin

toujours
clk = # 5 ~ CLK;

endmodule

 
Merci beaucoup pour l'aide.Mais je veux le code VHDL.Can U s'il vous plaît aidez-moi.

 
Je n'ai pas tout simulateur VHDL avec moi, donc, j'ai fait de mon mieux pour arriver à RTL VHDL.laissez-moi savoir si il compile alrite.

- RTL --

library ieee;
utilisation ieee.std_logic_1164.all;RTL entité est
port (clk, en, rst: in std_logic;
DIN: in std_logic_vector (7 downto 0);
DOUT: out std_logic));l'architecture a de RTL
signal de temp: std_logic_vector (7 downto 0);
signal pos_edge_detect: std_logic;
Indicateur de signal, permettent: std_logic;

commencer
process (clk, rst)
commencer
if (RST = '0 ') then
temp <= (others => '0 ');
elsif (CLK = '1 'et clk'event) puis
if (en = '1 ') then
temp <= din;
elsif (enable = '1 ') then
temp <= '0 '& temp (7 downto 1);
autre
temp <= temp;
End If;
End If;
Terminer le processus;

process (clk, rst)
commencer
if (RST = '0 ') then
flag <= '0 ';
elsif (CLK = '1 'et clk'event) puis
flag <= fr;
End If;
Terminer le processus;

process (clk, rst)
commencer
if (RST = '0 ') then
Activer <= '0 ';
elsif (CLK = '1 'et clk'event) puis
if (pos_edge_detect et temp / = "00000000") then
Activer <= '1 ';
elsif (temp = "00000000") then
Activer <= '0 ';
End If;
End If;
Terminer le processus;

process (clk, rst)
commencer
if (RST = '0 ') then
DOUT <= '0 ';
elsif (CLK = '1 'et clk'event) puis
if (enable = '1 ') then
DOUT <= temp (0);
End If;
End If;
Terminer le processus;

fin de l'architecture d'un;Ajouté après 17 minutes:- Banc d'essai
- Vous ne savez pas si cela sera possible ou non

library ieee;
utilisation ieee.std_logic_1164.all;
utilisation IEEE.STD_LOGIC_ARITH.ALL;

tb_rtl entité est
fin d'une entité;

tb architecture de tb_rtl est
composante RTL
port (clk, en, rst: in std_logic;
DIN: in std_logic_vector (7 downto 0);
DOUT: out std_logic
);
end component;
commencer
u_rtl: carte port RTL (clk => clk,
EN => FR,
rst => rst,
din => DIN,
DOUT => DOUT);

processus
commencer
clk <= '1 ';
Attendez 5 ns;
clk <= '0 ';
Attendez 5 ns;
Terminer le processus;

processus
commencer
RST <= '1 ';
attendre 30 ns;
RST <= '0 ';
fr <= '1 ';
din <= "10101010";
attendre 10 ns;
fr <= '0 ';
Terminer le processus;
fin de l'architecture de la tuberculose;

 

Welcome to EDABoard.com

Sponsor

Back
Top