1857|3

186

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

各位大哥 能帮看下这段程序啥意思 [复制链接]

module demux(
        input clk_108m,
        input clk_27m,
        input[7:0] vin_data,
        output reg[7:0] vout_data_ch0,
        output reg[7:0] vout_data_ch1,
        output reg[7:0] vout_data_ch2,
        output reg[7:0] vout_data_ch3
);
reg[1:0] vin_cnt;
reg[7:0] data0,data1,data2,data3;
reg[7:0] data0_d0;
reg[7:0] data1_d0;
reg[7:0] data2_d0;
reg[7:0] data3_d0;
reg[7:0] data0_d1;
reg[7:0] data0_d2;
reg[7:0] data0_d3;
reg[7:0] data0_d4;
reg[3:0] data0_id;
always@(posedge clk_108m)
begin
        vin_cnt <= vin_cnt + 2'd1;
end

always@(posedge clk_108m)
begin
        case(vin_cnt)
                2'd0:
                        begin
                                data0 <= vin_data;
                                data1 <= data1;
                                data2 <= data2;
                                data3 <= data3;
                        end
                2'd1:
                        begin
                                data0 <= data0;
                                data1 <= vin_data;
                                data2 <= data2;
                                data3 <= data3;
                        end
                2'd2:
                        begin
                                data0 <= data0;
                                data1 <= data1;
                                data2 <= vin_data;
                                data3 <= data3;
                        end
                2'd3:
                        begin
                                data0 <= data0;
                                data1 <= data1;
                                data2 <= data2;
                                data3 <= vin_data;
                        end
                default:
                        begin
                                data0 <= data0;
                                data1 <= data1;
                                data2 <= data2;
                                data3 <= data3;
                        end
        endcase
end

always@(posedge clk_27m)
begin
        data0_d0 <= data0;
        data1_d0 <= data1;
        data2_d0 <= data2;
        data3_d0 <= data3;
        data0_d1 <= data0_d0;
        data0_d2 <= data0_d1;
        data0_d3 <= data0_d2;
        data0_d4 <= data0_d3;
end

always@(posedge clk_27m)
begin
        if(data0_d4 == 8'hff && data0_d3 == 8'h00 && data0_d2 == 8'h00)
                data0_id <= data0_d1[3:0];
        else
                data0_id <= data0_id;               
end
always@(posedge clk_27m)
begin
        case(data0_id)
                4'd0:
                        begin
                                vout_data_ch0 <= data0_d0;
                                vout_data_ch1 <= data1_d0;
                                vout_data_ch2 <= data2_d0;
                                vout_data_ch3 <= data3_d0;
                        end
                4'd1:
                        begin
                                vout_data_ch0 <= data3_d0;
                                vout_data_ch1 <= data0_d0;
                                vout_data_ch2 <= data1_d0;
                                vout_data_ch3 <= data2_d0;
                        end
                4'd2:
                        begin
                                vout_data_ch0 <= data2_d0;
                                vout_data_ch1 <= data3_d0;
                                vout_data_ch2 <= data0_d0;
                                vout_data_ch3 <= data1_d0;
                        end
                4'd3:
                        begin
                                vout_data_ch0 <= data1_d0;
                                vout_data_ch1 <= data2_d0;
                                vout_data_ch2 <= data3_d0;
                                vout_data_ch3 <= data0_d0;
                        end
                default:
                        begin
                                vout_data_ch0 <= data0_d0;
                                vout_data_ch1 <= data1_d0;
                                vout_data_ch2 <= data2_d0;
                                vout_data_ch3 <= data3_d0;
                        end
        endcase
end

endmodule
此帖出自FPGA/CPLD论坛

最新回复

数码管移位显示                          详情 回复 发表于 2014-6-26 17:05
点赞 关注
 

回复
举报

1119

帖子

0

TA的资源

一粒金砂(中级)

沙发
 
过来看看~~~~~~~~~~
此帖出自FPGA/CPLD论坛
 
 

回复

2856

帖子

260

TA的资源

五彩晶圆(高级)

板凳
 
数码管移位显示                        
此帖出自FPGA/CPLD论坛

点评

这个是对BT656数据流的预处理。。但是我不知道他是咋处理的  详情 回复 发表于 2014-6-27 10:54
 
 
 

回复

186

帖子

0

TA的资源

一粒金砂(中级)

4
 
ltbytyn 发表于 2014-6-26 17:05
数码管移位显示

这个是对BT656数据流的预处理。。但是我不知道他是咋处理的
此帖出自FPGA/CPLD论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表