xiaozhaodehao 2018-02-09 03:04 采纳率: 0%
浏览 2336
已结题

verilog ask调制解调testbench

请高手帮忙写下ask调制解调的testbench。
//基于verilog HDL描述语言,对基带信号进行ASK振幅调制

module ASK_modulator(clk,start,x,y);

input clk; //系统时钟
input start; //开始调制信号
input x; //基带信号

output y; //调制信号

reg [1:0] q; //分频计数器
reg f; //载波信号

always @(posedge clk) begin
if(start == 0)
q <= 0;
else if(q <= 1) begin
f <= 1;
q <= q + 1;
end
else if(q == 3) begin
f <= 0;
q <= 0;
end
else begin
f <= 0;
q <= q + 1;
end
end
assign y = x && f; //对基带信号进行调制

endmodule

//基于verilog HDL描述语言,对ASK调制信号进行解调

module ASK_demodulator(clk,start,x,y);
input clk; //系统时钟
input start; //同步信号

input x; //调制信号
output y; //基带信号

reg y;
reg xx; //寄存x信号
reg [3:0] q; //计数器
reg [2:0] m; //计xx的脉冲数

always @(posedge clk)
begin
xx <= x; //clk上升沿时,把x信号赋给中间信号xx
if(!start)
q <= 0;
else if(q == 11) //if语句完成q的循环计数
q <= 0;
else
q <= q + 1;
end

always @(posedge clk) //此进程完成ASK解调
begin
if(q == 11) //m计数器清零
m <= 0;
else if(q == 10)
begin
if(m < 3) //if语句通过对m大小,来判决y输出的电平
y <= 0;
else
y <= 1;
end
else if(xx == 1)
m <= m + 1;
end

endmodule

  • 写回答

1条回答 默认 最新

  • devmiao 2018-02-09 16:15
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 关于大棚监测的pcb板设计
  • ¥15 stm32开发clion时遇到的编译问题
  • ¥15 lna设计 源简并电感型共源放大器
  • ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)
  • ¥15 Vue3地图和异步函数使用