тезгяха FPGA

S

sanjana

Guest
Здравейте хора
Аз съм начинаещ в VHDL кодиране.
Аз реализира 4 битов двоичен брояч използване VHDL и изтеглени едни и същи във
FPGA.Продължителността на програмата не работи правилно в брой FPGA.The е скачане
произволно б / Не всяка стойност от 0 до 15.
Кодирането се извършва в поведенчески модел и на FPGA използва, е на Xilinx.
Надявам се някой може да ми помогне

 
Похвалете се с вашия код.Моля, използвайте "код" бутон, така си изходния код изглежда правилно отстъпи.

 
Кодът е доста прост:

Код:

библиотека IEEE;

използване ieee.std_logic_1164.all;

използване ieee.std_logic_arith.all;

използване ieee.std_logic_unsigned.all;предприятието брояч е

порт (txclk, grst: в std_logic;

cnt_out: std_logic_vector изложени (7 downto 0));

края противодействие;

архитектура противодействие на борбата е

CNT сигнал: std_logic_vector (7 downto 0);

започва

Брой: процес (grst, txclk)

започва

ако grst = "1" и след това

CNT <= "00000000";

ELSIF rising_edge (txclk), тогава

CNT <= CNT "00000001";

крайна сметка, ако;

края на процеса;

cnt_out <= CNT;

края противодействие;
 
на първо място U съм нужда 8 бита за брой сигнал .. я поправят и след това да видите:)Добавено след 1 минути:библиотека IEEE;
използване ieee.std_logic_1164.all;
използване ieee.std_logic_arith.all;
използване ieee.std_logic_unsigned.all;

предприятието брояч е
порт (txclk, grst: в std_logic;
cnt_out: std_logic_vector вън (3 downto 0));
края противодействие;
архитектура противодействие на борбата е
CNT сигнал: std_logic_vector (3 downto 0);
започва
Брой: процес (grst, txclk)
започва
ако grst = "1" и след това
CNT <= "00000000";
ELSIF rising_edge (txclk), тогава
CNT <= CNT "00000001";
крайна сметка, ако;
края на процеса;
cnt_out <= CNT;
края противодействие;

 
Проверих, че също както аз имам предвид в следващия.

 
Ур codingstyle е много лошо ...пробвайте това ... и аз също съм waitingfor това, което е Rong в Ур код .. най-вероятно е rising_edge U използване функция ... изпрати млн. евро O / P код последователност ...

предприятието брояч е
порт (txclk, grst: в std_logic;
cnt_out: std_logic_vector вън (3 downto 0));
края противодействие;
архитектура противодействие на борбата е
CNT сигнал: std_logic_vector (3 downto 0);
започва
Брой: процес (grst, txclk)
започва
ако grst = "1" и след това
CNT <= "00000000";
ELSIF (txclk = "1" и txclk'venet), тогава
CNT <= CNT "0001";
крайна сметка, ако;
края на процеса;
cnt_out <= CNT;
края противодействие;
няма начин този код имам навик работа ..Добавено след 1 минути:plz коригира CNT <= "00000000" на CNT <= "0000"

 
Опитах се, че използването на ", ако информацията" и "изчакайте, докато" отчет също.
Възможно ли / някой да ми изпрати някои код за брояч, който работи в FPGA.

 
този код ще работи ... чака се използват като съм те R не synthesizable ..

 
Уверете се, че Ур часовник е чиста!Може да се използва прекъсвач за генериране на часовник
В този случай трябва първо да debounce ключа!

 
Аз съм с един прекъсвач като часовник на FPGA, но аз не знам как да го debounce преди да използвате.
Възможно ли ми казали как да го направя.

 
U може да м, Оке малко отделни ciruitry debouncin на малък breadboard и след това connectit на една от схеми РРОА .....

 
За съжаление аз не разбирам.Има ли някакъв друг начин да се създаде един последователен работа съединение в FPGA.Има ли други wasy даде часовника, за да FPGA.
Аз съм в недоумение как да направи пореден работа съединение в FPGA.
Възможно ли / някой да ми помогне

 
Ако е възможно и само за целите на илюстрацията бихте могли да направите един часовник цикъл (555 часа) и го адаптира към честота от 1 Hz.Или може да обмисли възможността за използване сигнал генератор (от училището лабораторията си може би) и я свързва с часовник болт вместо ключ, това трябва да ви дам един чист сигнал часовник с остри ръбове, за да предизвика вашата програма.Вашата програма изглежда работи добре и без големи проблеми, въпреки че е беден кодиране (което може да се прости за начинаещи като теб)Чакащи да чуя от вашите резултати и да се надяваме нещата ще се изработи и сега..
[/b]

Салам.

[/ B]

 
Вашият последователно противодействие вероятно работи добре, но тя ще се появи за грешка при броене (или брой много бързо), ако го часовник с подскачам бутон.

Ето един прост четири бутона debouncer в Verilog.Това не е VHDL, но лесни за разбиране.Тя изисква един часовник, но предполагам си FPGA борда има часовник осцилатор.
http://www.edaboard.com/viewtopic.php?p=492226 # 492226

Използвате ли едно търговско развитие FPGA борда?Ако ни кажеш какъв тип борда и да е, ние може би предлага и други предложения.

 
Здравейте sanjana,
Всяка употреба кв. генератор вълна или да преминете debouncer се използва, ако Ур FPGA съвет съдържа часовник генератор.

отношение

 
Благодарим и на ф предложения.Мисля, че това ще работи.
Комплектът, който аз използвам е spartan2 XC2S100.It не е комерсиален.
Ако знаете нещо по въпроса относно това, моля да ме уведомите

 
тъй че използвате

използване ieee.std_logic_arith.all;
използване ieee.std_logic_unsigned.all;

библиотеки, тогава няма нужда да vrite 1 като вектор.

използват прости
CNT <= CNT 1;<img src="http://www.edaboard.com/images/smiles/icon_rolleyes.gif" alt="Подвижен очите" border="0" />също така, ако имате нужда от бавен брояч ...

използвайте позволи в него, и да направи пулса на всеки втори ...

<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Усмивка" border="0" />STH:

процес (CLK, div_cnt)
започва
ако (clk'event и CLK = "1"), тогава
ако (div_cnt (въведете YOR MSB номер) = "1"), тогава
div_cnt <= (другите => "0");
още
div_cnt <= div_cnt 1;
крайна сметка, ако;
крайна сметка, ако;
края на процеса;

ширината на div_cnt зависи от кварцов генератор, честотата ...така че за 16mhz трябва малко 24 на широк ...
за 32 MHz е 25 buts широк, и т.н. и т.н.,

така че за вас брояч

процес (CLK, div_cnt, ключ)
започва
ако (clk'event и CLK = "1"), тогава
ако (div_cnt (въведете стойност MSB) = "1"), тогава
ако (ключ = "1"), тогава
CNT <= CNT 1;
крайна сметка, ако;
крайна сметка, ако;
крайна сметка, ако;
края на процеса;

Су, когато натиснете клавиша, тя се брои за една секунда честота

<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Усмивка" border="0" />Това също показва, че ключът се използва като възможност, не на часовника

<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Усмивка" border="0" />Това се нарича синхронен дизайн, да се запознаете с него!!в противен случай ще има някои много асинхронни проблеми

<img src="http://www.edaboard.com/images/smiles/icon_twisted.gif" alt="Twisted Evil" border="0" />Надявам се това да ви помогне

<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Усмивка" border="0" />това е за вас:
з ** P: / / www.actel.com / документи / hdlcode.pdf

 
Здравейте sanjana,

Моля, потвърдете, производителя на този кит, или да ми кажете какви са компонентите, които са приложени към комплекта, като U е видял на дъската

отношение

 
Дръж се, сигурни ли сте проучване ПИН създаде високо?Вие сте с помощта на специални проучвания ПИН за проучване?Проверете възстанови отново.

За да направите debouncing схема на FPGA можете да опитате два урок: държавната машина дизайн ....С уважение,Iouri

 
Благодарим и на ф предложения. Накрая ми код работи в FPGA

 

Welcome to EDABoard.com

Sponsor

Back
Top