完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
`timescale 1ns/100ps //测试文件
module Data_SCRAM_tb; wire [7:0] Data_out; wire k_flag; reg[7:0] Data_in; reg clk,rst; initial begin clk=0; rst=0; #2 rst=1; #1000 $stop(); end always #10 clk=~clk; always @(posedge clk or negedge rst) begin if(!rst) Data_in<=8'b00000000; else Data_in<=Data_in+8'b00000001; end Data_SCRAM Dtest(.Data_in(Data_in),.Data_out(Data_out),.clk(clk),.rst(rst),.k_flag(k_flag)); endmodule module Data_SCRAM(Data_in,Data_out,clk,rst,k_flag); //程序源码 input clk,rst; input [7:0] Data_in; output k_flag; output [7:0] Data_out; reg k_flag; reg [7:0]Data_out; reg [7:0] shift_reg; reg [15:0] lfsr; reg[7:0] scrambit; reg[15:0] bit_out; reg[15:0] lfsr_reg; integer i; task raoma; begin for(i=0;i<8;i=i+1) begin scrambit[i]=Data_in[i]^lfsr[15-i];end shift_reg[7:0]=scrambit[7:0]; end endtask task lfsr_shift; begin bit_out[0]=lfsr[8]; bit_out[1]=lfsr[9]; bit_out[2]=lfsr[10]; bit_out[3]=lfsr[11]^lfsr[8]; bit_out[4]=lfsr[12]^lfsr[9]^lfsr[8]; bit_out[5]=lfsr[13]^lfsr[10]^lfsr[9]^lfsr[8]; bit_out[6]=lfsr[14]^lfsr[11]^lfsr[10]^lfsr[9]; bit_out[7]=lfsr[15]^lfsr[12]^lfsr[11]^lfsr[10]; bit_out[8]=lfsr[0]^lfsr[13]^lfsr[12]^lfsr[11]; bit_out[9]=lfsr[1]^lfsr[14]^lfsr[13]^lfsr[12]; bit_out[10]=lfsr[2]^lfsr[15]^lfsr[14]^lfsr[13]; bit_out[11]=lfsr[3]^lfsr[15]^lfsr[14]; bit_out[12]=lfsr[4]^lfsr[15]; bit_out[13]=lfsr[5]; bit_out[14]=lfsr[6]; bit_out[15]=lfsr[7]; lfsr_reg[15:0]=bit_out[15:0]; end endtask always @(posedge clk or negedge rst) begin if(!rst) begin Data_out<=8'b00000000; lfsr<=16'hffff; end else begin Data_out<=shift_reg; lfsr<=lfsr_reg; end end always @(posedge clk) begin if(Data_in==8'b00111100||Data_in==8'b10111100||Data_in==8'b00011100||Data_in==8'b01011100 ||Data_in==8'b01111100||Data_in==8'b10011100||Data_in==8'b11011100||Data_in==8'b11111100 ||Data_in==8'b11110111||Data_in==8'b11111011||Data_in==8'b11111101||Data_in==8'b11111110) begin k_flag<=1; end else k_flag<=0; end always @(*) begin case(Data_in) 8'b10111100: //com begin shift_reg=Data_in; lfsr_reg='hffff; end 8'b00111100: //skp begin shift_reg=Data_in; lfsr_reg=lfsr; end 8'b11111111,8'b00010111,8'b11000000,8'b00010100,8'b10110010,8'b11100111,8'b00000010,8'b10000010, 8'b01110010,8'b01101110,8'b00101000,8'b10100110,8'b10111110,8'b01101101,8'b10111111,8'b01001010, 8'b01000101,8'b00000000,8'b00000001,8'b00000100,8'b00000101,8'b00001000,8'b00001001,8'b00001100, 8'b00001101,8'b00011100,8'b01011100,8'b01111100,8'b10011100,8'b11011100,8'b11111100,8'b11110111, 8'b11111011,8'b11111101,8'b11111110: //TSEQ/K_code begin shift_reg=Data_in; lfsr_shift; end default: begin raoma; lfsr_shift; end endcase end endmodule 求大神指导 |
|
相关推荐
1个回答
|
|
学习学习…………
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1476 浏览 1 评论
1266 浏览 0 评论
矩阵4x4个按键,如何把识别结果按编号01-16(十进制)显示在两个七段数码管上?
1471 浏览 0 评论
920 浏览 0 评论
2272 浏览 0 评论
1444 浏览 35 评论
5629 浏览 113 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-24 04:23 , Processed in 0.567008 second(s), Total 69, Slave 52 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号