欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > DOCX文档下载  

    一次输出8bitn4m序列Simulink仿真Verilog实现.docx

    • 资源ID:13124468       资源大小:1.04MB        全文页数:7页
    • 资源格式: DOCX        下载积分:4
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要4
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    一次输出8bitn4m序列Simulink仿真Verilog实现.docx

    1. 4阶m序列生成器一开始希望通过使用8个PN序列生成器并行实现,但是,每个生成器都不能得到后8个状态的值。由于后面的8bit PN序列,通过一个clk不可能通过状态转换实现,所以,只能通过计算得到利用Matlab计算得到后8位PN码与初始状态的关系,得到一个输出生成矩阵,使用生成矩阵与初始状态相乘,即可得到8位PN码同时,计算得到生成第8位PN码时移位寄存器的状态,得到一个初始值生成矩阵,使用此矩阵与初始状态相乘,即可得到生成第8位PN码时移位寄存器的状态,从而为下一次迭代提供初始状态。两个矩阵在PN码生成过程中保持不变,而初始状态得到不断更新,8位PN码不断输出。clc; clear;n = 4; % 4 orderbit = zeros(9,n2);bit(1,:) = 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1;initial = 1 0 0 0; for i = 2:9 % generate polynimial, 1 + x + x4, =x + x4, bit(i,:) = mod( bit(i-1,1:n)+bit(i-1,3*n+1:4*n), 2), bit(i-1,1:3*n);endgenmatrix = bit(2:9,3*n+1:4*n) % generate matrix remain the same for j = 1:1 mseq = mod(genmatrix*initial', 2) % Update initial temp = initial; for k = 1:n initial(k) = mod( sum(bit(9,(k-1)*n+1:k*n)*temp'), 2); endend输出生成矩阵为:genmatrix = 0 0 1 0 0 1 0 0 1 0 0 0 1 0 0 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0初始状态值生成矩阵为:gm_init = 1 1 0 1 1 0 1 0 0 1 0 1 1 1 1 0Verilog代码:timescale 1ns / 1ps/ Company: / Engineer: / / Create Date: 15:24:21 05/01/2012 / Design Name: / Module Name: PNcode8bit /module PNcode8bit( clk, rst, init, PNout );/ PN code n = 4, f(x) = 1 + x + x4/ Output 8 bit per clkparameter order = 4;input clk;input rst;outputorder-1 : 0init;output 7 : 0PNout;/ Output use registerreg 7 : 0PNout = 0;regorder-1 : 0init = 0;/ Generate matrix of output, use memoryregorder-1 : 0gm_out7 : 0;/ Generate matrix of initial state, use memoryregorder-1 : 0gm_init3 : 0;integer i, j;/ Memory initialization here, generate by Matlabinitialbegin$readmemb("gm_out.txt", gm_out, 7, 0);$readmemb("gm_init.txt", gm_init, 3, 0);end/always (posedge clk)if(rst = 1)beginPNout <= 8'b0;init <= 4'b1000;endelsebeginfor(i=0; i<8; i=i+1)PNouti <= (gm_outi3 & init3) (gm_outi2 & init2) (gm_outi1 & init1) (gm_outi0 & init0);for(j=0; j<4; j=j+1)initj <= (gm_initj0 & init0) (gm_initj1 & init1) (gm_initj2 & init2) (gm_initj3 & init3);endendmodule说明:1. 使用readmemb实现存储器数据的初始化,读取二进制内容,因为两个生成矩阵会比较大$readmemb("gm_out.txt", gm_out, 7, 0);"gm_out.txt"为读取的文件,gm_out为存放的存储器名字,7, 0为起始地址和结束地址,最好注明地址范围,不注明好像不太确定2. 按位与、按位异或 实现二进制矩阵乘法第一个for是输出生成矩阵(8x4)与初始值(4x1)相乘,得到8bit PN码的输出第二个for是初始状态值生成矩阵(4x4)与初始值(4x1)相乘,得到新的初始值gm_out.txt内容:没有空格00100100100010011011111101111110gm_init.txt内容:没有空格1101101001011110测试文件代码:timescale 1ns / 1ps/ Company: / Engineer:/ Create Date: 16:27:38 05/01/2012/ Design Name: PNcode8bit/ Module Name: E:/me/CAST/Project/FPGAcomm/PNcode8bit/PNcode8bit_tb.v/ Project Name: PNcode8bit/ /module PNcode8bit_tb;/ Inputsreg clk;reg rst;/ Outputswire 3:0 init;wire 7:0 PNout;/ Instantiate the Unit Under Test (UUT)PNcode8bit uut (.clk(clk), .rst(rst), .init(init), .PNout(PNout);initial begin/ Initialize Inputsclk = 0;rst = 1;/ Wait 100 ns for global reset to finish#100;rst = 0; / Add stimulus hereendalways beginforever #10 clk = !clk;endendmoduleModelSim仿真结果局部放大图,绿色竖线为周期间隔,一个周期的PN码为:00107 / 7文档可自由编辑打印

    注意事项

    本文(一次输出8bitn4m序列Simulink仿真Verilog实现.docx)为本站会员(doc321)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开