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语句,输 ...
随机推荐
- 《精通正则表达式》笔记 --- “验证”Email格式
写一个正则表达式的三个步骤: 理解需求并找出你需要验证的数据的特征: 写一个还可以用的正则表达式: 看看能不能达到你的目的,同时想想会不会匹配到一些不想要的数据: [可选]性能优化 我觉得写一个正则表 ...
- 2016苹果春季发布会 iPhone SE发布
配置如下 主屏尺寸:4英寸 主屏分辨率:1336x640像素 后置摄像头:1200万像素 前置摄像头:120万像素 电池容量:1624mAh 核心数:双核 操作系统:iOS 9 核心数:双核 CPU: ...
- iOS 代码规范
1 目的 统一规范XCode编辑环境下Objective-C.swift的编码风格和标准 2 适用范围 适用于所有用Objective-C,swift语言开发的项目. 3 编码规范 3.1 文件 项目 ...
- HttpResponseMessage 调用.net web api
// // GET: /Home/ //释迦苦僧 public ActionResult Index() { HttpClient client = new HttpClient(); client. ...
- android 手把手教您自定义ViewGroup(一)
1.概述 在写代码之前,我必须得问几个问题: 1.ViewGroup的职责是啥? ViewGroup相当于一个放置View的容器,并且我们在写布局xml的时候,会告诉容器(凡是以layout为开头的属 ...
- 初学ReactJS,写了一个RadioButtonList组件
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <title>React Demo</title> ...
- 使用karma测试平时写的小demo(arguments为例)
有人说前端自动化测试非常困难,我觉得确实如此.在项目中,我个人也不放心写的测试,还是要手动测试.但是我们平时写demo学习时,完全可以使用自动化测试. 传统demo 1,新建一个html 2,写入js ...
- 构建自己的PHP框架--创建组件的机制
在之前的博客中,我们完成了基本的Model类,但是大家应该还记得,我们创建数据库的pdo实例时,是hard好的配置,并且直接hard在Model类中. 代码如下: public static func ...
- Git代码管理工具
Git代码管理工具 Git 是分布式的源代码管理工具,这点区别于svn -让源代码可以被追溯,主要是记录了每次的更新了什么,如果新版本不想用,那么则可以退回之前的版本 -Git 是Linux之父当年为 ...
- Deque的部分成员函数 解析,关于这个类,百度有很多解析,唯独没有其函数介绍
函数 描述 c.assign(beg,end) c.assign(n,elem) 将[beg; end)区间中的数据赋值给c. 将n个elem的拷贝赋值给c. c.at(idx) 传回索引idx所指的 ...