- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
通信系统中数据交织器的设计2
通信系统中数据交织器的设计
实验内容
PN码发生器产生串行数据,按行写入一n列m行的RAM中,写满后按列读出。如下图所示:
实验原理
本实验主要可以分为三大部分:数据输入地址、数据输出地址以及RAM。在地址部分,有两种方案可以实现,一是输入顺序地址,输出乱序地址,二是输入乱序地址,输出顺序地址,本实验采用前一种方案;而RAM的部分,可以采用quartus自带的模块“lpm_ram_dp”双端输入输出来做ram,而用verilogHDL语言的话,可以利用reg型数据:reg [n:0]mem[n:0]格式实现n*n的memory,对于本实验,也可以直接定义一个64位reg型数据来寄存数据,本实验采用后者来实现RAM。下面是各部分的实现原理:
输入地址的产生
利用时钟clk做激励源,采用加法器,地址adressoutin[5:0]从0到63循环赋值,这样输入的数据data就可以如图1所示从地址0开始输入,到地址63结束一次循环;
输出地址的产生
0 8 16 24 32 40 48 56 1 9 17 25 33 41 49 57 2 10 18 26 34 42 50 58 3 11 19 27 35 43 51 59 4 12 20 28 36 44 52 60 5 13 21 29 37 45 53 61 6 14 22 30 38 46 54 62 7 15 23 31 39 47 55 63 数据输出按行地址排序,比如第一排 输出为“0、8、16、24、32、40、48、56”,输出地址adressout同样利用时钟clk做激励,加法器产生。观察图1可以发现,加法器每输出8个地址,首地址addressout就是上一行地址数值减55,比如:第一行地址输完,最后一位是56,那么输出第二行时,首地址adressout=56-55=1,如此类推可以得出每一行地址的首地址数值,当输出地址为63并且累加次数为56时,表明一次地址输出结束。
RAM
本实验采用两个64位reg型数据mem1[63:0]、mem1[63:0]实现数据的交替存储,只需对mem1的第i位或mem2的第j位赋值就可以实现RAM功能。开始时,写入数据到mem1,当写满64位后,开始对mem2赋值同时读取mem1的数据,同理,mem2写满64位后开始对mem1赋值同时读取mem2的数据。
本实验分两个时钟,一个是pn码发生器的数据产生时钟clk,另一个是地址产生及数据读取时钟nclk,clk与nclk反相,这样可以降低数据出错的概率。
实验源程序
1时钟信号clk与nclk的产生
module clk(clock,clear,clk,nclk);
input clock;
input clear;
output clk;
output nclk;
reg clk;
reg nclk;
reg [30:0]i1;
always @(posedge clock or posedge clear)
begin
if(clear)
begin
i1=0;
clk=1;
nclk=0;
end
else if(i1==13499) ;
begin
clk=~clk;
nclk=~nclk;
i1=0;
end
else
begin
i1=i1+1;
end
end
endmodule
2)输入地址产生
module wdadress(clk,adressin,wr);
input clk;
output adressin;
output wr;
reg [0:0]wr;
reg [5:0]adressin;
always @(posedge clk)
begin
if(adressin==63)
begin
adressin=0;
wr=~wr;
end
else
adressin=adressin+1;
end
endmodule
3)输出地址的产生
module rdadress(clk,adressout);
input clk;
output adressout;
reg [5:0]adressout;
reg [3:0]i;
reg [5:0]j;
initial
begin
i=0;
j=0;
adressout=0;
end
always @(posedge clk)
begin
if(i==7j==56)
begin
i=0;
j=0;
adressout=0;
您可能关注的文档
最近下载
- 基于Android技术的网上商城系统的设计与实现( word 版).docx VIP
- 糊树脂分厂工艺操作规程3.doc VIP
- 《编制专业质量检验计划》24.4-编制专业质量检验计划.ppt VIP
- 大作业:如何理解“作风建设永远在路上,永远没有休止符”?我们应如何加强作风建设?.pdf VIP
- 新版PFMEA第五版实例.xls VIP
- 《元史·八思巴传》原文,注释,译文,赏析.docx VIP
- 新教材人教版高中生物选择性必修2生物与环境全册各章节 学案讲义(知识点汇总及配套习题).pdf VIP
- 项贤明主编马工程教材《教育学原理》第九章教师与学生.ppt VIP
- 2025-2026学年高中体育与健康必修 全一册人教版(2019)教学设计合集.docx
- 集成电路制造技术——原理与工艺(第3版)课件 第3章 热氧化.pptx
原创力文档


文档评论(0)