Jednoduché blikátko s hradlovým polem XILINX XC9536 v pouzdře PC44.
Vnitrní obsah hradlového pole je jednou napsán v jazyku ABEL a podruhé ve VHDL. Záleží na Vás, čemu dáte přednost.
Schéma zapojení je úplně jednoduché. Kromě pár základních součástek jako LED diody a odpory, ještě obsahuje časovač 555, který vyrábí impulsy pro XC9536.
Až celé blikátko postavíte ještě je potřeba do hradlového pole nahrát obsah, zdrojový kód je v ABELu nebo VHDL, který se nejprve přeloží například v programu
WebPack.
Přímo z tohoto programu můžeme blikátko naprogramovat. Pomoci PINu TDI, TDO, TCK a TMS (tak zvané rozhraní JTAG) naprogramujeme obsah obvodu XC9536.
Tyto čtyři vývody se nepoužívají k ničemu jinému než programováni obsahu součástku. Nelze je použít v aplikaci pro jiné účely než k samotnému programování hradlového pole.
Na naprogramování obvodu XILINX použijte
Downloader.
Stáhnout zdrojový kód pro vývojové prostředí WebPack, blikac_vhdl.zip.
Stáhnout zdrojový kód pro vývojové prostředí WebPack,
blikac_abel.zip.
Archív obsahuje už zkompilovaný výslední kód ve formátu jedec.
Archív obsahuje soubory:
blikac.jed – kompilovaný kód, který se nahraje do hradlového pole
blikac.npl – informace o projektu. Stačí na tento soubor dvakrát kliknout a načte se cely projekt
blikac.ucf – zde se nachází připojeni jednotlivých nazvu signálu na fyzické PINy součástky
blikac.vhd pro verzi ve VHDL jazyku
blikac.abl pro verzi v ABELu
Title 'blikatko'
Declarations
clk PIN 5; // GCK1 on XC9536 CPLD
!q0 pin 38 istype 'reg'; // LED
!q1 pin 37 istype 'reg'; // LED
!q2 pin 36 istype 'reg'; // LED
!q3 pin 35 istype 'reg'; // LED
!q4 pin 34 istype 'reg'; // LED
!q5 pin 33 istype 'reg'; // LED
!q6 pin 29 istype 'reg'; // LED
!q7 pin 28 istype 'reg'; // LED
q = [q7..q0]; // LED Bus Declaration
Equations
//Johnson Shift Counter description
q.clk = clk;
q0 := !q7; q1 := q0; q2 := q1; q3 := q2;
q4 := q3; q5 := q4; q6 := q5; q7 := q6;
end jcounter
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
-- Uncomment the following lines to use the declarations that are
-- provided for instantiating Xilinx primitive components.
--library UNISIM;
--use UNISIM.VComponents.all;
entity blikac is
port (
clk:in STD_LOGIC;
Dout:buffer STD_LOGIC_VECTOR (7 downto 0)
);
end blikac;
architecture Behavioral of blikac is
begin
process (CLK)
begin
if CLK'event and CLK='1' then--CLK rising edge
Dout(7 downto 1) <= Dout(6 downto 0);--posuvny registr
Dout(0) <= not Dout(7);--Last bit inverted back into first bit
end if;
end process;
end Behavioral;
Komentáře
mam maly dotaz.
Bol by problem nahradit externy oscilator s 555, niecim takymto:
vnutri CPLD spravit jeden invertor, jeho vstup aj vystup hodit na IO piny a na ne pripojit krystal s kondikmi k zemi?
Takyto oscilator mi bezi na 7404, len ma zaujima ci by to v praxi bezalo aj na tom CPLD.
teoreticky proc ne ;). Tata moznost me take napadla ale, nezkousel jsem to, skuste a podelte se o vysledek...
super, pokud se podělíte o konkretni řešení a jakých parametrů jste dosahl (hmitočtu) určite to nekdo ocení...