Цитата(ZED @ Jan 12 2010, 16:34)

2) BIC это я так понял пометка вращателя, а можно спросить почему именно BIC? ну так для лучшего восприятия? Также интересно узнать смысл обозначений fr, fc, f, ro i, c, dи т.д.
BIC это первые буквы от Block_Interval_Counter. Просто даже длина имени BLOCK_INTRVL_CNTR_xx уже на грани адекватной, а BLOCK_INTRVL_CNTR_xx_ENABLE эту грань пересекает, а самое главное, на мой взгляд, перестает "читаться". При беглом просмотре кода уже очень сложно отличить основной BLOCK_INTRVL_CNTR_xx от его "разрешающего" сигнала. Посмотрел свежим взглядом код и пришел к выводу, что это пример совсем неудачного названия, т.к. сам счетчик блоков у нас вообще виртуальный (в том смысле, что значение счетчика собирается из значений других сигналов) и BIC_xx_ENABLE к BLOCK_INTRVL_CNTR_xx вообще не имеет никакого отношения. Так что, Вы правы, что не восприняли этот сигнал.
Суффикс f означает флаг. fc - комбинаторный, fr - регистровый. Это, собственно говоря, все к вопросу о кодовых стандартах. Помнится, такая тема на форуме уже поднималась. Я флагами называю те сигналы, которые всего лишь отражают истинность или ложность какого-либо одного условия и, что очень важно, строго следуют за изменением истинности/ложности условия. Например, сигнал ENABLE этим критериям не отвечает т.к. он не отражает истинность какого-либо одного условия - он по одному условию устанавливается в 1, а по другому сбрасывается в 0. Он как раз использует флаги - по одному флагу устанавливается в 1, а по другому сбрасывается. Комбинаторный флаг отражает истинность условия синхронно ("мгновенно"), а регистровый с задержкой на один(несколько) такт(ов). Использование комбинаторных флагов дает более медленный код, но зато с ними проще работать. Использование регистровых флагов дает более быстрый код, но работать с ними сложнее - в случаях, когда задержка недопустима и регистровый флаг должен отражать истинность условия синхронно с ним требуется предсказание истинности условия за 1 такт, что, иногда, представляется затруднительным или невозможным.
Входные и выходные сигналы я всегда помечаю постфиксом i и o соответственно. r означает регистровый, c - комбинаторный. Соответственно SIGNAL_ro - это выходной сигнал, "взятый" с регистра, а SIGNAL_co - выходной сигнал, формируемый комбинаторной логикой.
d (delayed) я использую для обозначения задержанных копий. Есть три варианта. 1) пара SIGNAL и SIGNAL_d(n downto
1) т.е. основной и его копии, задержанные на 1 ... n тактов. 2) SIGNAL и SIGNAL_d1, SIGNAL_d2 ... 3) SIGNAL_d(n downto
0) т.е. основным является SIGNAL(0). Выбор зависит от того какой удобнее в конкретной ситуации.
p, соответственно, обозначает сигналы предшествующие n тактов основному.
Выбор между постфиксами p и d делается исходя их смысла кода.
a - асинхронный, s - синхронный (т.е. RESETsn - синхронный сброс)
Чтобы постфиксы и суффиксы не сливались с самим именем сигнала я имя сигнала всегда пишу большими буквами, а суффиксы и постфиксы - маленькими и часто отделяю _.
В синхронном дизайне внутри модуля все сигналы по умолчанию я считаю регистровыми и помечаю только комбинаторные постфиксом c. Весьма полезно - хорошо обнаруживает длинные цепочки комбинаторной логики понижающие тактовую частоту. Иногда замечаешь их еще во время написания кода до синтеза. Ну а если до синтеза не обратил внимания и увидел только в отчете, то значительно легче эту цепочку проследить и проанализировать, чем без постфикса с.
Кроме того, постфиксы i и o автоматически устраняют то неудобство, что в VHDL выходной сигнал не может участвовать в выражениях в качестве источника данных - ему можно только присваивать.
Цитата(ZED @ Jan 12 2010, 16:34)

1) Если можно напишите по подробнее про сигнал ENABLE_d. Хитрая такая задумка... Я вроде так понимаю, но не уверен, что до конца.
Вот как я понимаю: Это фактически сдвиговый регистр, при начале этапа мы записываем в него '1' на каждом такте, а в конце '0'. Таким образом формируя с какого триггера (этого регистра) считывать (constant Addr_Rd_Dly и т.д) мы формируем сигналы разрешения (ADDR_RD_ENABLE и т.д.).
Цитата(ZED @ Jan 12 2010, 16:34)

3)И еще, а что там за комментарий -- 517?
На эти вопросы отвечу чуть позже.