2015-02-20 2 views
-1

Я пишу код для блока сумматора смещения .... но я не получил правильный результат ... здесь я не могу опубликовать ckt для того же ... Я думаю, что проблема синхронизации clk тамКод для смены добавить блок

module shift_adder_8a(clk,,j0,j7,s089,s075,s050,s018); 
input clk; 
input [2:0] j0,j7; 
reg[3:0]z0; 
output reg[10:0]s089,s075,s050,s018; 
reg[6:0] o0,p0; 

[email protected](posedge clk) 
begin 
z0 <= j0-j7; 
o0 <= (z0<<3)+z0; 
p0 <= (z0<<4)+o0; 
s089 <= (z0<<6)+p0; 
s075 <= (p0<<1)+p0; 
s050 <= (p0<<1); 
s018 <= (o0<<1); 

end 
endmodule 
+1

Может ли вы на лугах объяснить, что означают сигналы? Какая требуемая функциональность? –

ответ

0

Не получив «правильный результат», я предполагаю, что вы ожидаете, что результаты будут отложены.

Попробуйте переместить z0, o0, p0 задания в комбинационный блок:

always @* begin 
z0 = j0-j7; 
o0 = (z0<<3)+z0; 
p0 = (z0<<4)+o0; 
end 
[email protected](posedge clk) 
begin 
s089 <= (z0<<6)+p0; 
s075 <= (p0<<1)+p0; 
s050 <= (p0<<1); 
s018 <= (o0<<1); 
end 
Смежные вопросы