我现在碰到个问题跟你请教一下,哪位有空回复一下我吧,目前我的程序整体程序合并完了,但调试不通,我做了几个测试点,用示波器或信号捕捉设备来观察,就出现了很多怪问题。
测试点输出端口定义:
output wire TP1,
output wire TP2,
output wire TP3,
output wire TP4,
采集信号:
assign TP1 = DE;
assign TP2 = pixclk; //HSYNC;KSC
assign TP3 = rwClk[1]; //state[1]; //ksc_s
assign TP4 = rbKeyStoneEnable;
上面是这几个测试点TP1~TP4就是我设置的测试点。
放大前:
放大后:
其中TP1为内部DE信号,正常;TP1为内部pixclk,也正常,大概为33MHz;
但下面的rwClk[1]采集不到,它的信号才自于:
reg [1:0]rwClk;
always @(posedge pixclk or negedge rst_n) begin
if (!rst_n) rwClk <= 0;
else rwClk <= rwClk + 1;
end
也就是pixclk 正常,而rwClk[1]无信号输出,由于其他地方也出现这样的问题,所以专门做这个测试信号,来找问题,但还没找到,注意若用TP3输出HSYNC或VSYNC都正常。不知有没有碰到这样的状况?该怎么解决这种问题?
我一开始以为是逻辑分析仪的采样阈值什么的设置不对,后来发现用示波器也没有看到输出。
用了这个工具之后感觉稳定多了
看你这个代码,这么简单的寄存器,我觉得不存在pixclk有输出,而rwclk无输出的情况,或者说综合工具不会傻到把这种代码也优化掉,我记得lattice的综合工具是synplify,哦,忘了天杀的,它默认好像是LATTICE的LSE作为综合工具的,那玩意好多年不维护了,有些莫名其妙的问题也正常,麻烦的是你找不到解决方案的,建议你先综合工具改为synplify pro试试吧,
谢谢您的回答,虽然自己已解决了,还是赞赏一下老司机!