时序逻辑电路verilog_hdl建模
- 格式:ppt
- 大小:51.00 KB
- 文档页数:11
verilog 组合逻辑时序逻辑下载提示:该文档是本店铺精心编制而成的,希望大家下载后,能够帮助大家解决实际问题。
文档下载后可定制修改,请根据实际需要进行调整和使用,谢谢!本店铺为大家提供各种类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by this editor. I hope that after you download it, it can help you solve practical problems. The document can be customized and modified after downloading, please adjust and use it according to actual needs, thank you! In addition, this shop provides you with various types of practical materials, such as educational essays, diary appreciation, sentence excerpts, ancient poems, classic articles, topic composition, work summary, word parsing, copy excerpts, other materials and so on, want to know different data formats and writing methods, please pay attention!Verilog是一种硬件描述语言,主要用于对数字电路进行建模、仿真和综合。
通信工程实验报告班级:通信2012-04班学号:20122211 姓名:刘涛实验一:FPGA实验_BDPSK调制解调器设计一、实验目的⒈学习BDPSK 原理的硬件实现方法。
⒉学习用VerilogHDL 硬件描述语言建模时序逻辑电路的能力。
二、实验报告要求由于在 BPSK 解调中,相干载波恢复可能出现相位模糊,所以在实际应用中经常采用 BDPSK(二进制差分相移键控)方式。
BDPSK 方式不需要在解调端恢复相干参考信号,非相干接收机容易制造而且成本低,因此在无线通信系统中被广泛使用。
在 BDPSK 系统中,输入的二进制序列先进行差分编码,然后再用BPSK 调制器调制。
⒈ BDPSK 调制系统的结构图。
(Microsoft Visio 中截图)⒉ BDPSK 调制器模块的VerilogHDL 代码及注释。
⒊功能仿真和时序仿真结果的波形。
(ModelSim 中截图)⒋(选做)开发板验证后的波形。
(示波器上拍照)三、实验结果1、调制器和解调器的外引脚图和内部结构图图1.1 调制器的外部引脚图1.2 调制器的内部结构图1.3 解调器的外部引脚图1.4 解调器的内部结构2、调制器模块和解调器模块的VerilogHDL 代码及注释(1)差分编码module chafen( reset_n,clk,a,b );input reset_n;input clk;input a;output b;reg c;assign b = a ^ c ;always @( posedge clk or negedge reset_n )if(!reset_n)c <= 0 ;elsebeginc <= b;endEndmodule(2)控制器module Controller(clk,reset_n,data,address,clk_DA,blank_DA_n,sync_DA_n);input clk ;input reset_n ;input data ;output [ 4 : 0 ] address ;output clk_DA ; //数模转换器控制信号output blank_DA_n ; //数模转换器控制信号output sync_DA_n ; //数模转换器控制信号reg [ 4 : 0 ] address_data;reg c ;always @( posedge clk or negedge reset_n )beginif(!reset_n)c<=1'bz;elsec<=data;endalways @( posedge clk or negedge reset_n )beginif(!reset_n)address_data<=5'b00000;else if(c==data)address_data<=address_data+5'b00001;elsebegincase(data)1'b0:address_data<=5'b00000;1'b1:address_data<=5'b10000;default:address_data<=5'bzzzzz;endcaseendendassign address = address_data;assign clk_DA = clk;assign blank_DA_n = 1'b1;assign sync_DA_n = 1'b1;Endmodule(3)查找表module LookUpTable(clk,reset_n,address,dataout,);input clk;input reset_n;input [ 4 : 0 ] address;output [ 7 : 0 ] dataout;reg [ 7 : 0 ] LUT [ 0 : 31 ];always @( posedge clk or negedge reset_n )beginif( !reset_n )begin//用C编程计算出的查找表采样值填在这里LUT[ 0 ] <= 8'h7f;//0°LUT[ 1 ] <= 8'h97;LUT[ 2 ] <= 8'haf;LUT[ 3 ] <= 8'hc5;LUT[ 4 ] <= 8'hd9;LUT[ 5 ] <= 8'he8;LUT[ 6 ] <= 8'hf4;LUT[ 7 ] <= 8'hfc;LUT[ 8 ] <= 8'hfe;LUT[ 9 ] <= 8'hfc;LUT[ 10 ] <= 8'hf5;LUT[ 11 ] <= 8'hea;LUT[ 12 ] <= 8'hda;LUT[ 13 ] <= 8'hc7;LUT[ 14 ] <= 8'hb2;LUT[ 15 ] <= 8'h9a;LUT[ 16 ] <= 8'h81;//180°LUT[ 17 ] <= 8'h69;LUT[ 18 ] <= 8'h51;LUT[ 19 ] <= 8'h3b;LUT[ 20 ] <= 8'h27;LUT[ 21 ] <= 8'h17;LUT[ 22 ] <= 8'hb ;LUT[ 23 ] <= 8'h3 ;LUT[ 24 ] <= 8'h0 ;LUT[ 25 ] <= 8'h1 ;LUT[ 26 ] <= 8'h8 ;LUT[ 27 ] <= 8'h13;LUT[ 28 ] <= 8'h22;LUT[ 29 ] <= 8'h35;LUT[ 30 ] <= 8'h4a;LUT[ 31 ] <= 8'h62;endendassign dataout = LUT[ address ];endmodule⒊ 功能仿真和时序仿真结果的波形图1.5 功能仿真图1.6 时序仿真实验二MATLAB实验_OFDM误码率仿真(AWGN)一、实验目的:1、掌握OFDM 的基本原理。
实验二十进制计数器实验该实验将使用Verilog硬件描述语言在DE2-70开发平台上设计一个基本时序逻辑电路——1位十进制计数器。
通过这个实验,读者可以了解使用Quartus工具设计硬件的基本流程以及使用Quartus II内置的工具进行仿真的基本方法和使用SignalTap II实际观察电路运行输出情况。
SignalTap II是Quartus工具的一个组件,是一个片上的逻辑分析仪,可以通过JTAG电缆将电路运行的实际输出传回Quartus进行观察,从而省去了外界逻辑分析仪时的很多麻烦。
实验步骤3.1建立工程并完成硬件描述设计1.打开Quartus II工作环境,如图3-1所示。
图3-1Quartus II工作环境界面2.点击菜单项File->New Project Wizard帮助新建工程。
参看图3-2。
图3-2选择New Project Wizard打开Wizard之后,界面如图3-3所示。
点击Next,如图3-3。
第23页共208页图3-3New Project Wizard界面3.输入工程工作路径、工程文件名以及顶层实体名。
这次实验会帮助读者理解顶层实体名和工程名的关系,记住目前指定的工程名与顶层实体名都是Counter10,输入结束后,如图3-4所示。
点击Next。
图3-4输入设计工程信息4.添加设计文件。
界面如图3-5所示。
如果用户之前已经有设计文件(比如.v文件)。
那么再次添加相应文件,如果没有完成的设计文件,点击Next之后添加并且编辑设计文件。
图3-5添加设计文件5.选择设计所用器件。
由于本次实验使用Altera公司提供的DE2-70开发板,用户必须选择与DE2-70开发板相对应的FPGA器件型号。
在Family菜单中选择Cyclone II,Package选FBGA,Pin Count选896,Speed grade 选6,确认Available devices中选中EP2C70F896C6,如图3-6。
连载《fpga线下培训-第6天》【FPGA数据流建模、⾏为级建模、结构化建模区别】及【Ve。
这篇⽂件记录,FPGA的3种建模⽅式及基本的Verilog HDL语法,内容会根据学习进度,不断更新⼀、FPGA的3种建模⽅式 A、数据流建模(assign)在数字电路中,信号经过组合逻辑时会类似于数据流动,即信号从输⼊流向输出, 并不会在其中存储。
当输⼊变化时,总会在⼀定时间以后体现在输出端 同样,我们可以模拟数字电路的这⼀特性,对其进⾏建模,这种建模⽅式通常被称为数据流建模 1.1、是使⽤连续赋值语句(assign)对电路的逻辑功能进⾏描述,该⽅式特别便于对组合逻辑电路建模 1.2、连续驱动,连续赋值语句是连续驱动的,也就是说只要输⼊发⽣变化,都会导致该语句的重新计算。
1.3、只有线⽹型的变量才能在assign语句中被赋值 1.4、因为assign语句中被赋值的变量,在仿真器中不会存储其值,所以该变量必须是线⽹(Nets)类型,不能是寄存器(reg)类型 1.5、线⽹类型的变量,可以被多重驱动,也就是说可以在多个assign语句中驱动同⼀个net 1.6、reg型变量,不能被不同的⾏为进程(eg:always块)驱动 1.7、建议使⽤assign对组合逻辑建模,这是因为assign语句的连续驱动特点与组合逻辑的⾏为⾮常相似, ⽽且在assign语句中加延时可以⾮常精确地模拟组合逻辑的惯性延时。
1.8、assign语句与⾏为语句块(always和initial)、其它连续赋值语句、门级模型之间是并⾏的。
⼀个连续赋值语句是⼀个独⽴的进程,进程之间是并发的,同时也是交织的 B、⾏为级建模(initial、always) ⾏为⽅式的建模是指采⽤对信号⾏为级的描述(不是结构级的描述)的⽅法来建模。
在表⽰⽅⾯,类似数据流的建模⽅式,但⼀般是把⽤initial 块语句或always 块语句描述的归为⾏为建模⽅式。