реклама на сайте
подробности

 
 
> Проблема синтеза под Altera, Не моделируется синтезированная схема
White
сообщение Sep 9 2005, 11:48
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 81
Регистрация: 31-01-05
Из: Москва
Пользователь №: 2 324



Дроброго времени суток.

Если кто может-помогите wacko.gif
Проблема вот в чем:
Есть код на VHDL. Вот он:
Цитата
library IEEE;
use IEEE.STD_LOGIC_1164.all;
use IEEE.std_logic_arith.all;



entity imit is
  port(
  clk : in STD_LOGIC;
  enable : in STD_LOGIC;
  synh_out : out STD_LOGIC;
  data_strob : out STD_LOGIC;
  data_out : out STD_LOGIC_VECTOR(31 downto 0)
      );
end imit;

--}} End of automatically maintained section

architecture rl of imit is
constant t_min:integer:=100; --100 ns

begin

p1: process (clk, enable) 

constant temp1:STD_LOGIC_VECTOR(31 downto 0):=B"00000001100000000110010000110011";
constant temp2:STD_LOGIC_VECTOR(31 downto 24):=X"02";
constant temp3:STD_LOGIC_VECTOR(31 downto 0):=B"00000011000000010000001010111100";
constant temp4:STD_LOGIC_VECTOR(31 downto 0):=B"11100100000000000000000000001000";

variable count_temp:integer range 0 to 256 :=0;
variable t1:integer:=750;
variable temp:integer range 0 to 16777215 :=0;
variable num:integer range 0 to 32;


begin
  if enable='0' then
  count_temp:=0;
  t1:=750;
  data_out<=(others=>'0');
  data_strob<='1';
  synh_out<='1';
  temp:=0;
  num:=0;

  else
    if clk'event and clk='1' then  --CLK rising edge
    count_temp:=count_temp+1;
    end if;
    if clk'event and clk='0' then
    case count_temp is
      when 1 =>data_strob<='0';
      when 2 =>synh_out<='0';
        data_out<=temp1;
      when 3 => synh_out<='1';
      when 4 =>synh_out<='0'; 
      ------------------------
        temp:=temp+t1;
        data_out<=temp2 & CONV_STD_LOGIC_VECTOR(temp,24);
        num:=num+1;
        if t1 = 750 and num = 20 then
        t1:=1000;
        num:=0;
        elsif t1=1000 and num=20 then
          t1:=750;
          num:=0;
        end if;
     
      ------------------------
      when 5 => synh_out<='1';
      when 6 =>synh_out<='0';
        data_out<=temp3;
      when 7 => synh_out<='1';
      when 8 =>synh_out<='0';
        data_out<=temp4;
      when 9 => synh_out<='1';
      when 11 =>data_strob<='1';
      when 150 => if t1=750 then
          count_temp:=0;
        end if;
      when 200 => if t1=1000 then
          count_temp:=0;
        end if;
      when others => null;
    end case;
    end if;
  end if;
  end process p1; 
end rl;

он замечательно моделируется в A-HDL но при попытке моделировать синтезированое устройство в Quartus не чего не происходит т е результате состояния выходов не меняются. ПЛИС-MAX 7000S
Вообщем вопрос что я делаю не так, и если объяснять долго то где посмотреть.

PS До этого с ПЛИС не работал. Так что сильно не бейте
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
sazh
сообщение Sep 12 2005, 17:49
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 435
Регистрация: 6-10-04
Из: Петербург
Пользователь №: 804



(C VHDL не знаком. Посмотрел в Квартусе в RTL просмотрщике):
По большому счету вроде все нормально. Синхронная схема. Регистровые выходы.
Так как данные сопровождаются стробом, то на переходные процессы (не соизмеримые с периодом клока) обращать внимание не стоит. (Для более качественного размещения в Квартусе существует Редактор ассигнований.)
На чтобы я обратил внимание:
1. асинхронный глобальный ресет. Конечно ничего страшного. Но обычно на выходные регистры он не нужен.(Какое кому дело до состояния регистров вне интервала сопровождения)
2. Если это входной сигнал, его бы надо простробировать. А при разводке печатной платы разводить первоначально. Наводки по печати на этот сигнал будут “сбивать “ работу всей схемы
3. Как уже говорилось, клок используйте по одному фронту. В результате мягче требования к быстродействию кристалла да и при использовании PLL не надо будет проект переделывать.
4. Ну и самое главное. Разведите проект в Quartus и устраните все предупреждения.
5. НЕТ у Вас ни одного полноразрядного счетчика. Все реализуется на сумматорах (lpm_add_sub max7000s , ACEX). В результате нерациональное использование ресурсов. Как у Вас это получилось, ума не приложу. Если б хотя бы в верилоге, тогда бы смог бы качественнее ответить.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- White   Проблема синтеза под Altera   Sep 9 2005, 11:48
- - des00   else if clk'event and clk='1' then...   Sep 9 2005, 11:58
|- - andrew_b   Цитата(des00 @ Sep 9 2005, 15:58)else   ...   Sep 9 2005, 12:13
- - Iouri   count_temp желательно вынести в отдельный процесс ...   Sep 9 2005, 12:31
|- - des00   Цитата(Iouri @ Sep 9 2005, 07:31)count_temp ж...   Sep 9 2005, 12:37
- - vetal   Код    ---------------------------------...   Sep 9 2005, 12:58
|- - des00   Цитата(vetal @ Sep 9 2005, 07:58)Код   ...   Sep 9 2005, 13:08
|- - vetal   Цитата(des00 @ Sep 9 2005, 16:08)Цитата(vetal...   Sep 9 2005, 13:25
|- - des00   уважаемый Vetal вы не могли бы ответить мне в неок...   Sep 9 2005, 13:33
- - White   Спасибо всем за советы. Разобрался - все вроде раб...   Sep 10 2005, 11:53
- - White   К сожалению приходится возобновлять тему Продолж...   Sep 12 2005, 13:17
|- - des00   Цитата(White @ Sep 12 2005, 08:17)К сожалению...   Sep 12 2005, 13:39
- - White   Цитатане вижу ничего странного, кроме может быть т...   Sep 12 2005, 13:48
|- - des00   Цитата(White @ Sep 12 2005, 08:48)так и что ж...   Sep 12 2005, 14:05
- - White   Ок посмотрим в железе, а там видно будет. При од...   Sep 12 2005, 14:27
- - vetal   Ни одна программа не запакует триггеры в эвв max7s...   Sep 12 2005, 16:57
|- - des00   Цитата(vetal @ Sep 12 2005, 11:57)Ни одна про...   Sep 13 2005, 04:53
|- - des00   Раз пошла такая пьянка, то ИМХО по моим иследовани...   Sep 13 2005, 05:31
- - vetal   sazh : Вы не туда смотрите. На RTL действительно в...   Sep 12 2005, 19:31
- - sazh   to Vetal: Я посмотрел на плюсик в Proekt Navigator...   Sep 13 2005, 06:31
- - White   2 Vetal ЦитатаWhite: добавьте следующие строчки м...   Sep 13 2005, 13:02
|- - des00   Цитатаа что это изменит ? в бинарном виде мне в да...   Sep 13 2005, 13:18
- - White   ЦитатаЦитата Но в принципе идея понятна, единствен...   Sep 13 2005, 13:36
- - vetal   Аттрибуты которые я вам сказал написать предназнач...   Sep 13 2005, 13:37
- - White   ЦитатаАттрибуты которые я вам сказал написать пред...   Sep 14 2005, 09:21
- - vetal   Выключите так же: Remove duplicate registers -off....   Sep 14 2005, 09:37
|- - des00   Насчет счетчика и всех асинхронно/синхронных дел ...   Sep 14 2005, 09:52
- - White   2 vetal Спасибо за советы все заработало 2 d...   Sep 14 2005, 10:07
- - des00   Цитата(White @ Sep 14 2005, 05:07)За ссылки н...   Sep 14 2005, 11:02


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 01:23
Рейтинг@Mail.ru


Страница сгенерированна за 0.014 секунд с 7
ELECTRONIX ©2004-2016