Я пытаюсь изучить Verilog, и мне было любопытно, почему блочная память моего FPGA, кажется, предоставляет данные, которые я запрашиваю, мгновенно. Я ожидал, что мне нужно будет подождать некоторое количество часов, прежде чем мои результаты будут доступны.
На ЦП традиционного компьютера единственные данные, доступные немедленно, - это то, что правильно хранится в регистре? Данные, хранящиеся в кеше или в оперативной памяти, должны быть извлечены в регистр, прежде чем с ними можно будет работать, верно? Являются ли эти объекты блочной оперативной памяти просто реализованными через регистры на чипе?
Спасибо
Вы создали примитивный, сгенерированный IP-адрес или вывели его с помощью массива?
IP обычно имеет выбор для зарегистрированного вывода или нет.
Если примитивный или предполагаемый, вы решаете, регистрировать ли его (тактируемый процесс) или нет в своем RTL. Примитив обычно является асинхронным выходом, за исключением любых атрибутов, зависящих от поставщика, которые могут быть связаны с ним.
Как @EugeneSh. сказал: «Технический паспорт» расскажет вам все, что вам нужно знать.
Данные, хранящиеся в кеше или в оперативной памяти, должны быть извлечены в регистр, прежде чем с ними можно будет работать, верно?
Вам не нужно регистрировать сигнал, чтобы работать с ним... Зависит от ситуации. Для чтения памяти я бы, наверное, так и сделал.
Являются ли эти объекты блочной оперативной памяти просто реализованными через регистры на чипе?
Вы можете «втолкнуть» память в регистры во время синтеза, но, если у вас есть доступная ОЗУ, обычно вы будете использовать ОЗУ (и инструмент по умолчанию также реализует этот способ... особенно если вы использовали примитив). В техпаспорте будет указано, сколько у вас оперативной памяти и как она устроена. Обобщающий отчет расскажет вам, как это было реализовано.
Чтобы упростить жизнь, я бы просто вывел ОЗУ с помощью массива.
Евгений Ш.
Олдфарт