利用云盘做私人git中心库

[TOC]

使用场景

使用Dropbox和git来管理verilog项目已经有段日子了,总的说来这个方案跟预期的一样非常的好,做为一个git菜鸟来说这一步也算的上是很大的收获。

现在回想起来,之前是怎么管理verilog项目版本的呢?

Read More

FPGA怎么抑制地弹

[TOC]

什么是地弹

芯片的管脚与地之间有寄生电感,然后芯片的输出信号切换的时候,流到地端的电流产生突变,这样会在寄生电感上面产生压降。这个就是地弹。

地弹的大小由两个因素决定,一个就是寄生电感的大小,电感越大地弹就越大;另外一个就是信号切换的频率,信号切换的频率越大地弹的发生的频率也越大,特别是多个管脚信号(就比如数据总线)同时切换的时候这个地弹就很大了。

Read More

Vim笔记【整理】

[TOC]

模式

Vim的模式跟Emacs的模式是完全不同的概念,指的是对每个打开的窗口都有4个模式:

  • 普通:初始模式,可进行浏览,复制,删除这些操作;
  • 编辑:用来做文本输入;
  • 可视:用来进行快速的移动,选择文本;
  • 命令:退出、保存等操作;

这个应该是Vim最独特的一点了,正因为有编辑模式之外的模式,所以字母键就可以用来作快捷键,快捷键很是灵活简洁啊。

Read More

begin-end还是有用的

最近代码越写越长,感觉begin-end去掉倒也看着清爽许多。有一段这样的代码:

1
2
3
4
5
6
7
8
9
10
11
12
always @(posedge clk or negedge rst_n)
begin
if (!rst_n)
wave <= `LOW;
else if (en == `ON)
if (cnt == pPOS_HIGH)
wave <= `HIGH;
else if (cnt == pos_low)
wave <= `LOW;
else
wave <= `HIGH;
end

Read More

为什么数字信号不能直接远距离传输

特地去查了下相关的资料, 总结起来是两个原因:

  1. 带有直流分量, 传输的能量损耗更大;
  2. 频率成分太复杂, 频谱理论上是无穷大的, 传输中的高频信号衰减太厉害;

在看第一个原因的时候, 我想到的是曼彻斯特码, 232电平这些东西. 但后来想想这些其实已经是处理过的串行协议信号, 不是纯粹的类似并行读写时序信号这类”直接的数字信号”了.

然后又捎带了解了下传输线的一些常识:

  • 双绞线中一根导线上的电磁波是与另外一根导线上的电磁波相互抵消的, 用于传输差分信号, 有很强的抗干扰能力.
  • 同轴电缆用于传输单端信号, 可以远距离传输很高频率的信号.

这两种线传输的都已经是交流信号了.

不过频率低的”协议型”串行数字信号肯定也是可以用这两种线来传输的, PPS信号和IRIG-B直流码用同轴电缆我是见过的.

所以”为什么数字信号不能直接远距离传输”也是针对广义数字信号的, 还是取决于这种数字信号的类型和频率范围的.

pm

[TOC]

摘要

面向电磁式互感器的全场景试验系统是模拟电磁式互感器的变电站二次设备分布式测试系统。系统的子终端由数字控制模块、接口模块和模拟量输出模块构成。为了保证子终端能很好的保持模拟量输出的精度一致性和同步一致性,本系统利用DSP和FPGA器件实现了终端运行参数的管理系统,可以方便的实现终端运行参数的修改、保存和实时分配。

关键字:全场景试验系统;DSP;FPGA;Flash API;参数修正

Read More

真正的Synthesis Attributes用法

[TOC]

起因

最早的时候我在用SignalTap的时候,就发现Node Finder里面有Register这个选项,但是有些(其实可以算大部分)信号是没有的。后来网上找到的解释是这些没有输出到output的信号是会被综合工具优化掉的。

然后找到的解决方案是,把这些信号设置为输出,并在Assignment Editor里面设为virtual pin(因为没有这么多物理管脚的),这样就可以在Node Finder的Pins里面用了。

这个方法是有效的,主要我当时用的是Emacs。随着时间的推进,virtual pin自然是越来越多,今天翻看之前的一个工程,发现virtual pin就有2000多,很是骇人。

Read More