параметр verilog в качестве входных данных - nios II

Я ищу способ отправить входное значение из nios в качестве параметра в модуль verilog.

or

Любые другие способы назначения параметра verilog из ввода.


person vlsi2013    schedule 01.03.2013    source источник


Ответы (2)


Он, конечно, не может передать параметр, так как эти параметры изменяют поведение Verilog во время синтеза (т. е. еще до того, как вы загрузите его в чип). Вы хотите спросить, как использовать NIOS II для установки входных значений?

person Ben Jackson    schedule 01.03.2013
comment
Привет, Бен, спасибо за ответ. Я смотрю на что-то, как показано ниже: - В проекте используется постоянное значение для генерации некоторых часов. Это значение должно быть выбрано пользователем (может быть, я могу указать некоторые предопределенные постоянные значения, но пользователь должен выбрать одно из них, и это то, что я с нетерпением жду). Бывший . У меня есть разные постоянные значения (1500, 3600, 3567 и т. д.), и мне нужно выбрать только одно постоянное значение за раз на основе логики выбора. Например, если ввод равен 0, то параметр равен 1500.... Я смотрел чтобы найти решение, и подумал, что nios может предложить какое-то решение. - person vlsi2013; 01.03.2013
comment
Если у вас есть что-то вроде parameter CLOCK = 1500, вы не можете изменить это во время выполнения. Если у вас есть input [12:0] clock, вы можете подключить его к NIOS II. - person Ben Jackson; 01.03.2013
comment
У меня есть parameter CLOCK1 = 1500 parameter CLOCK2 = 3600 parameter CLOCK3 = 3564 и т. д. У меня также есть вход [3:0]. мне нужно выбрать значение параметра Clock на основе ввода. для экс. если ввод == 0000 ; DIV= CLOCK1 если ввод == 0001 ; DIV = CLOCK1 DIV также является параметром, который будет передан другому модулю. - person vlsi2013; 01.03.2013
comment
Параметры - это константы времени синтеза (синтез подобен компиляции для Verilog). Вы не можете изменить их с помощью значений времени выполнения, таких как входные данные. Вам придется переписать модуль, принимающий DIV, чтобы он принимал input [...] DIV, а не parameter DIV. - person Ben Jackson; 01.03.2013

Как уже упоминал Бен Джексон, параметры являются константами и не могут быть изменены во время выполнения. Что вам нужно, так это ввод с низкой разрядностью, который выбирает предопределенное значение из таблицы поиска (LUT).

module lut(
  input   [1:0] sel,
  output [31:0] val
);

localparam CLOCK1 = 1500 ;
localparam CLOCK2 = 3600 ;
localparam CLOCK3 = 3564 ;
localparam CLOCK4 = 4048 ;

always @* begin
  case (sel) 
    2'b00 : val = CLOCK1;
    2'b01 : val = CLOCK2;
    2'b10 : val = CLOCK3;
    2'b11 : val = CLOCK4;
  endcase
end
person Morgan    schedule 01.03.2013