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 null知多少?
null是什么? 不知道.我是说,他的意思就是不知道(unknown). 它和true.false组成谓词的三个逻辑值,代表“未知”.与true和false相比,null最难以令人捉摸,因为它没有明确 ...
- MyISAM和InnoDB
MyISAM和InnoDB MyISAM MyISAM使用B+tree作为索引结构,叶节点存放的是数据地址. MyISAM不支持事务和外键. MyISAM是表锁,对数据库写操作时会锁住整个表,效率低. ...
- SQL Azure (16) 创建PaaS SQL Azure V12数据库
<Windows Azure Platform 系列文章目录> 本文介绍的是国内由世纪互联运维的Azure China 最新的Azure PaaS SQL Database(SQL Azu ...
- 摇钱树运营小工具UI设计.vsd
去年,我负责公司的一个互联网投融资平台——摇钱树.系统运营过程中,业务和客服那边不断的反馈一些事情让技术这边协助实现.例如,土豪客户忘记登录密码后懒得自己重置,更愿意选择搭讪客服MM:再比如,客户多次 ...
- Drupal8重命名上传的中文名文件
完整的模块代码文件在Coding.net上,想直接使用的请前往下载:https://coding.net/u/yamus/p/chinese_rename/git/tree/master 最近吧Dru ...
- C#设计模式-建造者模式
在软件系统中,有时需要创建一个复杂对象,并且这个复杂对象由其各部分子对象通过一定的步骤组合而成. 例如一个采购系统中,如果需要采购员去采购一批电脑时,在这个实际需求中,电脑就是一个复杂的对象,它是由C ...
- iOS-即时通讯-环信
下载地址:http://www.easemob.com/downloads SDK目录讲解 1.从官网下载下来的包分为如下四部分: 环信iOS SDK 开发使用 环信iOS release note ...
- Hello Blog
转眼之间,工作已经快五年了. 五年走的时候不觉得,当真正过来了,一回头,才真正体会到什么叫时间匆匆. 做了五年的技术,算是多有波折.想一想,做技术真的挺需要耐得住寂寞的,毕竟花花世界,压力太大,诱惑太 ...
- Linux线程体传递参数的方法详解
传递参数的两种方法 线程函数只有一个参数的情况:直接定义一个变量通过应用传给线程函数. 例子 #include #include using namespace std; pthread_t thre ...
- SSIS 数据类型和类型转换
在进行ETL开发时,数据类型(Data Type)是最基础的,但也容易被忽略,楼主使用的SQL Server 版本是2012,用此博文记录,常用的SSIS数据类型和TSQL数据类型的映射.SSIS的数 ...