赛灵思
直播中

周蓓

8年用户 231经验值
私信 关注
[问答]

为什么crt监视器一直卡在ch7301c上?

请有人帮我吗:
我试图在xc5vlx110t中运行一个crt监视器,但卡在ch7301c上。
这个代码的仿真工作正如数据表中所规定的那样,ch7301c也发送了应答位,但代码没有按预期工作......
无法弄清问题是什么。
模块main(输入USER_CLK,输出SCL_o,inout SDA_main,输出复位,输出reg [7:0] led); wire sda_o; wire sda_i; reg bi; reg [10:0] count_main; reg [10:0] count;
reg SDA; reg [10:0] count_bit; reg [10:0] scl_flag; reg SCL_R; reg SCL; reg [10:0] count_2; initialbeginSCLcount_bitSDAscl_flagSCL_Rbicount_maincountcount_2ledendassign sda_i = SDA_main; assign SDA_main =(bi)?sda_o:1'bz
;指定sda_o = SDA;指定SCL_o = SCL;指定reset = 1'b1;如果(scl_flag == 0 || scl_flag == 1),则始终@(posedge USER_CLK)开始if(count_2 == 49)count else else count_2 if
(count_2 == 0 || count_2 == 25)开始if(SCL_R == 1'b1)开始SCL_R scl_flag结束否则开始SCL_R scl_flag结束结束否则if(scl_flag> = 2)start if if(count == 99)count
否则if count(count_2 == 49)count_2 else count_2 if(count_2 == 0 || count_2 == 25)if if(SCL_R == 1'b1)SCL_R else SCL_R end if(count == 0 || count ==
50)begin if(SCL == 1'b1)SCL else SCL end endendalways @(negedge SCL_R)begincase(count_bit)10:SDA11:SDA13:SDA15:SDA17:SDA19:SDA21:SDA23:SDA25:SDA27 :; 28 :;
29:SDA31:SDA33:SDA35:SDA37:
SDA39:SDA41:SDA43:SDA45:; 46:; 47:SDA49:SDA51:SDA53:SDA55:SDA57:SDA59:SDA61:SDA63:; 64:; 65:SDA66:SDA70:SDA71:SDA73:SDA75:SDA77:SDA79:
SDA81:SDA83:SDA85:SDA87:; 89:SDA91:SDA93:SDA95:SDA97:SDA99:SDA101:SDA103:SDA105:bi107:; 108:LED [7] 110:LED [6] 112:LED [5] 114:
led [4] 116:led [3] 118:led [2] 120:led [1] 122:led [0] 123:开始bi124:SDAendcaseif(count_bitcount_bit = count_bit + 1; endendmodule

回帖(7)

孔朱磊

2019-10-24 09:00:39
我先写入21寄存器,然后再从中读取
举报

李刚

2019-10-24 09:18:50
>但代码没有按预期工作。但是如何不如预期?发布模拟和ChipScope波形可能有助于调试。
但是,我建议你参加FSM设计的课程模块。
我不是Verilog专家,但你的'总是@(negedge SCL_R)'过程是完全可憎的!
------------------------------------------“如果它不起作用
模拟,它不会在板上工作。“
举报

晏玉屏

2019-10-24 09:29:58
在将21f写为00001101之后,设备向21f发送确认但不向33f发送确认。如果我读取该寄存器,它会给我00000111;
仿真是在数据表中指定的
举报

孔朱磊

2019-10-24 09:35:55
请帮助我,我坚持这件事10天
举报

更多回帖

发帖
×
20
完善资料,
赚取积分