ПЗУ Quartus Prime
Привет, я проектирую 32-битный микроконтроллер ISA RISCV, и я организовал ПЗУ в виде массивов по 8 бит (1 байт), тогда ширина составляет 32 бита. Потому что мне это нужно.
rom.txt: (каждая строка является инструкцией)
00000011 00100000 00000111 10010011
00000001 01000000 00001000 00010011
00000001 00000111 10001000 10110011
00000001 00010001 00100000 00100011
00000000 00000001 00101001 00000011
00000001 00100001 00100100 00100011
00000000 10000001 00101001 10000011
01000001 00000111 10001010 00110011
11111100 11101000 00001010 10010011
11111101 01100000 00001110 11100011
ROM RTL:
module ROM(RADDRESS, DATA_OUT);
parameter WIDTH = 32; // out width
parameter SIZE = 128; // Total elements of 8 bytes
input [WIDTH-1:0] RADDRESS ;
output [WIDTH-1:0] DATA_OUT;
reg [7:0] MEMORY [SIZE-1:0];
initial // Read instructions
begin
$readmemb("rom.txt", MEMORY);
end
assign DATA_OUT = {MEMORY[RADDRESS], MEMORY[RADDRESS+1], MEMORY[RADDRESS+2], MEMORY[RADDRESS+3]}; // Big endian
endmodule
Когда я симулирую с помощью тестового стенда в Questasim/Modelsim, микроконтроллер работает нормально, и инструкции выполняются правильно.
Но в Quartus Prime, когда я компилирую, он просто компилируется нормально, но в отчете о компиляции я получаю всего 0 логических элементов и 0 регистров.
Конечно, у меня есть оперативная память и другие компоненты внутри микроконтроллера, которые также используют регистры и логические ячейки.
Также у меня есть входные и выходные контакты для / от микроконтроллера. Модуль верхнего уровня иерархии имеет вывод и ввод.
Как будто Quartus syntethizer просто не обнаруживает мой RTL, потому что мой ROM.
1 ответ
Я бы попробовал следующее:
- Используйте шаблон ROM в Quartus (откройте файл дизайна, затем щелкните правой кнопкой мыши и выберите "вставить шаблон"). Quartus часто путается с точным синтаксисом при выводе IP, например, чтение четырех записей за раз может вызвать проблемы.
- Если у вас по-прежнему возникают проблемы, запустите мастер IP-адреса встроенной памяти и выберите файл rom.txt в качестве содержимого ПЗУ.
Если вы отправите запрос в службу поддержки Intel, я уверен, что именно это вам и скажут. Обратите внимание, что обе эти опции, вероятно, предполагают изменение вашего шестнадцатеричного файла, чтобы иметь 32-битные записи вместо 8-битных.