[TOC]
背景
我写了一个批量文件命名的Python脚本,可以对脚本所在的路径下的文件重新进行增量式命名。内容很简单,但是目前只能把脚本复制到需要进行文件重命名的文件夹下面运行,比较麻烦。
[TOC]
使用Dropbox和git来管理verilog项目已经有段日子了,总的说来这个方案跟预期的一样非常的好,做为一个git菜鸟来说这一步也算的上是很大的收获。
现在回想起来,之前是怎么管理verilog项目版本的呢?
[TOC]
芯片的管脚与地之间有寄生电感,然后芯片的输出信号切换的时候,流到地端的电流产生突变,这样会在寄生电感上面产生压降。这个就是地弹。
地弹的大小由两个因素决定,一个就是寄生电感的大小,电感越大地弹就越大;另外一个就是信号切换的频率,信号切换的频率越大地弹的发生的频率也越大,特别是多个管脚信号(就比如数据总线)同时切换的时候这个地弹就很大了。
最近的项目里写了一个管脚信号滤波的模块,可以设置延迟参数,主要是想用来做一个自制协议的信号解码的前置滤波,里面的主体是这个状态机:
最近代码越写越长,感觉begin-end去掉倒也看着清爽许多。有一段这样的代码:
|
|
特地去查了下相关的资料, 总结起来是两个原因:
在看第一个原因的时候, 我想到的是曼彻斯特码, 232电平这些东西. 但后来想想这些其实已经是处理过的串行协议信号, 不是纯粹的类似并行读写时序信号这类”直接的数字信号”了.
然后又捎带了解了下传输线的一些常识:
这两种线传输的都已经是交流信号了.
不过频率低的”协议型”串行数字信号肯定也是可以用这两种线来传输的, PPS信号和IRIG-B直流码用同轴电缆我是见过的.
所以”为什么数字信号不能直接远距离传输”也是针对广义数字信号的, 还是取决于这种数字信号的类型和频率范围的.
[TOC]
最早的时候我在用SignalTap的时候,就发现Node Finder里面有Register这个选项,但是有些(其实可以算大部分)信号是没有的。后来网上找到的解释是这些没有输出到output的信号是会被综合工具优化掉的。
然后找到的解决方案是,把这些信号设置为输出,并在Assignment Editor里面设为virtual pin(因为没有这么多物理管脚的),这样就可以在Node Finder的Pins里面用了。
这个方法是有效的,主要我当时用的是Emacs。随着时间的推进,virtual pin自然是越来越多,今天翻看之前的一个工程,发现virtual pin就有2000多,很是骇人。