基于Verilog的密勒码编译码器设计(4)
时间:2025-02-26
时间:2025-02-26
使用Verilog语言实现密勒码编译码器设计,课程实验。
endmodule
2. 译码器
module miller_decoder(
signal_in,
signal_out,
clk,
o_start,
o_finish
);
//输入输出端口声明
input signal_in; //串行输入信号
input clk;
output reg signal_out; //解码串行输出数据
output reg o_start; //解码数据开始输出指示
output reg o_finish; //解码数据输出完毕指示
//内部变量声明
reg [16:1] datain_parallel=0; //待解码数据转并行暂存
reg [8:1] outbuf_parallel=0; //解码后输出并行数据暂存
reg [4:0] count=0;
reg d_finish=0; //数据输入完毕指示
reg c_finish=0; //解码完毕指示
reg clk2=0; //分频时钟
integer i,j,k=8;
//本进程用来串并转换
always @ (posedge clk)//解码的时候是输入比输出多,所以输入用未分频的时钟,输出用分频了的
begin
count=count+1;
if(count==17)
begin
count<=16;
d_finish<=1; //16bit数据输入完毕啦可以开始解码了喵 end
else
begin
datain_parallel<={datain_parallel[15:1],signal_in};
end
end
//本进程用来产生2分频
always @ (posedge clk)
begin
clk2<=~clk2;