Archives
Trending
Support
Login
clear text
XML
Django
JavaScript
MATLAB
C
C++
C#
Python
SQL
Shell
Bash
Markdown
YAML
JSON
HTML
CSS
PHP
Java
Ruby
Go
Rust
Swift
Kotlin
Arduino
TypeScript
Perl
Autohotkey
Lua
SQF
R
Scala
Haskell
Groovy
Dart
Clojure
VB.NET
Objective-C
PowerShell
Bash
CoffeeScript
Verilog
-- Code pour TP3 : VHDL Séquentiel, comptage du temps entity blinker is port(Clk100MHz, PB_0 : in bit; LED_0 : out bit); end blinker; architecture Behavioral of blinker is alias reset is PB_0; -- alias pour le signal de rinitialisation signal clk_out : bit := '0'; -- signal d'horloge aprs division -- Constante de division, ici pour une sortie 1Hz. constant clock_divisor : integer := 100000000; begin -- Diviseur de frquence : divise la frquence du signal Clk100MHz par clock_div. clock_divider : process(Clk100MHz, reset) variable c : integer range 0 to clock_divisor - 1 := 0; begin if reset = '1' then c := 0; clk_out <= '0'; elsif (Clk100MHz'event and Clk100MHz = '1') then if c < (clock_divisor - 1) / 2 then c := c + 1; clk_out <= '0'; elsif c = (clock_divisor - 1) then c := 0; clk_out <= '0'; else c := c + 1; clk_out <= '1'; end if; end if; end process; -- Sortie sur la LED LED_0 <= clk_out; end Behavioral; entity feux is port(clk, PB_0 : in bit; LED_3210, LED_7654 : out integer range 0 to 7); end feux; architecture rouge of feux is begin process(clk, PB_0) -- variables variable compteur : integer range 0 to 20; variable etat : integer range 0 to 3; begin if(PB_0 = '1') then compteur := 0; etat := 0; elsif(clk'event and clk='1') then case etat is when 0 => if (compteur < 8) then compteur := compteur + 1; else etat := 1; end if; when 1 => if (compteur < 10) then compteur := compteur + 1; else etat := 2; end if; when 2 => if (compteur < 18) then compteur := compteur + 1; else etat := 3; end if; when 3 => if (compteur < 20) then compteur := compteur + 1; else etat := 0; compteur := 0; end if; when others => etat := 0; compteur := 0; end case; end if; case etat is when 0 => LED_3210 <= 1; LED_7654 <= 4; when 1 => LED_3210 <= 2; LED_7654 <= 4; when 2 => LED_3210 <= 4; LED_7654 <= 1; when 3 => LED_3210 <= 4; LED_7654 <= 2; end case; end process; end rouge; entity feu_final is port(Clk100MHz, PB_0 : in bit; LED_3210, LED_7654 : out integer range 0 to 7); end feu_final; architecture Bhv of feu_final is component blinker is port(Clk100MHz, PB_0 : in bit; LED_0 : out bit); end component blinker; component feux is port(clk, PB_0 : in bit; LED_3210, LED_7654 : out integer range 0 to 7); end component feux; signal clock : bit; begin C1 : blinker port map(Clk100MHz, PB_0, clock); C2 : feux port map(clock, PB_0, LED_3210, LED_7654); end Bhv;
Mark as private (unlisted)
for 30 minutes
for 6 hours
for 1 day
for 1 week
for 1 month
for 1 year
everlasting (like CCCP)