VHDL starter vraag

Z

ZeleC

Guest
hallo daar
Hoe kan ik een grote vertraging als 1,10,15 sec
bijvoorbeeld als ik wil dat mijn productie te gaan hoog na 10 seconden van het binnenkomende signaal op mijn input??
moet ik doen teller module?
Need some gids en enkele codering bijvoorbeeld als posible
thx

 
moet u gebruik maken van de teller te deviding uw klok kern.De klok zal verdeeld worden aangewend om de klink van uw signaal

 
als u wilt dat de klok domein te veranderen, ik denk dat je moet worden gebruikt, een FIFO

 
Hoi,

Er zijn manieren om een signaal in de gedrags-code met behulp van vertraging van de 'na' gereserveerde woord.Ik denk dat je geïnteresseerd bent in het uitstellen van uw signaal in uw RTL, in dat geval heb je een teller.

Als u een 20MHz klok en je wilt een signaal vertraging van 10 seconden heb je een grote balie, uitvoerbaar maar groot ... een 28 bit teller of iets dergelijks.Als uw meester klok langzamer is dan dat, laten we zeggen 1KHz dan kleinere teller ...

Ik hoop dat het helpt
-maestor

 
Hi hienpv,

= 'gedragscode' code die u gebruikt in uw testbench, kan het zijn synthetiseerbare of niet en nadat duidelijk is dat niet.

RTL is de notatie die wij gebruiken voor synthetiseerbare code in het algemeen.

-maestor

 
De sleutelwoorden "na" wordt gebruikt in RTL simulatie alleen, en na de synthese worden verkregen, zal het worden afgebroken.
Als u wilt dat om vertraging bij het ontwerp te realiseren, zal gebruik maken teller goede manier en het zal gebruik maken van een register.hoe meer vertraging, tot de meer hoeft te worden gebruikt!

 
Ik zal gebruik maken van een 1 sec vertraging tegen te gaan en vermenigvuldig dat met hoeveel seconden ik wil de output moet worden uitgesteld.
het probleem dat im denken is dat ik om zo veel couters zoveel uitgangen die ik heb, klopt dat?
What do u think guys?

 
als u wilt dat de klok domein te veranderen, ik denk dat je moet gaan voor een FIFO

 
het hangt ervan af als je aan het doen bent synthetiseerbare code of niet

 
Geachte Zelc

de getoonde code die ik schreef aan digitale monostabiel gedrag uit te voeren.U kunt gebruik maken van uw input signaal om het te activeren en de output te gebruiken in plaats van het vertraagde signaal

Al Faouk

library IEEE;
gebruik IEEE.std_logic_1164.all;
gebruik IEEE.numeric_std.all;

Entiteit Done_Sim is
port (
Rst: in std_logic;
CLK: in std_logic;
Plaats: in std_logic;

Gedaan: out std_logic

);
einde Done_sim;

Sim architectuur van Done_Sim is
signaal counter: integer range 0-65535;
signaal Load_pulse: std_logic;

beginnen
single_pulse: proces (RST, Clk, Load)
variabele beslissen: std_logic_vector (1 Downto 0);
beginnen
als rst = '0 ', dan
besluiten: = "00";
anders
indien rising_edge (clk) then
kiezen (1): = beslissen (0);
beslissen (0): = belasting;
end if;
geval beslissen
wanneer "01" =>
load_pulse <= '1 ';
wanneer anderen =>
load_pulse <= '0 ';
end case;

end if;
einde proces;

One_Shot: proces (RST, Clk, Load_pulse)

beginnen
als Rst = '0 ', dan
counter <= 0;
done <= '0 ';
anders
indien rising_edge (clk) then
als load_pulse = '1 ', dan
counter <= 65535;
done <= '1 ';
anders
Als teller = 0 dan
done <= '0 ';
anders
counter <= counter - 1;
done <= '1 ';
end if;
end if;
end if;end if;
einde proces;

end;

 
Als uw ontwerp heeft een core-processor, een beter gebruik van software om het te doen.

 
Een slimme en efficiënte manier de logica die ik heb gezien om de klok van delen door een enorme hoeveelheid te gebruiken is LFSR.U kunt zoeken Xilinx app voor dit onderwerp.

groeten

 

Welcome to EDABoard.com

Sponsor

Back
Top