Verilog 代码编写 FPGA 数字CMI编码

news/2025/2/6 3:50:59/

题目:

        试用 FPGA 实现如下 32bit 数据 32‘hCA535A7E CMI 码,FPGA 输入时钟 30M,码流输出时钟为 5M,给出代码并仿真。
分析:
       为了提高通信系统的有效性,一般需要对将要发送的数据进行 信源编码 ,通信信号信源编码的主要任务有两个:一是将信源送出的模拟信号数字化,即 A/D变换,用一定的数字脉冲组合来表示信号的一定幅度。通常将这种过程称为脉冲编码调制(PCM),简称为编码。二是提高信号传输的有效性,进行压缩编码。
         编码信号反转码(CMI 码) :编码信号反转码(CMI 码)是由 CCITT 建议、适合于光信道传输的码型之一。其具体的编码规则是:二进制代码中的“1”码交替 地用 “11”和“00”表示;“0”码则固定地用“01”表示 。CMI 码是一种二元码。CMI 码的特点是电平随二进制数码依次跳变,因而便于恢复定时信号,尤其当用负跳变直接提取定时信号时,不会产生相位不确定问题。其具有检测错误的能力,因为在这种传输码中,只有 00、11、01 这三种码组,而没有 10 这一码组。编码规则如图所示:

       为实现题目所需功能,需要设计一个编码模块,对输入数据进行编码,转换规则按照 CMI 的编码规则来编写,注意转码时钟的处理。由上图可知,一位的输入码字将编码为两位的码字,速率为原来的两倍。按照一位一位的转换,还需要一个将并行输入数据转为串行 的处理方法,这样就可以对每一位进行转换,完成编码过程。
       主要设计框图如下所示:

        设计代码如下:

//CMI 编码:
//二进制代码中的"1"码交替地用 "11"和"00"表示;"0"码则固定地用"01"表 示
module CMIcode(input clk,input rst,input [31:0]data,output [1:0]cmicode,output signal
);
parameter clkfreq=30000000, //系统时钟 30MHzdatafreq=5000000,freqcnt=clkfreq/datafreq;
reg dataclk; //码流时钟
reg [3:0] cnt;
reg [7:0] N;
reg [1:0] cmicode;
reg signal;
reg DATA;
reg [4:0] i;
reg [4:0] bitcnt;
//分频产生 5MHz 时钟
always @(posedge clk or negedge rst) beginif(!rst) begincnt<=1'b0;dataclk<=1'b0;endelse if(cnt==(freqcnt>>1)-1'b1) begindataclk<=~dataclk;cnt<=1'b0;endelsecnt<=cnt+1'b1;
end
always@(posedge dataclk or negedge rst) begin if(!rst) begini<=5'd31;endelse begini<=i-1'b1;if(i==1'b0) begini<=5'd31;endend
end
always@(posedge clk or negedge rst) begin if(!rst) beginDATA<=1'b0;endelse beginDATA<=data[i];end
end
always@(posedge dataclk or negedge rst) beginif(!rst) beginN<=0;cmicode<=0;endelse beginif(DATA==1'b0) begincmicode<=2'b01;endelse beginN<=N+1'b1;if(N[0]==1'b0) begincmicode<=2'b11;endelse begincmicode<=2'b00;end if(N==32) beginN<=1'b0;endend end
end
always@(posedge dataclk or negedge rst) beginif(!rst) beginsignal<=1'b0;bitcnt<=1'b0;endelse beginbitcnt<=bitcnt+1'b1;if(bitcnt==5'd31) beginsignal<=1'b1;bitcnt<=1'b0;endelse beginsignal<=1'b0;endend
end
endmodule
       仿真的部分结果如下所示:
        由图可知,输入数值 32‘hCA535A7E 写成二进制形式后,被编码为 64 位的新二进制数,编码规则满足 CMI 编码,且在最后一位编码完毕后产生了脉冲,与理论结果一致,仿真正确。如按照一定速率传入所需要的输入数据,则可实现串行的 CMI 编码输出。
        仿真代码如下:
`timescale 1ns / 1ps
module CMIcode_tb();
reg clk;
reg rst;
reg [31:0] data;
wire [1:0] cmicode;
wire signal;
always #16.67 clk<=~clk;
initial beginclk<=1'b0;rst<=1'b0;data<=32'b0;#20 rst<=1'b1;#20 data<=32'hCA535A7E;end
CMIcode code(.clk(clk),.rst(rst),.data(data),.cmicode(cmicode),.signal(signal)
);
endmodule


http://www.ppmy.cn/news/568505.html

相关文章

cmi编码实验_实验二 - 光纤通信系统线路码型CMI - 编译码实验 - 图文 -

实验二 光纤通信系统线路码型CMI 编译码实验 一、实验目的 1、了解线路码型在光纤传输系统中的作用 2、掌握线路码型CMI码的编译码过程以及电路实现原理 二、实验内容 1、验证符合光纤传输系统的线路码型 2、观察线路码型的编译码过程 三、实验仪器 1、ZY12OFCom23BH1型光纤通信…

cmi计算机管理教学全称,计算机管理教学(CMI)的设计和进展.pdf

2013 年第 5 期 信息通信 2013 (总第 127 期) INFORMATION & COMMUNICATIONS (Sum. No 127) ( ) 计算机管理教学CMI 的设计和进展 李志鹏 公安消防部队昆明指挥学校教务处,云南昆明650208 ) 摘要:计算机管理教学又称CMI ,在计算机辅助教学日益广泛的今天,其发展和应用也…

cai和cmi是构成计算机辅助教育,CAI、CBE、CMI三者之间的关系?

CAI、CBE、CMI三者之间的关系&#xff1f; 来源:互联网 宽屏版 评论 2010-07-16 16:37:24 分类: 教育/科学 参考答案: CBE、CAI与CMI CBE(Computer Based Education)&#xff1a;一般把计算机在教育领域的各种应用统称为计算机辅助教育(简称CBE)。 CAI(Computer Assisted Ins…

cmi编码实验_实验的CMI码型变换实验的

实用标准文案 精彩文档 实验 CMI 码型变换实验 一、实验原理和电路说明 在实际的基带传输系统中&#xff0c; 并不是所有码字都能在信道中传输。 例如&#xff0c; 含有丰富直流和 低频成分的基带信号就不适宜在信道中传输&#xff0c; 因为它有可能造成信号严重畸变。 同时&am…

cmi码型变换matlab程序_CMI码形变换实验完整实验报告.doc

CMI码形变换实验完整实验报告 CMI码形变换实验 一&#xff0e;实验仪器 1 JH5001通信原理综合实验系统 2 20Mhz双踪示波器 二&#xff0e;实验目的 1 掌握CMI码的编码规则 2 熟悉CMI编译码系统的特性 三&#xff0e;实验原理 编码框图如下&#xff1a; 译码模块组成框图如下&am…

cmi编码实验_CMI码型变换试验

CMI 码型变换实验 一.实验目的 1 .掌握 CMI 码的编码规则 2 .熟悉 CMI 编译码系统的特性 二.实验内容 1 . CMI 码编码规则测试; 2 . 1 码状态记忆测量; 3 . CMI 码解码波形测试; 4 . CMI 码编码加错波形观测; 5 . CMI 码检错功能测试; 6 . CMI 译码同步观测; 7…

cmi编码实验_CMI码型变换实验

CMI 码型变换实验 一、实验原理和电路说明 在实际的基带传输系统中, 并不是所有码字都能在信道中传输。 例如, 含有丰富直流和 低频成分的基带信号就不适宜在信道中传输, 因为它有可能造成信号严重畸变。 同时, 一般 基带传输系统都从接收到的基带信号流中提取收定时信号,…

cmi码型变换matlab程序_cmi码码型变换

3. 观察 HDB3 码、AMI 码、BNRZ 码正、负极性波形。 4. 观察 NRZ 码、RZ 码、BRZ 码、BNRZ 码、AMI 码、CMI 码、HDB3 码、BPH 码经过码型反变换 后...... 2、 掌握常用基带传输码型的编码规则。 3、 掌握常用 CPLD 实现码型变换的方法。 二、 实验内容 1、 观察 NRZ 码、RZ 码…