曼彻斯特解码

2024-02-24 06:40
文章标签 解码 曼彻斯特

本文主要是介绍曼彻斯特解码,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

曼彻斯特解码 verilog

`timescale 1ns / 1ps
//
module decode
(input dou_sys_clk,input sys_rst_n,input sys_clk,input data_man,output wire data_out
);   reg start_flag  ; // 开始解码标志
reg decode_flag ; // 正常解码标志,一次刚好取到一个码
reg [1:0]data_fifo   ; // 暂存2位曼彻斯特码用以解码
reg error       ; // 曼彻斯特码不符合正确信息报1
reg data_out_reg;always @(posedge dou_sys_clk )  begindata_fifo <= {data_fifo[0],data_man};if(data_fifo == 2'b00 || data_fifo == 2'b11)beginstart_flag <= 1'b1;end
endalways @(posedge dou_sys_clk) beginif(!sys_rst_n) beginstart_flag <= 1'b0;decode_flag <= 1'b0;error <= 1'b0;endelse beginif(start_flag == 1'b1)decode_flag <= !decode_flag;end
endalways @(posedge decode_flag) beginif(!sys_rst_n) beginstart_flag <= 1'b0;decode_flag <= 1'b0;error <= 1'b0;endelse beginif ( data_fifo == 2'b01) begindata_out_reg <= 1'b0;error        <= 1'b0;endelse if( data_fifo == 2'b10) begindata_out_reg <= 1'b1;error        <= 1'b0;endelse if(data_fifo == 2'b11 || data_fifo == 2'b00) beginerror        <= 1'b1;endelse begindata_out_reg <= data_out_reg;endend
endassign data_out = data_out_reg;endmodule

[tb]

`timescale 1ns / 1ps
//
module tb_decode();
reg dou_sys_clk;
reg sys_rst_n;
reg data_man;
wire data_out;
reg [4:0] count;
reg sys_clk = 0;
reg [31:0] data ;
initial begindou_sys_clk = 0;sys_rst_n = 0;
#12 sys_rst_n = 1;end
always@(*)beginif(!sys_rst_n)data <= 32'b0;elsedata <= 32'b10011001011001100101100110010101;
endalways @(posedge dou_sys_clk or negedge sys_rst_n) beginif (!sys_rst_n) begincount <= 31;data_man <= 0; end  else beginif(count == 0) count <= 31;else data_man <= data[count];count <= count - 1;   end
endalways #5 dou_sys_clk = !dou_sys_clk;
always #10 sys_clk = !sys_clk;decode u_decode(.dou_sys_clk(dou_sys_clk),.sys_clk(sys_clk),.sys_rst_n(sys_rst_n),.data_man(data_man),.data_out(data_out)
);   
endmodule

[运行结果]
在这里插入图片描述

这篇关于曼彻斯特解码的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/741256

相关文章

FFmpeg系列-视频解码后保存帧图片为ppm

在正常开发中遇到花屏时怎么处理呢?可以把解码后的数据直接保存成帧图片保存起来,然后直接看图片有没有花屏来排除是否是显示的问题,如果花屏,则代表显示无问题,如果图片中没有花屏,则可以往显示的方向去排查了。 void saveFrame(AVFrame* pFrame, int width, int height, int iFrame){FILE *pFile;char szFilename[

【Hot100】LeetCode—394. 字符串解码

目录 1- 思路栈实现+四种情况处理 2- 实现⭐394. 字符串解码——题解思路 3- ACM 实现 原题链接:394. 字符串解码 1- 思路 栈实现+四种情况处理 ① 遇到数字,进行倍数相加 、②遇到左括号,压栈之前的元素、③遇到右括号弹出,栈进行拼接、④否则遇到字母,直接拼接在 res通过栈,实现先进后出的思想 对于输入 3[a2[c]] 的输入,在读到 3[得

libmad音频解码库-Linux交叉编译移植

下载并解压libmad-0.15.1b.tar.gz 下载链接:https://downloads.sourceforge.net/mad/libmad-0.15.1b.tar.gz $tar -xvf libmad-0.15.1b.tar.gz$cd libmad-0.15.1b 1、先执行下面的命令:这条命令是为了适配高版本的gcc,因为高版本的gcc已经将-fforce-mem去除了:

通过 Flash 让所有浏览器支持 WebP 格式图像解码

http://www.guao.hk/tag/webp#userconsent# http://www.etherdream.com/WebP/

优化采样参数提升大语言模型响应质量:深入分析温度、top_p、top_k和min_p的随机解码策略

当向大语言模型(LLM)提出查询时,模型会为其词汇表中的每个可能标记输出概率值。从这个概率分布中采样一个标记后,我们可以将该标记附加到输入提示中,使LLM能够继续输出下一个标记的概率。这个采样过程可以通过诸如 temperature 和 top_p 等参数进行精确控制。但是你是否曾深入思考过temperature和top_p参数的具体作用? 本文将详细解析并可视化定义LLM输出行为的

Mina 2 编码解码协议 及 已经实现通信的完整代码

使用mina2通信的完整代码朋友们可以去http://download.csdn.net/detail/u013378306/8756861下载 下面只对编解码协议进行解释 package lhy.charest; import java.nio.ByteOrder; import java.nio.charset.Charset; import lhy.clie

ffmpeg h264解码, 屏蔽因为网络丢包等各种原因导致的花屏帧

ffmpeg h264解码, 屏蔽因为网络丢包等各种原因导致的花屏帧  ---->看来问题只能这样解决了,现在还要多测测,防止产生新的问题。目前来看,对现有代码没有影响,花屏的帧直接屏蔽掉了。 思路: 问了下机顶盒方面h264解码的,他们用的是硬件解码,他们做到不花屏的方法就是简单的设置了一个硬件解码提供的接口:设置了错误处理模式。 我想这个错误处理模式肯定对那些错误的帧直接屏

C++ | Leetcode C++题解之第394题字符串解码

题目: 题解: class Solution {public:string src; size_t ptr;int getDigits() {int ret = 0;while (ptr < src.size() && isdigit(src[ptr])) {ret = ret * 10 + src[ptr++] - '0';}return ret;}string getString()

Golang | Leetcode Golang题解之第394题字符串解码

题目: 题解: var (src stringptr int)func decodeString(s string) string {src = sptr = 0return getString()}func getString() string {if ptr == len(src) || src[ptr] == ']' {return ""}cur := src[ptr]repTi

Python | Leetcode Python题解之第394题字符串解码

题目: 题解: class Solution:def decodeString(self, s: str) -> str:stk = []for ss in s:# 不是"]",照单全收,进栈if ss!="]":stk.append(ss)else:# 遇到"]",把"[]"裹起来的单词取出,记为wordword = ""while stk[-1]!="[":word = stk.pop