У меня есть таблица, где каждая строка таблицы содержит состояние (регистры). Существует логика, которая выбирает одну конкретную строку. Только одна строка принимает «выбранный» сигнал. Затем открывается состояние из этой выбранной строки. Либо часть состояния подключается как выход к IO модуля, либо часть IO используется в качестве входа для обновления состояния.Долото: как реализовать одноразовый мультиплексор, который эффективен?
Если бы я реализовал это с помощью схемы, я бы использовал проходные ворота. Выбранный сигнал включал бы один набор проходных ворот, которые соединяли бы регистры строки с шиной. Затем шина будет подключена к набору IO. Это быстро, небольшая площадь и низкая энергия.
Существует прямой способ реализации этого в долото. Он кодирует выбранную строку как двоичное число, а затем применяет это число к выбору входа традиционного мультиплексора. К сожалению, для таблицы с 20-50 строками и состоянием сотен бит эта реализация может быть довольно медленной и расточительной по площади и энергии.
Вопрос состоит из двух частей: 1) Есть ли способ указать шины в долото, так что у вас есть проходные ворота или традиционные три-штатные драйверы, все сбитые с шины?
2) Если это не так, есть ли быстрая, небольшая область с низкой энергией, чтобы сделать это в долото?
Благодаря
Спасибо за ссылку. Это на самом деле вызывает постоянный и критический момент для нас. Мы не сложные кодировщики. Но люди, внедряющие Rocket и Chisel разработчики. Уровень сложности в практике кодирования программного обеспечения намного выше наших навыков. Обучение, необходимое для понимания реализации Mux1H, является нетривиальным. – seanhalle
Эта непроницаемость кода зубила была постоянным препятствием. С одной стороны, базовое долото более продуктивно, чем Verilog. Требуется от месяца до двух месяцев, чтобы иметь возможность доставлять полезную работу в долото. Около 60% людей, которых мы наняли, ушли, потому что они не могли добраться даже до этого момента. Но уровень, представленный Mux1H, и все чаще по Rocket-коду, я оцениваю, пожалуй, от 6 месяцев до года, чтобы получить удовольствие от такой практики кодирования. Это реальная проблема для нас при создании коммерческого продукта с использованием обычных разработчиков Verilog. – seanhalle
Как добраться до содержимого ответа .. Спасибо за отзыв о Analog. В пункте 1) я не был ясно из упоминания о Verilog Black Boxes. И я не знал о двунаправленности. Шина фактически однонаправленная. Он просто имеет несколько источников, которые могут управлять одним и тем же проводом. Драйвер три-состояния, например, однонаправлен. Кроме того, логика, которая вводит значения в шину и получает от шины, - это все долото. Нет явных ящиков Verilog Black ... – seanhalle