2017-11-29 16 views
-1

나는이 코드를 가지고 있습니다 : couter. 입력 : clk, rst_n, 활성화,로드. output : out, wrap 내 목표는 wrap 용 assign 문과 함께 사용하는 것입니다. 어떻게해야합니까?Verilog 카운터 : 항상 차단 외부에 랩 사용

module counter # (parameter N = 4) (

input clk, rst_n, enable, load, 
input wire [N-1:0] data, 
output reg wrap, 
output reg [N-1:0] out 

); 
always @(posedge clk or negedge rst_n) 

if (!rst_n) begin 
out <= 0; 
wrap <= 1'b0; 
end  
else if (load) 
begin 
out <= data; 
wrap <= 1'b0; 
end  
else if (enable) 
begin 
out <= out + 1'b1; 
wrap <= (out+ 1'b1)==1'b0; 
end 
+0

으로 변경하십시오. 전체 코드를 표시해야합니다. –

+0

'wrap <= (out + 1'b1) == 1'b0;은'wrap <= out == {N {1'b1}};로 재 작성되어야합니다. 또는'wrap <= &out;' – Greg

답변

0

wrap가 변수로 선언 번 assign 문을 사용할 필요가 없습니다. 코드를

module couter (input wire clk,rst_n,enable,load, 
       output var logic [N:0] out, logic wrap); 
+0

하지만 @ dave_59를 사용하고 싶습니다. – Alex

+0

기능을 변경 하시겠습니까? (즉, '랩 (wrap)'이 1 사이클 더 일찍 나온다) –