这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » FPGA » 基于Verilog的曼彻斯特编译码

共3条 1/1 1 跳转至

基于Verilog的曼彻斯特编译码

菜鸟
2017-06-29 15:25:06     打赏

曼彻斯特编码是非常常见的编码,网线就是采用这种编码。课本上说的“含有丰富的时钟信息”。

编码的步骤,是用01表示0,用10表示1。正是因为用跳变沿表示电平,使得它的频率是信号的两倍。

以下是编码的程序:


仿真的波形:


从波形可以看出,曼码可以避免连0或者连1。

这里有问题,我默认了时钟信号的频率是曼码频率的两倍,因为我必须利用时钟沿编码。不太清楚实际情况是什么样的,因为网上都是时钟信号频率等于编码频率,很奇怪。


下面介绍译码。译码的难度不是01以为0,10译为1,而是确定是吗时候开始译码。参考了一些书,他们是从检测到00或11后开始译码,因为00后一定是1,11后一定是0,所以就可以确认开始,然后两个为一组译码。

代码如下:



仿真结果:


由图中可以看出,译码从检测到11开始,因为11后面跟着0,所以译01,按顺序来是10,所以输出1,后面每隔两个码译一次,因为不能和前一个码混在一起。这样如果传输过程没有误码,后面再也不会出现翻译00或11的情况。在这里我故意弄出了个11,让fail错误信号置了1。




菜鸟
2018-12-15 11:23:59     打赏
2楼

感谢楼主分享。号召大家一起学习这种分享精神gfbfghyt二分二


菜鸟
2019-02-17 15:29:21     打赏
3楼

感谢楼主


共3条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]