Методы крупномасштабной модуляции VHDL

Я думаю о внедрении 16-битного процессора в VHDL. Простой процессор. ADD, MULS, NEG, BitShift, JUMP, Relitive Jump, BREQ, Relitive BREQ, я не знаю что-то в этом роде> Вероятно, все они работают только с 16-битными операндами. Я мог бы даже сократить его и использовать только один операнд и аккумулятор. С некоторыми регистрами состояния, Carry, Zero, Neg (если я не использую аккумулятор),

Я знаю, как спроектировать все части из логических элементов и планирую построить их из первых принципов. Поэтому для моего ALU мне нужно «построить» ADDer, возможно, Carry Look, групповой сумматор, этот сумматор сам по себе состоит из пары частей, которые сами состоят из пары частей.

В любом случае, моя проблема не в дизайне процессора или VHDL (я более или менее знаю язык). Вот как я должен держать вещи организованными. Как мне использовать пакеты, Как мне назвать процессы и карты портов? (я никогда не видел преимущества именования карт портов или процессов)


person Lyndon White    schedule 23.05.2010    source источник
comment
Я нашел это google.com/search?hl=en&q=vhdl +источник+проект+структура будет плодотворным запросом. Имея мимолетное знакомство с VHDL, две рекомендации из этого результата поиска были очень программными: используйте редактор, поддерживающий VHDL, и, что наиболее важно, используйте контроль версий (git и mercurial являются фаворитами для отдельных проектов). К сожалению, многие программисты не рассматривают возможность программирования на VHDL, поэтому здесь, в SO, я не ожидаю многого.   -  person msw    schedule 23.05.2010


Ответы (2)


Просмотр некоторых существующих примеров не повредит. На том уровне, о котором вы говорите (соглашения об именах и тому подобное), я никогда не делал ничего особенного в аппаратном дизайне, чем в программном.

Кроме того, я обычно советую против делать такие вещи, как ваши собственные сумматоры и тому подобное, если только это не требуется, потому что это домашнее задание, или что-то в этом роде. С FPGA и (в немного меньшей степени) ASIC у вас есть существующая «библиотека» оборудования в устройстве, поэтому что-то вроде A <= B + c обычно использует схему сумматора, которая уже встроена в устройство в в случае FPGA или вручную оптимизированный жесткий макрос в случае ASIC.

Написание собственного кода потребует изрядного количества дополнительной работы и почти всегда приведет к худшему результату. В случае с ASIC будет немного хуже; в случае с ПЛИС обычно бывает немного хуже.

Редактировать: я также должен отметить, что простой процессор на самом деле не может считаться крупномасштабным дизайном, по крайней мере, IMO. Может быть, это из-за моего опыта работы с программным обеспечением, но я всегда находил дизайн процессора довольно простым. Просто для одного примера, когда я один раз делал контроллер DRAM, мне показалось, что это намного больше работы. Я не помню ничего похожего на количество строк исходного кода, но, основываясь на памяти, я бы сказал, что оно было больше (вероятно, примерно в 2 раза). Конечно, это будет зависеть от того, насколько простой процессор вы выберете...

person Jerry Coffin    schedule 23.05.2010
comment
Я имею в виду крупномасштабный дизайн не потому, что это пример крупномасштабного дизайна, а потому, что методы, используемые в крупномасштабном дизайне, являются живыми. - person Lyndon White; 23.05.2010
comment
Что касается создания моих собственных сумматоров: это не домашняя работа, но это то, что мне нужно изучить. Проектирование/понимание сумматоров и множителей является частью модуля, который я делаю (который также охватывает VHDL, но не nesc оба вместе). Дизайн процессора является частью модуля, который я делаю (но он уже был протестирован и больше не будет тестироваться), хотя этот модуль вообще не охватывает VHDL. - person Lyndon White; 23.05.2010

Чем бы вы ни занимались, обязательно прочитайте основную работу Иржи Гайслера о структурированном методе проектирования VHDL.

http://www.gaisler.com/doc/vhdl2proc.pdf http:// www.gaisler.com/doc/structdes.pdf

Вы будете очень рады, что сделали.

person Jan Gray    schedule 14.12.2010