qam 64的设计
module qam64(x,out,clk,clk1,rst);
input x,clk,clk1,rst;
output [18:0] out;
reg [2:0] count;
reg [5:0] reg1,reg2;
reg [18:0] ssig,csig;
reg [15:0] sine;
reg [15:0] cosine;
always @(posedge clk)
begin
if(!rst)
begin reg1<=0;reg2<=0;count<=0;end
else begin reg1[5:0]<={reg1[4:0],x};count<=count+1;
if(count==3'b110)
begin reg2<=reg1;count<=0;end
else reg2<=reg2;
end
end
always@(posedge clk1) begin
if(!rst)
begin csig<=0;ssig<=0;end
else begin
case(reg2)
6'b000000://cosine+sine
begin csig[18:16]<=cosine[15:13];csig[15:0]<=cosine[15:0];
ssig[18:16]<=sine[15:13];ssig[15:0]<=sine[15:0];end
6'b000001://cosine+2sine
begin csig[18:16]<=cosine[15:13];csig[15:0]<=cosine[15:0];
ssig[18:17]<=sine[15:14];ssig[16:1]<=sine[15:0];ssig[0]<=0;end
6'b000010://cosine+3sine
begin csig[18:16]<=cosine[15:13];csig[15:0]<=cosine[15:0];
ssig[18]<=sine[15];ssig[17:2]<=sine[15:0];ssig[1:0]<=0;end
6'b000011://cosine+4sine
begin csig[18:16]<=cosine[15:13];csig[15:0]<=cosine[15:0];
ssig[18:3]<=sine[15:0];ssig[2:0]<=0;end
6'b000100://2cosine+sine
begin csig[18:17]<=cosine[15:14];csig[16:1]<=cosine[15:0];csig[0]<=0;
ssig[18:16]<=sine[15:13];ssig[15:0]<=sine[15:0];end
6'b000101://2cosine+2sine
begin csig[18:17]<=cosine[15:14];csig[16:1]<=cosine[15:0];csig[0]<=0;
ssig[18:17]<=sine[15:14];ssig[16:1]<=sine[15:0];ssig[0]<=0;end
6'b000110://2cosine+3sine
begin csig[18:17]<=cosine[15:14];csig[16:1]<=cosine[15:0];csig[0]<=0;
ssig[18]<=sine[15];ssig[17:2]<=sine[15:0];ssig[1:0]<=0;end
6'b000111://2cosine+4sine
begin csig[18:17]<=cosine[15:14];csig[16:1]<=cosine[15:0];csig[0]<=0;
ssig[18:3]<=sine[15:0];ssig[2:0]<=0;end
6'b001000://3cosine+sine
begin csig[18]<=cosine[15];csig[17:2]<=cosine[15:0];csig[1:0]<=0;
ssig[18:16]<=sine[15:13];ssig[15:0]<=sine[15:0];end
6'b001001://3cosine+2sine
begin csig[18]<=cosine[15];csig[17:2]<=cosine[15:0];csig[1:0]<=0;
ssig[18:17]<=sine[15:14];ssig[16:1]<=sine[15:0];ssig[0]<=0;end
6'b001010://3cosine+3sine
begin csig[18]<=cosine[15];csig[17:2]<=cosine[15:0];csig[1:0]<=0;
ssig[18]<=sine[15];ssig[17:2]<=sine[15:0];ssig[1:0]<=0;end
6'b001011://3cosine+4sine
begin csig[18]<=cosine[15];csig[17:2]<=cosine[15:0];csig[1:0]<=0;
ssig[18:3]<=sine[15:0];ssig[2:0]<=0;end
6'b001100://4cosine+sine
begin csig[18:3]<=cosine[15:0];csig[2:0]<=0;
ssig[18:16]<=sine[15:13];ssig[15:0]<=sine[15:0];end
8'b001101://4cosine+2sine
begin csig[18:3]<=cosine[15:0];csig[2:0]<=0;
ssig[18:17]<=sine[15:14];ssig[16:1]<=sine[15:0];ssig[0]<=0;end
6'b001110://4cosine+3sine
begin csig[18:3]<=cosine[15:0];csig[2:0]<=0;
ssig[18]<=sine[15];ssig[17:2]<=sine[15:0];ssig[1:0]<=0;end
6'b001111://4cosine+4sine
begin csig[18:3]<=cosine[15:0];csig[2:0]<=0;
ssig[18:3]<=sine[15:0];ssig[2:0]<=0;end
8'b010000://cosine-sine
begin csig[18:16]<=cosine[15:13];csig[15:0]<=cosine[15:0];
ssig[18:16]<=!sine[15:13];ssig[15:0]<=!sine[15:0];end
6'b010001://cosine-2sine
begin csig[18:16]<=cosine[15:13];csig[15:0]<=cosine[15:0];
ssig[18:17]<=!sine[15:14];ssig[16:1]<=!sine[15:0];ssig[0]<=0;end
6'b010010://cosine-3sine
begin csig[18:16]<=cosine[15:13];csig[15:0]<=cosine[15:0];
ssig[18]<=!sine[15];ssig[17:2]<=!sine[15:0];ssig[1:0]<=0;end
6'b010011://cosine-4sine
begin csig[18:16]<=cosine[15:13];csig[15:0]<=cosine[15:0];
ssig[18:3]<=!sine[15:0];ssig[2:0]<=0;end
6'b010100://2cosine-sine
begin csig[18:17]<=cosine[15:14];csig[16:1]<=cosine[15:0];csig[0]<=0;
ssig[18:16]<=!sine[15:13];ssig[15:0]<=!sine[15:0];end
6'b010101://2cosine-2sine
begin csig[18:17]<=cosine[15:14];csig[16:1]<=cosine[15:0];csig[0]<=0;
ssig[18:17]<=!sine[15:14];ssig[16:1]<=!sine[15:0];ssig[0]<=0;end
6'b010110://2cosine-3sine
begin csig[18:17]<=cosine[15:14];csig[16:1]<=cosine[15:0];csig[0]<=0;
ssig[18]<=!sine[15];ssig[17:2]<=!sine[15:0];ssig[1:0]<=0;end
6'b010111://2cosine-4sine
begin csig[18:17]<=cosine[15:14];csig[16:1]<=cosine[15:0];csig[0]<=0;
ssig[18:3]<=!sine[15:0];ssig[2:0]<=0;end
6'b011000://3cosine-sine
begin csig[18]<=cosine[15];csig[17:2]<=cosine[15:0];csig[1:0]<=0;
ssig[18:16]<=!sine[15:13];ssig[15:0]<=!sine[15:0];end
6'b011001://3cosine-2sine
begin csig[18]<=cosine[15];csig[17:2]<=cosine[15:0];csig[1:0]<=0;
ssig[18:17]<=!sine[15:14];ssig[16:1]<=!sine[15:0];ssig[0]<=0;end
6'b011010://3cosine-3sine
begin csig[18]<=cosine[15];csig[17:2]<=cosine[15:0];csig[1:0]<=0;
ssig[18]<=!sine[15];ssig[17:2]<=!sine[15:0];ssig[1:0]<=0;end
6'b011011://3cosine-4sine
begin csig[18]<=cosine[15];csig[17:2]<=cosine[15:0];csig[1:0]<=0;
ssig[18:3]<=!sine[15:0];ssig[2:0]<=0;end
6'b011100://4cosine-sine
begin csig[18:3]<=cosine[15:0];csig[2:0]<=0;
ssig[18:16]<=!sine[15:13];ssig[15:0]<=!sine[15:0];end
6'b011101://4cosine-2sine
begin csig[18:3]<=cosine[15:0];csig[2:0]<=0;
ssig[18:17]<=!sine[15:14];ssig[16:1]<=!sine[15:0];ssig[0]<=0;end
6'b011110://4cosine-3sine
begin csig[18:3]<=cosine[15:0];csig[2:0]=0;
ssig[18]<=!sine[15];ssig[17:2]<=!sine[15:0];ssig[1:0]<=0;end
6'b011111://4cosine-4sine
begin csig[18:3]<=cosine[15:0];csig[2:0]<=0;
ssig[18:3]<=!sine[15:0];ssig[2:0]<=0;end
6'b100000://-cosine+sine
begin csig[18:16]<=!cosine[15:13];csig[15:0]<=!cosine[15:0];
ssig[18:16]<=sine[15:13];ssig[15:0]<=sine[15:0];end
6'b100001://-cosine+2sine
begin csig[18:16]<=!cosine[15:13];csig[15:0]<=!cosine[15:0];
ssig[18:17]<=sine[15:14];ssig[16:1]<=sine[15:0];ssig[0]<=0;end
6'b100010://-cosine+3sine
begin csig[18:16]<=!cosine[15:13];csig[15:0]<=!cosine[15:0];
ssig[18]<=sine[15];ssig[17:2]<=sine[15:0];ssig[1:0]<=0;end
6'b100011://-cosine+4sine
begin csig[18:16]<=!cosine[15:13];csig[15:0]<=!cosine[15:0];
ssig[18:3]<=sine[15:0];ssig[2:0]<=0;end
6'b100100://-2cosine+sine
begin csig[18:17]<=!cosine[15:14];csig[16:1]<=!cosine[15:0];csig[0]<=0;
ssig[18:16]<=sine[15:13];ssig[15:0]<=sine[15:0];end
6'b100101://-2cosine+2sine
begin csig[18:17]<=!cosine[15:14];csig[16:1]<=!cosine[15:0];csig[0]<=0;
ssig[18:17]<=sine[15:14];ssig[16:1]<=sine[15:0];ssig[0]<=0;end
6'b100110://-2cosine+3sine
begin csig[18:17]<=!cosine[15:14];csig[16:1]<=!cosine[15:0];csig[0]<=0;
ssig[18]<=sine[15];ssig[17:2]<=sine[15:0];ssig[1:0]<=0;end
6'b100111://-2cosine+4sine
begin csig[18:17]<=!cosine[15:14];csig[16:1]<=!cosine[15:0];csig[0]<=0;
ssig[18:3]<=sine[15:0];ssig[2:0]<=0;end
6'b101000://-3cosine+sine
begin csig[18]<=!cosine[15];csig[17:2]<=!cosine[15:0];csig[1:0]<=0;
ssig[18:16]<=sine[15:13];ssig[15:0]<=sine[15:0];end
6'b101001://-3cosine+2sine
begin csig[18]<=!cosine[15];csig[17:2]<=!cosine[15:0];csig[1:0]<=0;
ssig[18:17]<=sine[15:14];ssig[16:1]<=sine[15:0];ssig[0]<=0;end
8'b101010://-3cosine+3sine
begin csig[18]<=!cosine[15];csig[17:2]<=!cosine[15:0];csig[1:0]<=0;
ssig[18]<=sine[15];ssig[17:2]<=sine[15:0];ssig[1:0]<=0;end
6'b101011://-3cosine+4sine
begin csig[18]<=!cosine[15];csig[17:2]<=!cosine[15:0];csig[1:0]<=0;
ssig[18:3]<=sine[15:0];ssig[2:0]<=0;end
6'b101100://-4cosine+sine
begin csig[18:3]<=!cosine[15:0];csig[2:0]<=0;
ssig[18:16]<=sine[15:13];ssig[15:0]<=sine[15:0];end
6'b101101://-4cosine+2sine
begin csig[18:3]<=!cosine[15:0];csig[2:0]<=0;
ssig[18:17]<=sine[15:14];ssig[16:1]<=sine[15:0];ssig[0]<=0;end
6'b101110://-4cosine+3sine
begin csig[18:3]<=!cosine[15:0];csig[2:0]<=0;
ssig[18]<=sine[15];ssig[17:2]<=sine[15:0];ssig[1:0]<=0;end
6'b101111://-4cosine+4sine
begin csig[18:3]<=!cosine[15:0];csig[2:0]<=0;
ssig[18:3]<=sine[15:0];ssig[2:0]<=0;end
6'b110000://-cosine-sine
begin csig[18:16]<=!cosine[15:13];csig[15:0]<=!cosine[15:0];
ssig[18:16]<=!sine[15:13];ssig[15:0]<=!sine[15:0];end
6'b110001://-cosine-2sine
begin csig[18:16]<=!cosine[15:13];csig[15:0]<=!cosine[15:0];
ssig[18:17]<=!sine[15:14];ssig[16:1]<=!sine[15:0];ssig[0]<=0;end
6'b110010://-cosine-3sine
begin csig[18:16]<=!cosine[15:13];csig[15:0]<=!cosine[15:0];
ssig[18]<=!sine[15];ssig[17:2]<=!sine[15:0];ssig[1:0]<=0;end
6'b110011://-cosine-4sine
begin csig[18:16]<=!cosine[15:13];csig[15:0]<=!cosine[15:0];
ssig[18:3]<=!sine[15:0];ssig[2:0]<=0;end
6'b110100://-2cosine-sine
begin csig[18:17]<=!cosine[15:14];csig[16:1]<=!cosine[15:0];csig[0]<=0;
ssig[18:16]<=!sine[15:13];ssig[15:0]<=!sine[15:0];end
6'b110101://-2cosine-2sine
begin csig[18:17]<=!cosine[15:14];csig[16:1]<=!cosine[15:0];csig[0]<=0;
ssig[18:17]<=!sine[15:14];ssig[16:1]<=!sine[15:0];ssig[0]<=0;end
6'b110110://-2cosine-3sine
begin csig[18:17]<=!cosine[15:14];csig[16:1]<=!cosine[15:0];csig[0]<=0;
ssig[18]<=!sine[15];ssig[17:2]<=!sine[15:0];ssig[1:0]<=0;end
6'b110111://-2cosine-4sine
begin csig[18:17]<=!cosine[15:14];csig[16:1]<=!cosine[15:0];csig[0]<=0;
ssig[18:3]<=!sine[15:0];ssig[2:0]<=0;end
6'b111000://-3cosine-sine
begin csig[18]<=!cosine[15];csig[17:2]<=!cosine[15:0];csig[1:0]<=0;
ssig[18:16]<=!sine[15:13];ssig[15:0]<=!sine[15:0];end
6'b111001://-3cosine-2sine
begin csig[18]<=!cosine[15];csig[17:2]<=!cosine[15:0];csig[1:0]<=0;
ssig[18:17]<=!sine[15:14];ssig[16:1]<=!sine[15:0];ssig[0]<=0;end
6'b111010://-3cosine-3sine
begin csig[18]<=!cosine[15];csig[17:2]<=!cosine[15:0];csig[1:0]<=0;
ssig[18]<=!sine[15];ssig[17:2]<=!sine[15:0];ssig[1:0]<=0;end
6'b111011://-3cosine-4sine
begin csig[18]<=!cosine[15];csig[17:2]<=!cosine[15:0];csig[1:0]<=0;
ssig[18:3]<=!sine[15:0];ssig[2:0]<=0;end
6'b111100://-4cosine-sine
begin csig[18:3]<=!cosine[15:0];csig[2:0]<=0;
ssig[18:16]<=!sine[15:13];ssig[15:0]<=!sine[15:0];end
6'b111101://-4cosine-2sine
begin csig[18:3]<=!cosine[15:0];csig[2:0]<=0;
ssig[18:17]<=!sine[15:14];ssig[16:1]<=!sine[15:0];ssig[0]<=0;end
6'b111110://-4cosine-3sine
begin csig[18:3]<=!cosine[15:0];csig[2:0]<=0;
ssig[18]<=!sine[15];ssig[17:2]<=!sine[15:0];ssig[1:0]<=0;end
6'b111111://-4cosine-4sine
begin csig[18:3]<=!cosine[15:0];csig[2:0]<=0;
ssig[18:3]<=!sine[15:0];ssig[2:0]<=0;end
endcase
end
end
assign out=rst?csig+ssig:0;
endmodule
qam 64的设计的更多相关文章
- X86(32位)与X64(64位)有什么区别,如何选择对应的操作系统和应用程序?
X86就是我们一般用的32位的系统,指针长度为32位(386起):X64就是64位的系统,指针长度为64位. 选择硬件对应的软件,建议通过以下三条考虑:1.64位操作系统相对32位操作系统理论上性能会 ...
- Win7系统32位和64位的区别
Win7系统32位和64位的区别已经是一个老话题了,可是还是有很多朋友不明白.这两者到底有什么区别呢?下面本文与大家通俗的介绍下Win7系统32位和64位的区别,其他一些深入的理论讲述,大家可以看看文 ...
- Abp vNext 番外篇-疑难杂症丨浅谈扩展属性与多用户设计
说明 Abp vNext基础篇的文章还差一个单元测试模块就基本上完成了我争取10.1放假之前给大家赶稿出来,后面我们会开始进阶篇,开始拆一些东西,具体要做的事我会单独开一个文章来讲 缘起 本篇文章缘起 ...
- ARM、Intel、MIPS处理器啥区别?看完全懂了
安卓支持三类处理器(CPU):ARM.Intel和MIPS.ARM无疑被使用得最为广泛.Intel因为普及于台式机和服务器而被人们所熟知,然而对移动行业影响力相对较小.MIPS在32位和64位嵌入式领 ...
- ARM、Intel、MIPS处理器啥区别?看完全懂了【转】
转自:http://news.mydrivers.com/1/472/472317.htm 安卓支持三类处理器(CPU):ARM.Intel和MIPS.ARM无疑被使用得最为广泛.Intel因为普及于 ...
- 刚安装Fedora 23工作站后,你必须要做的24件事
[51CTO.com快译]Fedora 23工作站版本已发布,此后我们就一直在密切关注它.我们已经为新来读者介绍了一篇安装指南:<Fedora 23工作站版本安装指南> 还有一篇介绍如何从 ...
- ARM与X86 CPU架构对比区别
CISC(复杂指令集计算机)和RISC(精简指令集计算机)是当前CPU的两种架构.它们的区别在于不同的CPU设计理念和方法.早期的CPU全部是CISC架构,它的设计目的是 CISC要用最少的机器语言 ...
- fedora 使用
我们在这篇指南中将介绍安装Fedora 23工作站版本后要完成的一些实用操作,以便用起来更爽. 1.更新Fedora 23程序包 哪怕你可能刚刚安装/升级了Fedora 23,仍很可能会有需要更新的程 ...
- C语言--第三次作业
要求一 . 1)C高级第三次PTA作业(1) 题目6-1 1.设计思路 (1)主要描述题目算法 第一步:将月份分别赋值: 第二步:利用switch语句,输 ...
随机推荐
- SQL Server 数据库设计规范
数据库设计规范 1.简介 数据库设计是指对一个给定的应用环境,构造最优的数据库模式,建立数据库及其他应用系统,使之能有效地存储数据,满足各种用户的需求.数据库设计过程中命名规范很是重要,命名规范合理的 ...
- Appium的安装-MAC平台
其实Appium的安装方式主要有两种: 1)自己安装配置nodejs的环境,然后通过npm进行appium的安装 2)直接下载官网提供的dmg进行安装,dmg里面已经有nodejs的环境和appium ...
- k近邻(KNN)复习总结
摘要: 1.算法概述 2.算法推导 3.算法特性及优缺点 4.注意事项 5.实现和具体例子 6.适用场合内容: 1.算法概述 K近邻算法是一种基本分类和回归方法:分类时,根据其K个最近邻的训练实例的类 ...
- Android开发学习之路-PopupWindow和仿QQ左滑删除
这周作业,要做一个类似QQ的左滑删除效果的ListView,因为不想给每个item都放一个按钮,所以决定用PopupWindow,这里记录一下 先放一下效果图: 先说明一下这里面的问题: ①没有做到像 ...
- 我的SQL总结---未完待续
我的SQL总结---未完待续 版权声明:本文为博主原创文章,未经博主允许不得转载. 总结: 主要的SQL 语句: 数据操作(select, insert, delete, update) 访问控制(g ...
- Python标准模块--logging
1 logging模块简介 logging模块是Python内置的标准模块,主要用于输出运行日志,可以设置输出日志的等级.日志保存路径.日志文件回滚等:相比print,具备如下优点: 可以通过设置不同 ...
- 前端学PHP之面向对象系列第四篇——关键字
× 目录 [1]public [2]protected [3]private[4]final[5]static[6]const[7]this[8]self[9]parent 前面的话 php实现面向对 ...
- 深入理解DOM事件类型系列第五篇——文本事件
× 目录 [1]change [2]textInput [3]input[4]propertychange[5]兼容 前面的话 如果DOM结构发生变化,触发的是变动事件:如果文本框中的文本发生变化,触 ...
- Android之登录那点事
随着互联网的高速发展,一个应用为了保护用户的隐私,通常会通过设置用户名+密码的验证方式保证用户隐私的相对安全,我知道一般网站的登录验证,通常会设置一个二维码,通过验证二维码,防止恶意软件通过机械程序, ...
- 使用免费组件view pdf 文档
“Is there any way to view PDF files in a Winforms tool?” 这个是我在技术论坛上发现的一个老外求助的帖子,然后看到别人回复的帖子中建议了一个免费的 ...