vivado求助
卢叶婷 2018-07-06 11:56:26 在vivado中卷积编译码 中调用了ip核,卷积编码输入输出都正确,卷积译码的输入正确,输出全为零,可能出现的问题是什么?附带代码
odule top3(
input aclk,
input rst,
input aresetn
// output wire [7:0] data_out
);
wire [7:0] s_axis_data_tdata;
wire data;
wire [7:0] ASYNC_OUT;
reg [4:0] flow = 5'b11111; //移位寄存器初始状态
reg s_axis_data_tvalid;
reg m_axis_data_tready;
reg [8:0] count=9'b000000000;
wire [7:0] conv_out;//卷积编码输出
wire [15:0] data_in0;//卷积译码输入
wire m_axis_data_tvalid_2;
wire m_axis_data_tvalid_2;
///////////////////m序列产生数据/////////////////////
always @ (posedge aclk or posedge rst)begin
if (rst)
begin
flow <= 5'b11111;
end
else
begin
flow[3:0] <= flow[4:1];
flow[4] <= flow[3]^flow[0];
end
end
assign s_axis_data_tdata={7'b0,flow[0]};
always @(posedge aclk ) begin
//if(count==0 )begin
//count<=count+1;
//s_axis_data_tvalid<=1;
//m_axis_data_tready<=1;
//end
if (count>=0&&count<255)begin
count<=count+1;
s_axis_data_tvalid <=1;
m_axis_data_tready<=1;
end
else begin
count<=0;
s_axis_data_tvalid<=0;
m_axis_data_tready<=1;
end
end
convolution_0 juanjibianma (
.aclk(aclk), // input wire aclk
.aresetn(aresetn), // input wire aresetn
.s_axis_data_tdata(s_axis_data_tdata), // input wire [7 : 0] s_axis_data_tdata
.s_axis_data_tvalid(s_axis_data_tvalid), // input wire s_axis_data_tvalid
.s_axis_data_tready(s_axis_data_tready), // output wire s_axis_data_tready
.m_axis_data_tdata(conv_out), // output wire [7 : 0] m_axis_data_tdata
.m_axis_data_tvalid(m_axis_data_tvalid), // output wire m_axis_data_tvalid
.m_axis_data_tready(m_axis_data_tready) // input wire m_axis_data_tready
);
assign data_in0={7'd0,conv_out[1],7'd0,conv_out[0]};
viterbi_0 juanjiyima (
.aclk(aclk), // input wire aclk
.aresetn(aresetn), // input wire aresetn
.s_axis_data_tdata(data_in0), // input wire [15 : 0] s_axis_data_tdata
.s_axis_data_tvalid(m_axis_data_tvalid), // input wire s_axis_data_tvalid
.s_axis_data_tready(s_axis_data_tready_2), // output wire s_axis_data_tready
.m_axis_data_tdata(m_axis_data_tdata_2), // output wire [7 : 0] m_axis_data_tdata
.m_axis_data_tvalid(m_axis_data_tvalid_2), // output wire m_axis_data_tvalid
.m_axis_data_tready(s_axis_data_tready) // input wire m_axis_data_tready
);
//assign data_out=m_axis_data_tdata_2;
endmodule