ethernet crc tính

T

tavidu

Guest
Tôi đã nhận crc32_8d Verilog mã từ: / / www.easics.com / webtools / crctool.
nhưng giá trị crc là không đúng so với 802,3 gói Ethernet tiêu chuẩn.
gói là:
Lời nói đầu / SFD:
55 55 55 55 55 55 55 D5
SỬA ĐỔI RPAT TÍNH (LOOP 29 TIMES)
BE D7 23 47 6B 8F B3 14 5E FB 35 59
CRC
2F E0 AA EF

nhưng kết quả crc những gì tôi tính toán là: AF Q9 12 66

bất cứ ai có thể cho tôi biết lý do?

 
Kiểm tra với hình thức eth_crc.v opencores lõi ethernet!

 
Bạn có thể tìm ra thuật toán CRC32 từ trang web.
Sau đó, bạn có thể thực hiện nó bằng chính mình.
Nếu bạn có câu hỏi một lần nữa, tôi có thể giúp bạn để giải quyết các bạn câu hỏi.
Plesae đặt mã của bạn vào trang web này, và tôi sẽ giúp bạn.

 
Tôi nghĩ rằng bạn cần phải tính toán cho Công ước khung toàn bộ (bao gồm cả đệm), ngoại trừ phần preamble

 
u có thể thử bằng cách lấy giá trị ban đầu được tất cả một và trao đổi các bit đầu vào trước khi gửi vào module này CRC Verilog.và cuối cùng là bổ sung cho kết quả crc và trao đổi nóu hy vọng có được kết quả chính xác

 
tôi nghĩ rằng thuật toán crc của bạn đang được một số lỗi trong nó

 
Chào mọi người
Tôi đang tìm kiếm một máy tính crc32 cậy để xác minh công việc của tôi

Ai có thể giúp tôi?

Cảm ơn
Mohammad

 
có bạn viết một triển khai thực hiện song song hoặc nối tiếp của CRC?

 
Chào
Mã của tôi thực hiện song song crc32 nơi chiều rộng dữ liệu là một nibble (4 bit) được áp dụng cho ethernet

Bây giờ, tôi đã thực hiện một testbench rằng kiểm tra giá trị của CRC được tạo ra và đếm số lượng các đồng hồ cần thiết để có được nó

Nó kiểm tra giá trị của CRC bằng cách so sánh nó với một giá trị I thu được bằng các máy tính từ http://www.zorc.breitbandkatze.de/crc.html

Ví dụ:
sử dụng máy tính cho một tin nhắn dữ liệu = U (được 8'h55), chúng tôi sẽ nhận được CRC = C9034AF6

để kiểm tra công việc của tôi tôi thực hiện điều này testbench
/ / Eb1 1
luôn luôn @ (posedge CLK)
bắt đầu
Dữ liệu = 4'b0101;
nếu (CRC [31:0] == 32'hc9034af6) bắt đầu
hiển thị $ ( "Công ước được cho sau khi", Clk_Counter, "đồng hồ");
# 5 $ kết thúc;
cuối
cuối

khi chạy giả lập và thực hiện một điểm break ở dòng hiển thị $ tôi thấy nó không dừng lại và tiếp tục chạy mãi mãi

Bạn có nghĩ rằng đó là một sai lầm với công việc của tôi?
Bạn có nghĩ rằng kết quả của máy tính này không phải không?

Tôi đánh giá cao sự giúp đỡ ur

Cảm ơn

 
Ngoài ra, tôi muốn thêm một cái gì đó
Lõi được thử nghiệm so sánh các giá trị CRC với số diệu của 32'hc704dd7b bởi dòng này
gán CrcError = CRC [31:0]! = 32'hc704dd7b;

và khi tôi đã cố gắng để mô phỏng nó tôi tìm thấy tín hiệu CrcError luôn luôn cao

Tôi không biết đâu là sai lầm?

bạn có thể giúp đỡ xin vui lòng?

 

Welcome to EDABoard.com

Sponsor

Back
Top