Geneating часовник импулс на външен сигнал задействат

D

dadda007

Guest
Аз се опитвам да се разработи модел на хардуера за генериране на часовник пулса на микро-1 секунди продължителност на ocurance на задейства сигнала.Имам 2 входните сигнали една страна, часовникът на сигнала и още един е задейства сигнал.На изходния сигнал е 1 микро-втори пулс.За изпълнението на една и съща Аз използва следния метод:

1) Използвайте Г-Flipflop часовник, който взема сигнал (период по-малко от нас 1), тъй като часовник на входа и сигнал задейства като входни данни за "Pin D".

2) При производството на р-бар ние използваме забавяне единица 1 нас.Продукцията на р-бар изход след това се пускат в на входа на вход 2 и порта, с други сфери, като продукцията "р" на г-flipflop.

Идеята на този модел е, че началната импулса отива от слабо до силно Q-бар продукция отива за ниско и високо, когато Q-бар продукция преминава през забавяне единица, ще получите изместен Q-бар пулс.Когато И р и р-бар продукция, очакваното производство е 1-ни пулс.

Аз написах следния код в VHDL, но той не даде желания изход.

IEEE библиотека;
употреба ieee.std_logic_1164.all;

лице импулс

порт (
Назад: в Bit;
CLK: в Bit;
пулс: Няма битова);

пулс края лице;

архитектура pulse_behav на импулс

сигнал Q, qbar, D, qbar_delay;

започвам

процес (CLK)

започвам

D <= АСК;

IF (clk'event и CLK = '1 '), тогава
Q <= D;
крайна сметка, ако;

qbar_delay <= прехвърляне qbar след 1 нас;
пулс <= р и qbar;

край процес;

края pulse_behav;Аз съм нов и има нужда от помощ новак<img src="http://www.edaboard.com/images/smiles/icon_exclaim.gif" alt="Удивителни" border="0" />
 
and q<=d1. D <= ACK
и Q <= D

Вие не трябва да следват "архитектура" на TTL 7474,should work;

Q <= Назад
трябва да работят;
2.

- seems you assume

не е работа да qbar
- ти изглежда поема
съставител ще познае какво да правя с qbar само от името;
3.

your design would eventually work

Ако ремонт qbar
си дизайн в крайна сметка ще работят
в тренажор, но не в FPGA;qbar after
1 us
<- there is

qbar_delay <= прехвърляне
qbar след
1 нас
<- има;

не хардуер вътре FPGA да реализира след прехвърлянето;

единственият начин за измерване на времето в чисто цифрова схема е преброяване
склонове на периодичен сигнал за известен период [часовник];
най-малко, ако закъснението е по-голям след няколко наносекунди;
така че трябва да има часовник, свързани с вашия хардуер, който
оперира с брояч, спусък сигнал, който позволява отчитане, логика
който може да разпознава брояч на стойност, съответстваща на Вашия
пулс желаната дължина;
---
Последно редактиран от j_andr на 14-ти Август, 2008 6:52; Редактирано общо 1 път

 
Привет,

Ако дизайн на импулса да се synthesisable, тогава ще трябва да разчита на редица часовник cylces, като j_andr написал преди.

така че процесът ще изглежда така:
процес (АСК)
започвам
Проучване, ако след това
пулс <= '0 ';
ELSIF rising_edge (CLK), тогава
ако Назад = '1 'после
ако броят <= number_of_pulses_needed_for_1us тогава
пулс <= '1 ';
в противен случай
пулс <= '0 ';
крайна сметка, ако;
ако броят = max_count тогава
брой <= 0;
в противен случай
брой <= брой 1;
крайна сметка, ако;
край процес;

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

 

Welcome to EDABoard.com

Sponsor

Back
Top