Важная информация

User Tag List

Страница 4 из 6 ПерваяПервая 123456 ПоследняяПоследняя
Показано с 31 по 40 из 52

Тема: Выбор языка описания электронных схем (Verilog, VHDL и другие)

  1. #31
    Master Аватар для Serg6845
    Регистрация
    30.12.2018
    Адрес
    г. Москва
    Сообщений
    580
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    128
    Поблагодарили
    124 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    я честно говоря в vhdl слегка разочаровался. берем простейший пример - реверсивный 8-разрядный счетчик с Z-состоянием на выходе:

    Код:
    library IEEE;
    use IEEE.STD_LOGIC_1164.ALL;
    use IEEE.STD_LOGIC_UNSIGNED.ALL;
    
    entity kmctr is
       Port (
    		CLK : in  STD_LOGIC;     -- input clock
    		UD : in  STD_LOGIC;    -- up/down
    		OE : in std_logic;	--output enable
    		DOUT : out  STD_LOGIC_VECTOR (7 downto 0)
    		);
    end kmctr;
    
    architecture Behavioral of kmctr is
       signal count   : STD_LOGIC_VECTOR (7 downto 0);
    begin
       
        -- up/down counter
        process (CLK, UD)
        begin
            if rising_edge(CLK) then
                if (UD = '1') then
                    count <= count + '1';   -- counting up
                elsif (UD = '0') then
                    count <= count - '1';   -- counting down
                end if;
            end if;
        end process;
        
        DOUT <= count when (OE='0') else "ZZZZZZZZ";
        
    end Behavioral;
    компилится максплюсом под max7000 в 23 LC.


    а теперь то же самое схематиком:

    тем же максплюсом, под то же семейство 7000 - компилится в 8 (!) LC...
    no comments.

    p.s.
    нет, я конечно понимаю - переносимость там, и все такое, и более сложные вещи схематиком не нарисуешь - но в моем конкретном случае - перерисую divmmc схематиком - глядишь и kempston mouse в текущую конфигурацию поместится...
    Последний раз редактировалось Serg6845; 14.03.2021 в 21:34.

    Зверинецъ

    Специалист "совсем стандарт" - 88-89
    Ленинград1 +256К +AY+BDI+VGA выход +Ethernet (Speccyboot) +Xmodem (115200)+divmmc
    Ленинград2 + CF карта
    Платформа 8085+Z80+CPLD (Специалист МХ2 +SD +FDD +PS/2kbd)
    [свернуть]

  2. #31
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #32
    Veteran Аватар для krotan
    Регистрация
    30.08.2010
    Адрес
    Санкт-Петербург
    Сообщений
    1,182
    Спасибо Благодарностей отдано 
    47
    Спасибо Благодарностей получено 
    160
    Поблагодарили
    141 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Serg6845 Посмотреть сообщение
    я честно говоря в vhdl слегка разочаровался. берем простейший пример...
    На Абеле то же самое не пробовал? Интересно, будет как в vhdl или как в схематике?

  4. #33
    Guru
    Регистрация
    16.12.2009
    Адрес
    Харьков
    Сообщений
    4,557
    Спасибо Благодарностей отдано 
    299
    Спасибо Благодарностей получено 
    291
    Поблагодарили
    181 сообщений
    Mentioned
    5 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    А что показывает RTL Viewer в квартусе после компиляции первого и второго варианта?
    Profi must live!

    Моё железо...

    1. Profi 5.06/1Mb(DRAM)+Profi5.06(UP)/HDD/3`5FDD/CF512Mb/SD-CARD
    3. Profi 6.2 Rev. B/1Mb/3`5FDD/HDD3.2Gb
    4. Profi 5.05(down)/1Mb+Profi 5.03(UP)/Pentagon_Fix
    Все укомплектованы:
    Profi_ZX-BUS/ZXMC2/NemoIDE/SounDrive
    [свернуть]

    Ссылка на Telegram-канал поддержки пользователей Profi.

  5. #34
    Master Аватар для Serg6845
    Регистрация
    30.12.2018
    Адрес
    г. Москва
    Сообщений
    580
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    128
    Поблагодарили
    124 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от solegstar Посмотреть сообщение
    А что показывает RTL Viewer в квартусе после компиляции первого и второго варианта?
    лениво мне квартус накатывать ради этого. у меня поделка на flex8000, его квартус не поддерживает. впрочем для max7000 я в максплюсе нашел волшебную галку, после которой этот пример компилится в 8 LC что из vhdl, что из схематика. вот только для flex8000 такой галки нет. и там результат 18:11 в пользу схематика...

    Зверинецъ

    Специалист "совсем стандарт" - 88-89
    Ленинград1 +256К +AY+BDI+VGA выход +Ethernet (Speccyboot) +Xmodem (115200)+divmmc
    Ленинград2 + CF карта
    Платформа 8085+Z80+CPLD (Специалист МХ2 +SD +FDD +PS/2kbd)
    [свернуть]

  6. #35
    Member Аватар для Sandro
    Регистрация
    20.01.2010
    Адрес
    г. Зеленоград
    Сообщений
    137
    Спасибо Благодарностей отдано 
    5
    Спасибо Благодарностей получено 
    50
    Поблагодарили
    30 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Serg6845 Посмотреть сообщение
    я честно говоря в vhdl слегка разочаровался. берем простейший пример - реверсивный 8-разрядный счетчик с Z-состоянием на выходе:

    компилится максплюсом под max7000 в 23 LC.


    а теперь то же самое схематиком:

    тем же максплюсом, под то же семейство 7000 - компилится в 8 (!) LC...
    no comments.
    Ты попросту вручную сделал работу компилятора. Которую он сделать не мог.

    А вот я взял Квартус и заодно привёл код в соответствие со стандартом языка:

    Код:
    library IEEE;
    use IEEE.STD_LOGIC_1164.ALL;
    use IEEE.NUMERIC_STD.ALL;
    
    entity kmctr is
       Port (
    		CLK : in  STD_LOGIC;     -- input clock
    		UD : in  STD_LOGIC;    -- up/down
    		OE : in std_logic;	--output enable
    		DOUT : out UNSIGNED (7 downto 0)
    		);
    end kmctr;
    
    architecture Behavioral of kmctr is
       signal count   : UNSIGNED (7 downto 0);
    begin
       
        -- up/down counter
        process (CLK, UD)
        begin
            if rising_edge(CLK) then
                if UD = '1' then
                    count <= count + 1;   -- counting up
                elsif UD = '0' then
                    count <= count - 1;   -- counting down
                end if;
            end if;
        end process;
        
        DOUT <= count when OE = '0' else (others => 'Z');
        
    end Behavioral;
    И сразу же вышло так:

    Код:
    Fitter Status : Successful - Sun May 09 16:37:48 2021
    Quartus II Version : 9.1 Build 350 03/24/2010 SP 2 SJ Web Edition
    Revision Name : qtest
    Top-level Entity Name : kmctr
    Family : MAX7000AE
    Device : EPM7032AELC44-4
    Timing Models : Final
    Total macrocells : 8 / 32 ( 25 % )
    Total pins : 15 / 36 ( 42 % )

    Цитата Сообщение от Serg6845 Посмотреть сообщение
    p.s.
    нет, я конечно понимаю - переносимость там, и все такое, и более сложные вещи схематиком не нарисуешь - но в моем конкретном случае - перерисую divmmc схематиком - глядишь и kempston mouse в текущую конфигурацию поместится...
    Я бы всё же взял нормальный инструмент ... ну кто же максом-то компилирует, да ещё и c нестандартной библиотекой STD_LOGIC_UNSIGNED ...

  7. #36
    Veteran Аватар для zebest
    Регистрация
    11.01.2008
    Адрес
    Ладошкино
    Сообщений
    1,419
    Записей в дневнике
    4
    Спасибо Благодарностей отдано 
    205
    Спасибо Благодарностей получено 
    95
    Поблагодарили
    75 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    21+


    Цитата Сообщение от Serg6845 Посмотреть сообщение
    переносимость там, и все такое
    вот да, переносимость - это оченно важный параметр (
    Пример из жизни.
    Небольшой проект, в основном модуле джва с лишним десятка подмодулей(вперемешку, и на verilog-e, и на VHDL), но основной модуль написАн на VHDL (видимо Родитель №1 так больше пондравилось).
    Родитель №2 доделывает проект "до ума", но в какой то момент, видимо задолбавшись с VHDL, переписывает весь головной модуль (полторы тысячи строк) на Verilog со своими исправлениями. Строк остается в полтора раза меньше, порядка тысячи. Ну еще бы,
    20 модУлей одних component.
    Мне ни тот ни другой в исходном виде не подходят, вот и приходиЦЦа "ползать" по обеим вариантам, сверять, и материцца. Беззлобно Весело, чО.
    Зато за пару недель такого развлечения у меня два варианта. И в VHDL и в Verilog .
    Результаты компиляции заставляют задуматься об эффективности компиляторов
    Разница только в основном модуле. не более.


    А , ну да, возможно еще мои косяки добавились, при переводе с корейского на китайский, использую промежуточный словарь хинди, но тем не менее - что есть - то есть.
    Ах да, самое интересное, оба варианта от родителей№№1,2 под Альтеру и Квартус соответственно, мой вариант под Ксайлинк и ISE/
    ЭТо отдельная песня по совместимости компиляторов Острые ощущения гарантируются при переносе.))))))
    [свернуть]
    Последний раз редактировалось zebest; 09.05.2021 в 19:30.
    Profi v3.2 -=- Speccy2010,r2

  8. #37
    Master Аватар для Serg6845
    Регистрация
    30.12.2018
    Адрес
    г. Москва
    Сообщений
    580
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    128
    Поблагодарили
    124 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Sandro Посмотреть сообщение
    Я бы всё же взял нормальный инструмент ... ну кто же максом-то компилирует,

    я повторюсь - у меня поделка на FLEX8000. внимательно выслушаю предложения на тему нормального инструмента...

    да ещё и c нестандартной библиотекой STD_LOGIC_UNSIGNED ...
    а это я кстати скопипастил из исходника divmmc. ну да, он под xilinx. это к вопросу о переносимости наверно...

    Зверинецъ

    Специалист "совсем стандарт" - 88-89
    Ленинград1 +256К +AY+BDI+VGA выход +Ethernet (Speccyboot) +Xmodem (115200)+divmmc
    Ленинград2 + CF карта
    Платформа 8085+Z80+CPLD (Специалист МХ2 +SD +FDD +PS/2kbd)
    [свернуть]

  9. #38
    Master
    Регистрация
    19.06.2014
    Адрес
    г. Харьков, Украина
    Сообщений
    703
    Спасибо Благодарностей отдано 
    3
    Спасибо Благодарностей получено 
    8
    Поблагодарили
    7 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Serg6845 Посмотреть сообщение
    я честно говоря в vhdl слегка разочаровался. берем простейший пример - реверсивный 8-разрядный счетчик с Z-состоянием на выходе...
    Вот только не нужно путать синхронный счетчик с асихронным. Который весь в иголках будет
    Последний раз редактировалось IgorR76; 11.05.2021 в 11:16. Причина: Убран оверквотинг.

  10. #39
    Activist
    Регистрация
    21.08.2009
    Адрес
    Cyprus
    Сообщений
    225
    Спасибо Благодарностей отдано 
    26
    Спасибо Благодарностей получено 
    7
    Поблагодарили
    6 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от zebest Посмотреть сообщение
    ...в какой то момент, видимо задолбавшись с VHDL, переписывает весь головной модуль (полторы тысячи строк) на Verilog со своими исправлениями. Строк остается в полтора раза меньше, порядка тысячи.
    Как все сложно. Освойте уже Clash. Он вам из простого функционального исходника сгенерирует хоть VHDL, хоть Verilog: https://clash-lang.org/

    Clash is a functional hardware description language that borrows both its syntax and semantics from the functional programming language Haskell. It provides a familiar structural design approach to both combinational and synchronous sequential circuits. The Clash compiler transforms these high-level descriptions to low-level synthesizable VHDL, Verilog, or SystemVerilog.

  11. #40
    Master Аватар для Serg6845
    Регистрация
    30.12.2018
    Адрес
    г. Москва
    Сообщений
    580
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    128
    Поблагодарили
    124 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от s_kosorev Посмотреть сообщение
    Вот только не нужно путать синхронный счетчик с асихронным. Который весь в иголках будет
    и какой из этих двух вариантов асинхронный?

    Зверинецъ

    Специалист "совсем стандарт" - 88-89
    Ленинград1 +256К +AY+BDI+VGA выход +Ethernet (Speccyboot) +Xmodem (115200)+divmmc
    Ленинград2 + CF карта
    Платформа 8085+Z80+CPLD (Специалист МХ2 +SD +FDD +PS/2kbd)
    [свернуть]

Страница 4 из 6 ПерваяПервая 123456 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. micro-CPU на vhdl, verilog
    от bigral в разделе Для начинающих
    Ответов: 14
    Последнее: 16.04.2015, 23:39
  2. Программы симуляции электронных схем
    от Viktor2312 в разделе Для начинающих
    Ответов: 3
    Последнее: 07.01.2015, 17:39
  3. Техническая литература: Языки описания аппаратуры "AHDL, VHDL и Verilog"
    от Viktor2312 в разделе Техническая литература
    Ответов: 1
    Последнее: 14.09.2014, 22:29

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •