搜索
bottom↓
回复: 2

贡献一个verlog实现的4,7线性分组码编解码代码

[复制链接]

出0入0汤圆

发表于 2010-12-21 22:43:17 | 显示全部楼层 |阅读模式
/*
*编码器
* Licence CC
* Date:2010-12-21
* Auther:YaoH
*
* G Matrix
* 1101000
* 0110100
* 1110010
* 1010001
*
*/

module LBC4_7_ENC (DIN,COUT,CLK,RST);
//DIN数据入
//COUT编码后代码输出
//
//

input [3:0]DIN;
input CLK;
input RST;

output [6:0]COUT;

reg [6:0]ob;
reg [3:0]ib;

always@(posedge CLK)
begin
        if(RST==1'b1)
        begin
                ib=DIN;
                case(ib)
                        4'b0000: ob[6:0]<=7'b0000000;
                        4'b1000: ob[6:0]<=7'b1101000;
                        4'b0100: ob[6:0]<=7'b0110100;
                        4'b1100: ob[6:0]<=7'b1011100;
                        4'b0010: ob[6:0]<=7'b1110010;
                        4'b1010: ob[6:0]<=7'b0011010;
                        4'b0110: ob[6:0]<=7'b1000110;
                        4'b1110: ob[6:0]<=7'b0101110;
                        4'b0001: ob[6:0]<=7'b1010001;
                        4'b1001: ob[6:0]<=7'b0111001;
                        4'b0101: ob[6:0]<=7'b1100101;
                        4'b1101: ob[6:0]<=7'b0001101;
                        4'b0011: ob[6:0]<=7'b0100011;
                        4'b1011: ob[6:0]<=7'b1001011;
                        4'b0111: ob[6:0]<=7'b0010111;
                        4'b1111: ob[6:0]<=7'b1111111;
                endcase
        end
        else
        begin
                ob[6:0]<=7'b0000000;
        end       
end
assign COUT=ob;

endmodule


/*
*解码器
* Licence CC
* Date:2010-12-21
* Auther:YaoH China
*
* H Matrix
* 1001011
* 0101110
* 0010111
*
*
*/
module LBC4_7_DEC(CIN,DOUT,CLK,RST);
//CIN编码输入
//DOUT数据输出

input [6:0]CIN;
input CLK;
input RST;

output [3:0]DOUT;

reg [6:0]ib;
reg [3:0]ob;
reg [2:0]s;
reg [6:0]e;

always @(posedge CLK)
begin

ib=CIN;
//get S
s[0]=ib[0]+ib[3]+ib[5]+ib[6];
s[1]=ib[1]+ib[3]+ib[4]+ib[5];
s[2]=ib[2]+ib[4]+ib[5]+ib[6];

//get E
case(s)
        3'b000:e=7'b0000000;
        3'b100:e=7'b1000000;
        3'b010:e=7'b0100000;
        3'b001:e=7'b0010000;
        3'b110:e=7'b0001000;
        3'b011:e=7'b0000100;
        3'b111:e=7'b0000010;
        3'b101:e=7'b0000001;
endcase

ib=ib+e;
ob[3:0]=ib[3:0];
end

assign DOUT=ob;
endmodule

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

发表于 2010-12-21 22:51:03 | 显示全部楼层
thx

出0入9汤圆

发表于 2010-12-21 23:05:03 | 显示全部楼层
mark
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-24 15:19

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表