riple

Stay Hungry, Stay Foolish.

JTAG协议学习笔记(续二)(带输出的TAP状态机代码)

0
阅读(3797)

TAP Controller是用来解析JTAG协议的状态机,它的状态图如下:

今天用StateCAD画了一下TAP Controller的状态图,顺便生成了两个HDL文件,一个VHDL的,一个verilog的。大家感兴趣的话,在这里rar可以下载。

由于没有明确应用,这两个文件都没有输出。如果大家有兴趣的话,可以根据自己的需要添加输出。我以后也会上传带输出版本的HDL文件。

VHDL版的采用了枚举方式给状态赋值,verilog版的采用了二进制编码(没有采用格雷码赋值)。如果用于FPGA综合的话,可以在综合工具的状态机编码选项中用“独热”(奇怪的汉译--one hot)方式编码。

如果大家有进一步兴趣的话,可以比较一下两个文件,看看VHDL和verilog到底有什么区别,有什么共同点。我的看法是:目标都是描述逻辑电路,不会有根本的区别。所以,学习HDL语言,一定要把电路形态时刻放在心上,生成正确的RTL是根本目标,当然好的编程风格也是不可或缺的。

再者,这两个文件中对于状态机的描述也可以借鉴,体现了状态赋值和跳转逻辑分离的编码原则。

控制输出是状态机的根本功能,下面是带状态信号灯输出的版本。大家可以分析一下状态机输出锁存是怎样实现的。

rar

Baidu
map