Описание тега chisel

Chisel is an open-source hardware construction language developed at UC Berkeley that supports advanced hardware design using highly parameterized generators and layered domain-specific hardware languages.
2 ответа

"данные для подключения 'chisel3.core.UInt@103' должны быть аппаратными, а не чистым типом зубила" при переписывании OpenSoCFabric1.1.2 из Chisel2 в Chisel3

Я пытаюсь переписать OpenSoCFaric-1.1.2 от зубила2 до зубила3. Но я сталкиваюсь с сообщениями об ошибках "данные для подключения 'chisel3.core.UInt@103' должны быть аппаратными, а не чистым типом долота" для приведенного ниже кода: Файл: packettoFli…
07 май '18 в 07:31
1 ответ

Как MemReq и MemResp точно работают в RoccIO - RISCV

Я пытаюсь понять, как я могу читать и записывать в память в RISCV, когда я использую RoCCIO. Но я не мог четко понять, что происходит. Особенно как мне обращаться к памяти или как работать с памятью tag, Есть ли какие-нибудь ресурсы, которые я могу …
09 июн '15 в 23:05
1 ответ

Что означают "&" и "%" в операторах -&, -%, +&, +% в Chisel3?

Я пытаюсь изучить Chisel3 на примере GCD, приведенном на официальной веб-странице. В этом примере используется оператор с именем -%, что это значит? Это не объясняется на странице оператора Wiki. И Cheatsheet говорит "вычитание" как обычный символ в…
08 ноя '16 в 09:43
2 ответа

Запуск dummy_rocc_test на доске zed

Dummy_rocc_test отлично работает на шипе с инструкцией custom0, но когда я кладу ее на доску zed и запускаю с ./fesvr-zynq pk dummy_rocc_test это дает мне ошибку незаконной инструкции. Я понимаю, что это потому, что rocc io находится не в конфигурац…
27 окт '15 в 03:58
1 ответ

Память читать и писать в том же индексе и в том же цикле

Например: () означает индекс адресов Mem в цикле 10 Mem (5) data = 5 в 11 цикле читать Mem (5) напиши 3 в Mem (5) Каково поведение в 11 цикле? (1) Сначала он получает данные 5, а затем записывает 3 в Mem (5). В цикле 12 Mem (5) данные = 3. (2) Или с…
21 мар '18 в 16:32
1 ответ

Долото3: хотите использовать Vec, но нужно использовать IndexedSeq

При генерации сдвинутого регистра сдвига с использованием "scanLeft" мне нужно было использовать IndexedSeq регистров и явное копирование результата scanLeft на выходной провод. Вот четыре примера (с testbench). Только первый работает. Мне больше нр…
30 авг '17 в 17:38
1 ответ

Неработающий URL для установки плагинов Scala

Я пытаюсь установить Rocket-Chip, а Chisel3 - это субмодуль в этом git-репо. Я следовал инструкциям в Chisel3 git repo Я получаю следующую ошибку при использовании sbt compile Проект / plugins.sbt репозитория chisel3 имеет resolvers += Resolver.url(…
16 июн '18 в 17:45
1 ответ

Отображение сигналов долота в VCD

Я работаю с чипом RISC-V Rocket. Я добавил некоторые свои собственные сигналы и логику и хотел увидеть значения существующих сигналов в микросхеме Rocket, которые еще не показаны в форме сигнала VCD. Как мне записать эти сигналы в файл VCD?
15 сен '15 в 22:07
1 ответ

Как добавить каждый элемент Vec?

Например, предположим, что у меня есть следующие данные: class VectorElemAdd extends Module { val io = IO (new Bundle { val input = Input(Vec(64, UInt(64.W))) val out = Output(UInt(64.W)) }) /* if the vector data is : 0, 1, 2, 3, 4, 5, ..., 63, I ha…
29 мар '18 в 14:28
1 ответ

Наименование верхнего уровня в chisel3

class generator(options: Map[String, Any]) { trait for_module extends abstractModule { //generates trait with params } class my_module extends abstractModule with for_module def exec = { ... Driver.execute(Array("-tn", "SomeName", "-td", "SomePath")…
23 май '17 в 15:22
1 ответ

Долото асинхронное fifo / несколько часов.

Поддерживает ли Chisel несколько часов в дизайне? Если бы я хотел внедрить асинхронный fifo, как бы вы поступили с долотом?
14 окт '16 в 18:17
1 ответ

Переназначить переменную несколько раз в течение такта - долото

Я хотел бы переназначить переменную hit_bits несколько раз в течение одного такта. hit_bits будет увеличиваться всякий раз, когда io.bits_perf.bits(i) правда. Я получаю "НАЙДЕННЫЙ КОМБИНАЦИОННЫЙ ПУТЬ!" когда я пытаюсь скомпилировать код. Любая идея?…
02 дек '16 в 15:01
1 ответ

Как кодировать асинхронный сброс в долоте

Как добавить сигнал сброса в список чувствительности в сгенерированном коде Verilog при написании кода Чизеля, например код ниже для D триггера: val x = Reg(init = UInt(0, width = 1)) x := io.D io.Q := x сгенерирует код Verilog так: always @(posedge…
04 сен '16 в 14:27
1 ответ

Карри в аппаратных средствах

Я пытаюсь реализовать простой адресный декодер с функцией карри внутри. Код ниже не скомпилируется, кто-нибудь может мне помочь с этим? class AddrDecoder[T<:UInt] (dType:T, n:Int) extends Module { val io = IO (new Bundle { //val range = (Vec(Seq.…
26 окт '18 в 12:07
0 ответов

Существует только один Core ACTIVE в двухъядерном Verilator при запуске программ baremetal или pk

Я использую двухъядерную сборку Verilator(эмулятор). Но я обнаружил, что только одно ядро ​​активно, когда я запускаю baremetal программ pk, используя такую ​​команду: ./emulator-freechips.rocketchip.system-DualCoreConfig baremetal-program или же ./…
23 окт '18 в 09:16
4 ответа

Learning Chisel - расширенные примеры для понимания кода Rocket Chip

Реализация RISC-V в Беркли называется Rocket Chip и написана на аппаратном языке Chisel. Зубило ориентировано на объект, и людям в нашей команде было трудно научиться эффективно изменять код Rocket Chip. Это "Обучающее путешествие", которое мы созда…
18 окт '17 в 19:45
2 ответа

Долото: как смоделировать переменную, увеличенную в развернутом цикле

Допустим, у меня есть Vec of Bool. Я хочу заполнить новый Vec того же размера значениями, равными количеству истинных значений, которые я видел до этого индекса в исходном Vec. Я хочу сделать это комбинационно. С моим фоном HLS и стилем кодирования,…
20 июл '17 в 16:53
3 ответа

Заявление о переключении долот, кажется, не работает так, как описано в официальном руководстве

Я пытался создать управляющую логику для цепи в долоте, когда получил несколько ошибок, связанных с операторами переключения, которые я использовал. Я решил запустить пример кода оператора switch, представленный на страницах 9 и 10 официального руко…
05 июл '15 в 05:18
1 ответ

Ленивые модули в RocketChip

Некоторое время я пытался узнать о LazyModule абстрактный класс и diplomacy пакет в общем. Самый простой вывод состоит в том, что объекты классов потомков LazyModule создаются только при первом обращении к ним. (Пожалуйста, исправьте меня, если я ош…
17 мар '18 в 17:50
1 ответ

Как использовать экспериментальные функции в Chisel3?

Я хотел загрузить память из файла, используя функции, описанные на этой вики-странице. Но это экспериментальная функция и команда импорта: import chisel3.util.experimental.loadMemoryFromFile Дайте ошибку сборки: [error] /Vamps/src/main/scala/vamps/m…
07 дек '18 в 09:12