verilog实验

发布 2023-04-19 10:44:28 阅读 9694

实验四。

一。实验内容:

a.用verilog语言编写2-ask调制器电路模块、并编写测试模块**。

b.用verilog语言编写2-ask解调器电路模块、并编写测试模块**。

二。实验指导。

2.12-ask调制原理。

数字信号对载波振幅调制称为振幅键控,即ask(amplitude shift keying),本节重点讨论的是二进制振幅键控调制(2-ask)的原理及其实现。2-ask又称二进制开关键控(ook,on-offkeying),他是以单极性不归零码来控制载波的开启和关闭的,其调制方式的出现比模拟调制还早。虽然2-ask的抗干扰性能不如其他调制方式,在无线通信中没有获得实际应用。

此外,2-ask的分析方法是研究数字调制的理论基础。2-ask调制有两种实现方法:乘法器实现法和键控法。

2.2 2-ask解调原理。

2-ask的解调方法有相干解调与非相干解调两种。相干解调要求接收端提供相干载波。而非相干解调是根据已调信号自身特点来解调。

三.程序设计。

2ask调制源程序。

module ask_2(out,in, rst,clk);

output out;

inputin,rst,clk;

reg [1:0] count;

reg carry;

assign out=in & carry;

always @ posedgeclk or negedgerst)

beginif(!rst)

begincarry<=2'b11;

count<=0

endelse

beginif(count==2'b11)

begincount<=0;

carry<=~carry;

endelse

begincount<=count+1;

endend

endendmodule

测试**。timescale 1ns/1ns

module ask_2_vlg_tst();

reg in;

regrst;

regclk;

wire out;

ask_2 i1(.out(out),.in(in),.rst(rst),.clk(clk));

initial

begin#0 rst=1;

#5 rst=0;

#8 rst=1;

endalways

beginclk=0;

in=1;#15 clk=~clk;//1

#5 clk=~clk;

#10 clk=~clk;//2

#15 clk=~clk;

#5 clk=~clk;//3

#10 clk=~clk;

in=0;#15 clk=~clk;//1

#5 clk=~clk;

#10 clk=~clk;//2

#15 clk=~clk;

#5 clk=~clk;//3#end

endmodule

2ask解调源程序。

module ask_2_de(out,in,rst,clk);

output out;

inputin,rst,clk;

reg out;

reg [2:0] m;

reg [2:0] count;

always @ posedge in or negedgerst)

beginif(!rst)

beginm<=0;

endelse

beginif(count==3'b110)

beginm<=0;

endelse

beginm<=m+1;

endend

endalways @ posedgeclk or negedgerst)

beginif(!rst)

begincount<=0;

m<=0;

out<=0;

endelse if(count==3'b110)

beginif(m<=3'b010)

beginout<=0;

endelse

beginout<=1;

endcount<=count+1;

m<=0;

endelse if(count==3'b111)

begincount<=0;

endelse

begincount<=count+1;

endend

endmodule

测试程序。timescale 1ns/1ns

module ask_2_de_vlg_tst();

reg in;

regrst;

regclk;

wire out;

ask_2_de i1(.out(out),.in(in),.rst(rst),.clk(clk));

initial

begin#0 rst=1;

#5 rst=0;

#8 rst=1;

endalways

beginclk=0;

in=1;#5 clk=~clk;//1

#15 clk=~clk;

#5 clk=~clk;//2

#15 clk=~clk;

#5 clk=~clk;//3

#10 clk=~clk;

in=0;#5 clk=~clk;//1

#15 clk=~clk;

#5 clk=~clk;//2

#15 clk=~clk;

#15 clk=~clk;//3#end

endmodule

五.实验结果。

图12ask调制、解调**图。

六.实验总结。

这次实验的重点在于编写程序的的textbenech测试文件。模块程序老师已经给出了可参考的**。在总体的思路上没有什么大的问题。

在调试的时候出现了一些小问题。现已解决。编写测试文件的过程中。

因为程序中使用了方波来代替正弦波。所以在时序上要控制好。在经过漫长的调试时间后。

完成了本次的**编写。实验过程中让我把学到的理论知识很好的应用到了实际中来,更加深刻的理解了书本上的知识。

verilog语法

第三章 verilog hdl的基本语法。前言。verilog hdl是一种用于数字逻辑电路设计的语言。用verilog hdl描述的电路设计就是该电路的verilog hdl模型。verilog hdl既是一种行为描述的语言也是一种结构描述的语言。这也就是说,既可以用电路的功能描述也可以用元器件和...

verilog大作业

彩灯控制器设计。一设计任务 设计一种彩灯控制器控制8盏灯。该彩灯控制器有6种自动切换的花样。1.第一种花样为彩灯从右到左,然后从左到右逐次灭,全灭全亮 2.第二种花样为彩灯两边同时亮一个逐次向中间移动再散开 3.第三种花样为彩灯两边同时亮两个逐次向中间移动再散开 4.第四种花样为彩灯两边同时亮三个,...

verilog语法总结

整理 张步阳。1.如果没有明确说明,则端口都是wire线网型的,且输入端口只能是wire线网型的。型数据通常以assign关键字指定的组合逻辑信号。wire只能被assign连续赋值,reg 只能在initial和always中赋值。input端口只能定义成wire型。是寄存器数据类型的关键字。寄存...