[an error occurred while processing this directive] [an error occurred while processing this directive]
Вопрос по Verilog
(«Телесистемы»: Конференция «Языки описания аппаратуры (VHDL и др.)»)
[an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive]

Отправлено Mavr 27 августа 2001 г. 17:28

Написал кусочек:

module DCO(MCLK, mul_n, plus_clk, minus_clk, clk_out);
input MCLK, plus_clk, minus_clk;
input [5:0] mul_n;
output clk_out;
reg [5:0] add_reg;

always @(posedge MCLK)
begin
if (plus_clk == 1)
add_reg <= add_reg + mul_n + 1;
else if (minus_clk == 1)
add_reg <= add_reg + mul_n - 1;
else
add_reg <= add_reg + mul_n;
end

assign clk_out = add_reg[5];
endmodule

А теперь хочется поставить элемент xor на вход и выход
старшего разряда регистра, ну типа:
module DCO(MCLK, mul_n, plus_clk, minus_clk, clk_out);
input MCLK, plus_clk, minus_clk;
input [5:0] mul_n;
output clk_out;
wire [5:0] sum_result;
reg [5:0] add_reg;
reg out_latch;

if (plus_clk == 1)
assign sum_result = add_reg + mul_n + 1;
else if (minus_clk == 1)
assign sum_result = add_reg + mul_n - 1;
else
assign sum_result = add_reg + mul_n;

always @(posedge MCLK)
begin
add_reg <= sum_result;
out_latch <= sum_result[5]^add_reg[5];
end

assign clk_out = out_latch;
endmodule

Однако assign в операторе if нельзя использовать. А как быть ?

Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
E-mail: 

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru