Verilog / LEC lừa câu hỏi

S

Shahzad40

Guest
Chào,

xem ma sau đây:
TX_IN đầu vào;
reg [12:0] Rx;
luôn luôn @ (posedge CLK)
bắt đầu
nếu (CLR)
....
....
Rx <= ~ TX_IN;
..
khác
...
cuối
Bất cứ ai có thể cho tôi biết với chính quyền sẽ cho Rx [0] sẽ nhận được inverted TX_IN hoặc của tất cả các bit của Rx sẽ được inverted của TX_IN?
Lý do tôi yêu cầu được làm sáng tôi nghĩ rằng chỉ có LSB inverted được như vậy tôi đã thay đổi mã để
Rx [12:1] = 12'b0;
Rx [0] = ~ TX_IN;
và khi tôi LEC hai mã, các LEC thông báo rằng hai mã được unequivalent
Kính trọng,

 
Tôi không biết nếu tôi có thẩm quyền xem xét bản thân mình, và bạn
đã hiển thị gần như không có mã số, nhưng tôi thấy không có gì trong ban đầu đặt ra những mã mà Rx [12:1] để 12'b0;

Vì vậy, sửa đổi, bổ sung của bạn, mà hiện đặt Rx [12:1] để 12'b0, không thể tương đương với một trong những cũ.

Thực hành không tốt của nó để tải một đa-bit, đăng ký với một bit, giá trị và giả định khác bit sẽ có một giá trị determinate.

RB

 
Hãy explict mã của bạn:

Rx <= 13 ((~ TX_IN));

Hoặc

Rx <= (12'd0, ~ TX_IN);

Hoặc

Rx [0] <= ~ TX_IN;

tuøy theo những gì bạn muốn.

 
Cảm ơn các bài trả lời:
Vì vậy, am i ngay trong lần đầu tiên nói rằng các phần của mã số ở đâu:
Rx <= ~ TX_IN;
có nghĩa là Rx [0] sẽ có inverted của TX_IN và phần còn lại của bit Rx [12:1] uninitiallized Không giống như là Rx [0].Và điều này là không tốt.Các câu hỏi trở thành lý do tại sao điều này là không tốt.

và các phiên bản được sửa đổi ở đâu:
Rx [12:1] = 12'b0;
Rx [0] = ~ TX_IN;
rõ ràng các initializes Rx [12:0]

 
Trích dẫn:

có nghĩa là Rx [0] sẽ có inverted của TX_IN và phần còn lại của bit Rx [12:1] uninitiallized Không giống như là Rx [0].
Và điều này là không tốt.
Các câu hỏi trở thành lý do tại sao điều này là không tốt.
 
Xin vui lòng đọc trên như tôi đã đã giải quyết được điều này và tôi đã ngạc nhiên rằng không có ai đã có thể trả lời một câu hỏi đơn giản verilog (I am a newbie của Verilog).Tôi thực hiện tổng hợp và đã LEC để đi với một kết luận quan trọng:
Nguyên bản câu hỏi của tôi:

TX_IN đầu vào;
reg [12:0] Rx;
luôn luôn @ (posedge CLK)
bắt đầu
nếu (CLR)
....
....
Rx <= ~ TX_IN;
..
khác
...
cuối
Bất cứ ai có thể cho tôi biết với chính quyền sẽ cho Rx [0] sẽ nhận được inverted TX_IN hoặc của tất cả các bit của Rx sẽ được inverted của TX_IN?

Câu trả lời là Rx [0] sẽ nhận được inverted của TX_IN nhưng Rx [12:1] sẽ nhận được tất cả các giá trị là 1 và không phải 0 và lý do là các công cụ là stuffing 0s với TX_IN để làm cho nó rộng và 13-bit sau đó áp dụng một inversion.Nếu bạn loại bỏ các inversion, Rx [12:1] 0s được.
Tôi đã kiểm tra kỹ lưỡng này
Kính trọng

 
Nhưng bạn đã không thực sự trả lời một câu hỏi Verilog.Các bạn đã trả lời được câu hỏi "Cái gì hiện chuỗi công cụ của tôi nếu tôi làm incompletely chỉ định một hoạt động trong Verilog?"

Bạn đã chi tiêu ngày figuring ra các công cụ giả định khi bạn không thể xác định rõ ràng của bạn mạch
của hoạt động.Các công cụ sẽ không bao giờ phải giả định rằng bất cứ điều gì.Bạn cần phải nói với họ tất cả mọi thứ.

Bạn nên biết chính xác những gì tổng hợp các công cụ, dụng cụ simulator sẽ làm bạn với tất cả các dòng viết, bởi vì đoạn mã được viết bằng một cách mà không có gì là ambiguous cho bạn, nhà thiết kế cho những người khác, hoặc các công cụ.

Trong phần kết thúc, tính năng này là những gì bạn mong đợi sẽ được triển khai thực hiện?Thậm chí nếu có, của nó gây nguy hiểm cho bất kỳ phần nào trong chuỗi thực hiện các công cụ đoán.Nó có thể đoán một cách khác nhau thời gian tới.Hoặc một công cụ khác nhau có thể chữa trị cho nó một cách khác nhau.

Trong trường hợp này, công cụ đã được thêm vào hàng đầu zeros, mà là phổ biến.Tuy nhiên, nó cho phép làm điều này trên một vector mà đang trải qua một lý hoạt động là khá nguy hiểm.

Không có những tiết lộ bí ẩn ở đây.Ghi mã theo cách này là một lỗi phổ biến newbie.Và tôi
đã làm sai mà bản thân mình quá.Các kỹ thuật mã hóa rất nghèo.Tuy nhiên, một phần của tôi phụ thuộc vào thu nhập của người dân tiếp tục thực hiện có nhầm lẫn, do đó, có lẽ tôi nên người dân không được điều chỉnh

<img src="http://www.edaboard.com/images/smiles/icon_wink.gif" alt="Wink" border="0" />RB

 
Không dùng những điều trái tim của bạn.Nếu bạn đọc câu hỏi của tôi, tôi hỏi một đơn giản và thẳng một câu hỏi và tôi đã không nhận được một câu trả lời từ bất kỳ một.Tôi sẽ lặp lại các câu hỏi:
"Bất cứ ai có thể cho tôi biết với chính quyền sẽ cho Rx [0] sẽ nhận được inverted TX_IN hoặc của tất cả các bit của Rx sẽ được inverted của TX_IN?
Lý do tôi yêu cầu được làm sáng tôi nghĩ rằng chỉ có LSB inverted được như vậy tôi đã thay đổi mã để
Rx [12:1] = 12'b0;
Rx [0] = ~ TX_IN;
và khi tôi LEC hai mã, các LEC thông báo rằng hai mã được unequivalent "

Nó không phải là mã số của tôi và nó đã là một phần của một chip làm việc cho 10 năm như là một CHIP.Ngoài ra, nó đã được viết bởi một guru, tôi đã nhận thấy rằng gurus hiện những sắp xếp của sự vật để ẩn hoặc chứng mình khi mà có thể được thực hiện một cách rất đơn giản.I Hate RẰNG.Tôi biết rằng nó phải có được rõ ràng và đơn giản.Có nói rằng, các mã nằm trong Verilog LRM chi tiết kỹ thuật.
Để chứng minh những điểm này, tôi báo giá các Verilog 2001 LRM giây 4.1.10-Bit khôn ngoan vận hành trang 48

"Khi operands là không ngang nhau bit, chiều dài, ngắn hơn các operand là không điền trọng nhất trong ít"

Dưới đây là các mã stuffing zeros trong MSBs và sau đó thực hiện inversion và đó là lý do chúng tôi nhận được flip-flops được thiết lập sau khi được đặt lại.
Vì vậy, các lý do tại sao LEC đã được hiển thị unequivalent được rằng tôi đã xác định Rx [12:1] sẽ được 0 và nếu bạn thay đổi chúng cho tất cả các 1s các LEC qua.

Bạn đề nghị sau đây trong bài viết của bạn trước đó.
- Ambiguity in the code
- Công cụ sẽ làm cho bất kỳ loại đoán
- Đó là nguy hiểm
- Đây là một lỗi,
- Nó không phải là kỹ thuật mã hóa rất nghèo.
Tất cả các đề xuất của bạn là đồng bằng WRONG theo LRM.Các LRM hư không đề nghị không sử dụng, trong khi phong cách này vào nhiều dịp nói nó không làm blah blah -
Nó là hoàn hảo, và pháp lý rõ ràng từ những công cụ quan điểm trên.Readability Từ quan điểm trên, tôi đồng ý đây là người nghèo.
Tôi đã kiểm tra mã này và experemented bằng cách sử dụng follwoing:
Verilog LRM
Cadence LEC (đã rtl-to-rtl và rtl-to-netlist kiểm tra)
Thiết kế Compiler (tổng hợp)
Synplicity
VCS
Xilinx XST
Tôi thấy sự đồng bộ với những gì tôi nói

Điều này có thể không phải là một bí ẩn đối với bạn, nhưng nó đã được cho tôi và tôi vui mà tôi dành ngày về nó (của tôi không chính thức của thời gian).

Trong phần kết thúc, xin vui lòng không làm như bạn đã gợi ý một số vấn đề mà không có kiến thức, chúng tôi có lý cộng đồng và logic sẽ prevail.

 

Welcome to EDABoard.com

Sponsor

Back
Top