에 Verilog 리셋>

S

steven852

Guest
안녕하세요,

제가 구현 재설정이 오전 찾고와 의심을 가지고 큰 :

항상 @ (posedge의 CLK 또는 negedge reset1 또는 negedge reset2) 시작
! (reset1) 시작하는 경우
/ / 레지스터 값의 집합을 다시 설정 1로 설정

또 시작하면 (! reset2)
/ / 값을 레지스터로 설정을 동일 재설정 2 세트

또 시작
/ / 정상 상태 머신



첫번째 문제는 "그게 아니면 내가 생각 받아 합성 오직 하나"목록에서 항상.두 번째는 하드웨어 방법이 실현 될 수 구현.거기 reset2과 조건 사이에 reset1 수도 있습니다 경주하지만 난 오전 회로에 대한 자세한 걱정.세번째 사용할 수 있는지 여부를 더 솔루션.

감사

 
첫번째 문제는 "그게 아니면 내가 생각 받아 합성 오직 하나"목록에서 항상.
[댓글 : 합성] 더 걸릴 수도 있습니다

두 번째는 하드웨어 방법이 실현 될 수 구현.
[그건 도서관 대상에 따라 다릅니다.세트 모두 비동기 및 비동기 리셋]와 같은 경우에는, u 개 필요 DFF

거기 reset2과 조건 사이에 reset1 수도 있습니다 경주하지만 난 오전 회로에 대한 자세한 걱정.
[예, 이러한 코드는 레이스를 이끌어 항상.우리가 필요한 우선 순위를 첫째로 확인 높은 어느 하나가 reset1 또는 reset2.둘째, 우리는 적어도 두 가지 유형의 필요에 DFF
하나는 비동기 DFF와 함께합니다 리셋 세트 높은 우선 순위를보다 비동기하고, 다른 설정 재설정 높은 비동기입니다 DFF와 우선순위보다 aysnc.마지막으로, 합성 도구]를 우선순위 등 구현해야 할 정도로 똑똑해

세번째 사용할 수 있는지 여부를 더 솔루션.
[확실하지]=====================================

(모듈 async_reset_1_2
CLK,
async_reset1_b,
async_reset2_b,
d 개,
질문
);

입력 CLK, async_reset1_b, async_reset2_b;
입력 [3시] d 개;
출력 질문 [3시];

reg [3시] 질문;
항상 @ (posedge의 CLK 또는 negedge의 async_reset1_b 또는 negedge async_reset2_b)
시작
(있다면! async_reset1_b)
q를 <= 4'b1010;
다른면 (! async_reset2_b)
q를 <= 4'b1100;
다른 사람
q를 <= d 개;


endmodule================================================== =============================
| 영어 | ST의 버스 | MB의 | 아르곤 | 그대로 | SR | 친위대 | 등록 이름을 | 유형 | 폭 |
================================================== =============================
| |를 q_reg | 플립플롭 1 | N | N | N | Y | N | N | N |
| |를 q_reg | 플립플롭 2 | N | N | Y | Y | N | N | N |
| |를 q_reg | 플립플롭 1 | N | N | Y | N | N | N | N |
================================================== =============================

모듈 async_reset_1_2 (CLK, async_reset1_b, async_reset2_b, 디, q를);
입력 [3시] d 개;
출력 질문 [3시];
입력 CLK, async_reset1_b, async_reset2_b;
전선을 N1, N2, N3, n7;

sdffprs의 q_reg_1_ (. 아프 기나 (CLK),. d 개 (을 N1),. 질문 (질문 [1]),. RB (N2),. sb (
async_reset1_b),. SDI는 (라 [1]),. 셨어 (N3));
sdffprs의 q_reg_2_ (. 아프 기나 (CLK),. d 개 (라 [2]),. 질문 (질문 [2]),. RB (async_reset1_b)
. sb (async_reset2_b),. SDI는 (을 N1),. 셨어 (을 N1));
sdffps q_reg_3_ (. 아프 기나 (CLK),. d 개 (라 [3]),. 질문 (질문 [3]),. sb (n7). SDI는 (을 N1)
. SE를 (을 N1));
sdffprq q_reg_0_ (. 아프 기나 (CLK),. 디 (d 개 [0]),. 질문 (질문 [0]),. RB (n7). SDI는 (을 N1)
. SE를 (을 N1));
tielow U10 (. 엑스 (을 N1));
tiehigh U11 (. 엑스 (N3));
and2 U12 (. (async_reset1_b),. b (async_reset2_b),. 엑스 (n7));
nand2i U13 (. (async_reset2_b),. b (async_reset1_b),. 엑스 (N2));
endmodule

=========================================

Verilog 네트리스트와 사이의 불일치를 방지하기 위해 시뮬레이션.
제발 다음과 같은 스타일을 사용합니다 :

(모듈 async_reset_1_2
CLK,
async_reset1_b,
async_reset2_b,
d 개,
질문
);

입력 CLK, async_reset1_b, async_reset2_b;
입력 [3시] d 개;
출력 질문 [3시];

reg [3시] 질문;

/ / 우리가 async_reset2_b 생각보다 더 높은 우선 순위를 가지고 async_reset1_b가
와이어 masked_async_reset2_b = (~의 async_reset1_b)?1'b1 : async_reset2_b;
항상 @ (posedge의 CLK 또는 negedge의 async_reset1_b 또는 negedge masked_async_reset2_b)
시작
(있다면! async_reset1_b)
q를 <= 4'b1010;
다른면 (! masked_async_reset2_b)
q를 <= 4'b1100;
다른 사람
q를 <= d 개;


endmodule

 
pls은 lib 디렉토리에 dff을 확인합니다, 저기 핀 단 하나의 재설정?또한 toools을 합성에서 스타일을 참조하도록 코드 필요가 안내

 
합성 도구를 사용, 다른 한 번 재설정 조건 레이스 갔었는데.설정 우선순위와 기계를 다른 상태 번째에서 사용하는 다른 재설정 상태 기계의 예 : 만약 엑스 = 1 재설정.
그리고 일부 콤보, 만약 X2 = 1 다음 주 X2 가서 거기에 덤프 필요에 있습니다 X2 상태 때 값을 있도록.

 

Welcome to EDABoard.com

Sponsor

Back
Top