在程序里使用一个分频后的时钟信号CLK(从另一片芯片给过来的),但是使用的时候,在某一特定条件下我要拉高或者拉低这条时钟线,想了一下需要定义CLK为inout信号,才能在程序里对其操作。这样会有几个问题:
1.定义某条件拉高时钟线,如果我的CPLD驱动能力没有前面的芯片强,会不会出现拉不上去的情况;
2.定义某条件拉低时钟线的话,如果正好在CLK的高电平周期,会不会灌到CPLD管脚一个比较大的电流,带来一定的风险;
最后再问一下这样写为什么会出现一个奇怪的仿真结果,低电平的半周期是不定的状态:
assign clk=clk_reg;
assign clk_reg=flag?1:clk_reg; (其中flag是触发信号,clk是时钟信号,clk_reg是中间过渡信号)
希望各位大神给解答一下,现在已经逻辑思维混乱了,多谢!!!
此帖出自
小平头技术问答
没有太明白您的意思。在一定条件下我需要拉住这条时钟线(CLK信号),让发出这个时钟的芯片知道我这里出现问题,那么如果我只把CLK设置为输入,如何“拉住”这条线呢?
但如控制中确实需要“in”和“out”的切换则另当别论,这时应注意避免多个“out”间的冲突,即使发生冲突也应在电路上有所保护。
前级是什么电路,需要通过把它的输出拉住来通知它出问题了,没有别的方式吗?
感谢您的说明和提醒,我会注意的。
前一级是经过隔离的CPU信号,之前想当然的以为驱动很好做,没有预留其他的线路做反馈,现在板子已经做好,没有改版机会,而且驱动没办法进行底层修改,能做的就只有拉住时钟线这一种方式了,哎,说多了都是泪啊
一周热门 更多>