Tôi đang cố dịch một chương trình Verilog thành vhdl và đã tình cờ gặp một câu lệnh trong đó toán tử dấu hỏi (?) Được sử dụng trong chương trình Verilog.Toán tử dấu hỏi chấm (?)
Sau đây là mã Verilog;
1 module music(clk, speaker);
2 input clk;
3 output speaker;
4 parameter clkdivider = 25000000/440/2;
5 reg [23:0] tone;
6 always @(posedge clk) tone <= tone+1;
7 reg [14:0] counter;
8 always @(posedge clk) if(counter==0) counter <= (tone[23] ? clkdivider-1 : clkdivider/2-1); else counter <= counter-1;
9 reg speaker;
10 always @(posedge clk) if(counter==0) speaker <= ~speaker;
11 endmodule
Tôi không hiểu dòng thứ 8, ai cũng có thể làm sáng tỏ điều này? Tôi đã đọc trên trang web thế giới ASIC mà dấu hỏi là sự thay thế Verilog cho ký tự Z. Nhưng tôi không hiểu tại sao nó được sử dụng trong bối cảnh này.
Trân trọng
Đây là lý do tại sao tờ khai rất quan trọng trong câu hỏi. Một điều kiện phải đánh giá một giá trị boolean. Giai điệu duy nhất [23] sẽ đáp ứng các tiêu chí đó là nếu giai điệu là BOOLEAN_VECTOR. – user1155120