4.1 实 验 目 的
1. 实现一个在通信领域中经常使用的巴克码发生器。
2. 掌握用大规模可编程逻辑器件实现时序电路的方法。
4.2 实 验 仪 器 与 器 材
1. EDA 开发软件 一 套
2.微机 一 台
3.实验开发系统 一 台
4.打印机 一 台
5.其他器件与材料 若 干
4.3 实 验 说 明
巴克码发生器在数据通信、雷达和遥控领域有相当广泛的应用。它能自动产生 周 期 性 的 序 列 码 。本 实 验 要 求 产 生 的 序 列 码 信 号 为 {1110010},可 以 用 寄 存 器 或 同 步 时序电路实现。为了能够通过实验开发系统验证实验结果,可以使用两个输出端, 其中一个输出端同时输出巴克码,另一个输出端输出节拍。巴克码发生器的功能框 图见图 4.1 所示。 图 4.1 巴克码发生器示意图
4.4 实 验 要 求
1. 写出全部设计文件。
module bk(
input clk,
input rst,
output reg out,
output reg c);
reg [2:0]count;
parameter code = 7'b1110010;
initial
begin
c<=8'b00000000;
out<=1'b0;
end
always@(posedge clk or negedge rst )
begin
if(!rst)
count=3'b000;
else if(count==3'b110)
begin
count=3'b000;
c=~c;
end
else
count=count+3'b001;
end
always @(posedge clk or negedge rst )
begin
if(!rst)
out=1'b0;
else
out=code[count];
end
endmodule
![]() |
2. 编写测试向量,进行功能仿真。
`timescale 1ns / 1ns
module bktb;
reg clk, rst;
wire out;
wire c;
bk U1(.out(out), .clk(clk), .rst(rst),.c(c));
initial begin
{clk, rst} = 1'b0;
#1000 rst=1'b1;
forever #250 clk = ~clk;
end
endmodule
![]() |
3. 下 载 并 用 实 验 板 验 证 。
![]() |