|
помогите с оператором case и делением частоты, не работает( |
|
|
|
Mar 17 2014, 15:25
|
Участник

Группа: Участник
Сообщений: 17
Регистрация: 23-02-14
Пользователь №: 80 654

|
Всем доброго времени суток! Помогите разобраться с оператором case и делителем частоты. Решил сделать делитель частоты,но такой,чтобы можно было изменять частоту при изменении некоторого 5 разрядного числа, назовем его fm1. Может быть кому-то покажется странным, но вот мое творение для создания меандра: нужно сделать так, чтобы при разных значениях fm1 выбирались разные значения переменной f15_1. Потом исходя из этого через выбранное количество отсчетов фронтов f50k формируются пички, и по ним в следующем процессе делается меандр. Код frequency1Hz: process (f50k, fm1) variable f15: integer range 0 to 641:=0; variable f15_1: integer range 0 to 641:=0; begin if Clr = '1' then f15_1:=0; f15:=0; freq15<='0'; ELSIF true THEN if rising_edge(f50k) THEN if f15_1 = 0 then case fm1 is -- выбор значений f15_1 при разных значениях fm1 when "00000" => f15_1 := 16; when "00010" => f15_1 := 119; when "00011" => f15_1 := 104; when "00100" => f15_1 := 92; when "00101" => f15_1 := 83; when "00110" => f15_1 := 75; when "10110" => f15_1 := 64; when "00111" => f15_1 := 641; when others => null; end case; end if;
if f15=0 then f15 := f15_1; --присваиваем переменной выбранное значение freq15<='1'; else f15:=f15-1; -- отсчитываем назад до нуля и когда f15 снова станет 0, на длительность такта f50k появляется 1. freq15<='0'; end if; end if; end if; END PROCESS; freq15Hz: process (f50k) --делаем меандр begin if clr='1' then f15<='0';
elsif true then if rising_edge (f50k) then if freq15='1' then if f15='0' then f15<='1';
elsif true then f15<='0'; end if; end if; end if; end if;
end process; Но все это к сожалению не работает. Пытаюсь все это реализовать на АPA300 в Libero. После синтеза и просмотра результата в ModelSim получается вот такая картина(. Подскажите,пожалуйста,где ошибка,что не так, почему не работает! Заранее благодарен)!
Эскизы прикрепленных изображений
|
|
|
|
|
 |
Ответов
|
Mar 18 2014, 02:37
|

Местный
  
Группа: Свой
Сообщений: 397
Регистрация: 21-11-12
Из: Россия г. Санкт-Петербург
Пользователь №: 74 498

|
Цитата(gethan @ Mar 17 2014, 19:25)  Всем доброго времени суток! Помогите разобраться с оператором case и делителем частоты. Решил сделать делитель частоты,но такой,чтобы можно было изменять частоту при изменении некоторого 5 разрядного числа, назовем его fm1.
Может быть кому-то покажется странным, но вот мое творение для создания меандра: нужно сделать так, чтобы при разных значениях fm1 выбирались разные значения переменной f15_1. Потом исходя из этого через выбранное количество отсчетов фронтов f50k формируются пички, и по ним в следующем процессе делается меандр.
Но все это к сожалению не работает. Пытаюсь все это реализовать на АPA300 в Libero. После синтеза и просмотра результата в ModelSim получается вот такая картина(.
Подскажите,пожалуйста,где ошибка,что не так, почему не работает!
Заранее благодарен)! Приветствую Прочел вопрос и проникся Чтобы быть кратким, то совсем недавно писал я подобный модуль. Писал я на verilog, и по своей структуре у меня получился n-ое кол-во делителей опорной частоты и мультиплексор. Очень просто и сердито=))) А мультиплексор выбирал выход одного из необходимых делителей частоты. По сути выбирался коэффициент деления опорной частоты. Хотя на вход мультиплексора можно засунуть что угодно. ЭТА ИНФОРМАЦИЯ К СВЕДЕНИЮ АВТОРА=)) Я не стал разбираться с Вашим написанным кодом, НО КАК-ТО УЖ МНОГО НАПИСАНО=)) Мне кажется можно упростить. Возможно я не прав, не судите строго=)))
--------------------
Победа - это когда N раз упал и N+1 раз встал.
|
|
|
|
Сообщений в этой теме
gethan помогите с оператором case и делением частоты Mar 17 2014, 15:25 cerg19 Если честно не совсем понял где сигнал fm управляе... Mar 17 2014, 15:47 gethan Цитата(cerg19 @ Mar 17 2014, 19:47) Если ... Mar 17 2014, 16:05 gethan Цитата(cerg19 @ Mar 17 2014, 19:47) Если ... Mar 17 2014, 17:19 tdocs.su Цитата(gethan @ Mar 17 2014, 19:25) Всем ... Mar 17 2014, 15:48 cerg19 с читабельным форматированием это значит примерно ... Mar 18 2014, 01:43 gethan Цитата(cerg19 @ Mar 18 2014, 05:43) с чит... Mar 18 2014, 02:14 Zerg1 Вот так не проще?
CODE
library IEEE;
use IEEE.STD... Mar 19 2014, 09:01  gethan Цитата(Zerg1 @ Mar 19 2014, 13:01) Вот та... Mar 19 2014, 15:21   Zerg1 У меня вот что рисует: Mar 19 2014, 17:51    gethan Цитата(Zerg1 @ Mar 19 2014, 21:51) У меня... Mar 19 2014, 18:44 gethan Цитата(Dmitriyspb @ Mar 18 2014, 06:37) П... Mar 18 2014, 04:24  Dmitriyspb Цитата(gethan @ Mar 18 2014, 08:24) Спаси... Mar 18 2014, 04:47   gethan Цитата(Dmitriyspb @ Mar 18 2014, 08:47) А... Mar 18 2014, 05:42    Dmitriyspb Цитата(gethan @ Mar 18 2014, 09:33) Я так... Mar 18 2014, 05:44     gethan Цитата(Dmitriyspb @ Mar 18 2014, 09:44) Т... Mar 18 2014, 07:00      iosifk Цитата(gethan @ Mar 18 2014, 11:00) Подел... Mar 18 2014, 10:14       Dmitriyspb Цитата(iosifk @ Mar 18 2014, 14:14) На са... Mar 19 2014, 02:31    sazh Цитата(gethan @ Mar 18 2014, 08:42) Пытаю... Mar 18 2014, 06:09 Zerg1 Тогда вот так
CODE
library IEEE;
use IEEE.STD_LOGI... Mar 20 2014, 04:15 gethan Цитата(gethan @ Mar 17 2014, 19:25) Всем ... Mar 20 2014, 17:22 Dmitriyspb Цитата(gethan @ Mar 20 2014, 21:22) Может... Mar 21 2014, 02:45 gethan Написал вот такой код: там два процесса. Сначала д... Mar 23 2014, 13:09 sazh Цитата(gethan @ Mar 23 2014, 16:09) Напис... Mar 24 2014, 03:31  Maverick Цитата(sazh @ Mar 24 2014, 05:31) Ох уж э... Mar 24 2014, 04:07   sazh Цитата(Maverick @ Mar 24 2014, 07:07) Ста... Mar 24 2014, 04:29    Maverick Цитата(sazh @ Mar 24 2014, 06:29) Это не ... Mar 24 2014, 04:34 andrew_b Цитата(gethan @ Mar 23 2014, 17:09) Напис... Mar 24 2014, 06:06
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|