基于Verilog的密勒码编译码器设计(2)
时间:2025-02-26
时间:2025-02-26
使用Verilog语言实现密勒码编译码器设计,课程实验。
begin
clk2<=~clk2;
end
//本进程用来并串转换,因为老师说输入输出都得是串行且时间相等
always @ (posedge clk) //输出用clk时钟
begin
if(c_finish==1) //编码完毕了,可以输出鸟
begin
o_start=1;
signal_out<=outbuf_parallel[k];
k<=k-1;
if(k<0) //数据输出完毕
begin
o_finish=1;
signal_out<=0;
end
end
else
begin
signal_out<=0;
end
end
always @(posedge clk2)
begin
if(d_finish==1)//当串行数据全输入完毕,才开始计算。
begin
case(datain_parallel[7:6])
2'b00:outbuf_parallel[15:12] = 4'b0011;
2'b01:outbuf_parallel[15:12] = 4'b0001;
2'b10:outbuf_parallel[15:12] = 4'b0111;
2'b11:outbuf_parallel[15:12] = 4'b0110;
default:outbuf_parallel[15:12] = 4'b0000;
endcase
for(i = 5;i >= 0; i = i-1)
case(datain_parallel[i])
'b1:
begin
case(datain_parallel[i+1])
'b1:
begin
case({outbuf_parallel[2*i+3],outbuf_parallel[2*i+2]})
2'b10:{outbuf_parallel[2*i+1],outbuf_parallel[2*i]} = 2'b01;