Verilog Case语句崩溃模型sim
我对ModelSim和Quartus相当陌生,在大学里我需要通过I²C接口制作HDMI控制器。我正在将一些给定的代码重写到我自己版本的HDMI I²C接口中。在给定的代码中,我得到了下面的always块 在ModelSim中运行设计时,在always块中使用该case语句会导致ModelSim崩溃。我可以在内存不足错误关闭之前看到它(在任何地方都找不到错误日志) 当在真实的电路板上测试时,给定的代码确实有效。在我的版本中,合成和编译都很好。(我无法在ModelSim中测试给定项目,因为它会出现其他错误。) 我可以根据需要提供更多的代码段,但是导致崩溃的仅仅是代码段。(我试过其他的块,或者被注释掉了。仍然崩溃。)Verilog Case语句崩溃模型sim,verilog,modelsim,quartus,Verilog,Modelsim,Quartus,我对ModelSim和Quartus相当陌生,在大学里我需要通过I²C接口制作HDMI控制器。我正在将一些给定的代码重写到我自己版本的HDMI I²C接口中。在给定的代码中,我得到了下面的always块 在ModelSim中运行设计时,在always块中使用该case语句会导致ModelSim崩溃。我可以在内存不足错误关闭之前看到它(在任何地方都找不到错误日志) 当在真实的电路板上测试时,给定的代码确实有效。在我的版本中,合成和编译都很好。(我无法在ModelSim中测试给定项目,因为它会出现其
reg[15:0]LUT_数据;
reg[6:0]LUT_索引;
参数LUT_SIZE=31;
...
总是
开始
案例(LUT_索引)
//视频配置数据
0:LUT_数据Yep@Oldfarts评论有效!我必须添加@(*)。非常感谢。我花了很长时间想弄清楚到底出了什么问题。您可能会认为Quartus或ModelSim编译器都会收集到类似的信息。欢迎来到Stack Overflow。如果你遵循指导原则,你更有可能得到一个有用的答案。其次,提供一些可执行的东西,以便其他人可以轻松地看到您看到的内容。最后,只需提供重现问题所需的最低代码。最后两个被称为一个。首先清除“其他错误”总是
总是什么?尝试例如始终@(*)
reg [15:0] LUT_DATA;
reg [6:0] LUT_INDEX;
parameter LUT_SIZE = 31;
...
always
begin
case(LUT_INDEX)
// Video Config Data
0 : LUT_DATA <= 16'h9803; //Must be set to 0x03 for proper operation
1 : LUT_DATA <= 16'h0100; //Set 'N' value at 6144
2 : LUT_DATA <= 16'h0218; //Set 'N' value at 6144
3 : LUT_DATA <= 16'h0300; //Set 'N' value at 6144
4 : LUT_DATA <= 16'h1470; // Set Ch count in the channel status to 8.
5 : LUT_DATA <= 16'h1520; //Input 444 (RGB or YCrCb) with Separate Syncs, 48kHz fs
6 : LUT_DATA <= 16'h1630; //Output format 444, 24-bit input
7 : LUT_DATA <= 16'h1846; //Disable CSC
8 : LUT_DATA <= 16'h4080; //General control packet enable
9 : LUT_DATA <= 16'h4110; //Power down control
10 : LUT_DATA <= 16'h49A8; //Set dither mode - 12-to-10 bit
11 : LUT_DATA <= 16'h5510; //Set RGB in AVI infoframe
12 : LUT_DATA <= 16'h5608; //Set active format aspect
13 : LUT_DATA <= 16'h96F6; //Set interrup
14 : LUT_DATA <= 16'h7307; //Info frame Ch count to 8
15 : LUT_DATA <= 16'h761f; //Set speaker allocation for 8 channels
16 : LUT_DATA <= 16'h9803; //Must be set to 0x03 for proper operation
17 : LUT_DATA <= 16'h9902; //Must be set to Default Value
18 : LUT_DATA <= 16'h9ae0; //Must be set to 0b1110000
19 : LUT_DATA <= 16'h9c30; //PLL filter R1 value
20 : LUT_DATA <= 16'h9d61; //Set clock divide
21 : LUT_DATA <= 16'ha2a4; //Must be set to 0xA4 for proper operation
22 : LUT_DATA <= 16'ha3a4; //Must be set to 0xA4 for proper operation
23 : LUT_DATA <= 16'ha504; //Must be set to Default Value
24 : LUT_DATA <= 16'hab40; //Must be set to Default Value
25 : LUT_DATA <= 16'haf16; //Select HDMI mode
26 : LUT_DATA <= 16'hba60; //No clock delay
27 : LUT_DATA <= 16'hd1ff; //Must be set to Default Value
28 : LUT_DATA <= 16'hde10; //Must be set to Default for proper operation
29 : LUT_DATA <= 16'he460; //Must be set to Default Value
30 : LUT_DATA <= 16'hfa7d; //Nbr of times to look for good phase
default: LUT_DATA <= 16'h9803;
endcase