Я хотел иметь параметризованное создание FIFO, чтобы я мог вызвать один экземпляр FIFO с изменением глубины (параметра).Параметрированный экземпляр FIFO в Verilog
например. Я написал код для FIFO с глубиной в качестве параметра.
Я буду знать глубину FIFO только по конфигурации от микропроцессора. На основании конфигурации регистра, могу ли я назвать этот FIFO с переменным параметром, например значением?
integer depth_param;
if(config_reg[1])
depth_param <= 128;
else
depth_param <= 512;
genfifo #(depth_param) (.din (din),.wr(wr)....);
модуль ФИФО:
module gen_fifo #(depth = 128)
(din,wr,rd,clk....);
вы можете предложить, пожалуйста, есть ли способ я могу это сделать?
Просто сделайте краном в своем положении fifo в позиции 128, затем создайте логику переключения, которая будет использовать данные из крана в случае config_reg [1] = 1, иначе используйте данные с конца fifo. –
Параметр требует постоянного значения. Значение не может измениться после компиляции или синтеза. Имя 'config_reg' подразумевает регистр, то есть загрузку после компиляции/синтеза. Является ли 'config_reg' регистром или параметром? – Greg
@Sergei: вы не можете этого сделать. Все меняется, когда вы изменяете FIFO глубину - адрес указателя обертывания, AE, EF, AF, FF флаги - вы не можете просто взять данные из середины. OP должен создать полный настраиваемый FIFO во время выполнения. – EML