설계"잘못된

D

deepavlsi

Guest
코드 GCD 찾을 수있을 ...
내가 foll 의해 GCD를 찾을 코드를합니다.방법을 ...
GCD (a_in, b_in, a_out, b_out)
(만약 ((b_in == 0) | | (b_in == 1))
(a_out = a_in;
b_out = b_in;
)
그 밖의
(GCD (국경 % b_in) a_in; / / 재귀 함수
)
)

이것은 C. ....의 논리지만, Verilog 난 밖에 나가있어 repeadtedly 어떤 방법에 a_in % b_in .. 지느러미 모듈 계수 전화를 잘 알고있다

아래에있는 내 Verilog 코드를 어디에 내가 틀렸다고 말해 plese은 ...
코드 :

모듈 GCD (CLK,,) a_in, b_in, a_out, b_out, 일을 시작;

입력 CLK;

입력을 시작합니다;

입력 [31:0] a_in;

입력 [31:0] b_in;

출력 reg [31:0] a_out = 0;

출력 reg [31:0] b_out = 0;

출력 = 0 짓을 reg;

[3시] CNT의 = 0 reg;

rst_in = 0 reg;

reg rst_start;

A와 B 정수;

철사 [31:0]의 결과;

와이어 Recv = 0;항상 (posedge CLK)를 시작 @

만약 (시작)을 시작

"= a_in;

b "= b_in;CNT의 = 1;



다른 경우 (나 == 0 | | 나 == 1) 시작

a_out "=;

b_out "= b;

"= 1'b1 다;

CNT의 = 2;



다른 경우 (CNT의 == 1) 시작

rst_in "= 1;

CNT의 = 2;



다른 경우 (Recv == 1) 시작

"= b;

b "= mod_gcd.result;

a_out "= 1;

rst_in "= 0;

CNT의 = 1;

끝끝계수 mod_gcd (CLK, rst_in, 시작, B의 결과, Recv);endmodule

 
안녕,
코드 나는이 조각을 인터넷에서 얻은 ...Verilog 알고리즘 레벨 모델
모듈 GCD_ALG;
= 8 폭 매개 변수;
reg [폭 - 1 : 0] A_in, B_in, A와 B, Y를 Y_Ref;
reg [폭 - 1 : 0] A_reg, B_reg, 스왑;
매개 변수 GCD_tests = 6;
정수 N으로, 남;
reg를 FailTime 패스;
정수 SimResults;
/ / 테스트 데이터에 대한 메모리를 배열 선언
/ / ----------------------------------
reg [폭 - 1 : 1] AB_Y_Ref_Arr [1 : GCD_tests * 3];
//----------------------------------
/ / 모델 GCD 알고리즘
//----------------------------------
(A 또는 B)를 항상 @
시작 : GCD
= A_in;
B 조 = B_in;
(! = 0 & & B 조! = 0)
반면 (B 조! = 0)
반면 ( "= B)를 시작합니다
= - B 조;
스왑 =;
= B 조;
B 조 = 스왑;

그 밖의
= 0;
Y =;


 
차단되지 않은 블록은 항상 하나의 임무를 혼합 사용을 차단하지 않습니다.이런 나쁜 코딩 스타일 생각하고 그것을 권장하지 않습니다.

게다가, RTL과 동시 사용하는 프로그래밍 그리고 그들은 다른 소프트웨어의 스타일로 코딩을 비교할 수있습니다.그래서 당신은 반복 ""하나의 모듈을 호출할 수있습니다.그곳은 RTL의 외침처럼 같은 건.

당신은 다르지만 인스턴트의 이름을 몇 번 같은 모듈 인스턴스 수있는 모든 모듈을 동시에 실행됩니다.

 
전에 Verilog 코딩에 들어갈 수있습니다 고마워 얘들아 ... 내가 많이 새로 고침이 있다고 생각 해요 ...간단하게 코딩처럼 보이지만 아주 다른 작품 ..내가 그래서 내가 무엇을, 그리고 코드에 대한 이해를 시작할 수있습니다 참조할 수있는 몇 가지 책을 내가 뭐라고하지 ...

 

Welcome to EDABoard.com

Sponsor

Back
Top