[an error occurred while processing this directive]
[an error occurred while processing this directive]
|
Написал кусочек:
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: info@telesys.ru