📄 tbu路径回溯模块.v
字号:
`include "params.v"
/*-----------------------------------*/
// Module : TBU
// File : tbu.v
// Description : Description of TBU Unit in Viterbi Decoder
// Simulator : Modelsim 4.6 / Windows 98
// Synthesizer : -
// Author : M Zalfany U (zalfany@opencores.org)
/*-----------------------------------*/
// Revision Number : 1
// Date of Change : 10th Jan 2000
// Modifier : Zalfany
// Description : Initial Design
/*-----------------------------------*/
module TBU (Reset, Clock1, Clock2, TB_EN, Init, Hold, InitState,
DecodedData, DataTB, AddressTB);
input Reset, Clock1, Clock2, Init, Hold;
input [`WD_STATE-1:0] InitState;
input TB_EN;
input [`WD_RAM_DATA-1:0] DataTB;
output [`WD_RAM_ADDRESS-`WD_FSM-1:0] AddressTB;
output DecodedData;
wire [`WD_STATE-1:0] OutStateTB;
TRACEUNIT tb (Reset, Clock1, Clock2, TB_EN, InitState, Init, Hold,
DataTB, AddressTB, OutStateTB);
assign DecodedData = OutStateTB [`WD_STATE-1];
endmodule
/*-----------------------------------*/
module TRACEUNIT (Reset, Clock1, Clock2, Enable, InitState, Init, Hold,
Survivor, AddressTB, OutState);
/*-----------------------------------*/
input Reset, Clock1, Clock2, Enable;
input [`WD_STATE-1:0] InitState;
input Init, Hold;
input [`WD_RAM_DATA-1:0] Survivor;
output [`WD_STATE-1:0] OutState;
output [`WD_RAM_ADDRESS-`WD_FSM-1:0] AddressTB;
reg [`WD_STATE-1:0] CurrentState;
reg [`WD_STATE-1:0] NextState;
reg [`WD_STATE-1:0] OutState;
wire SurvivorBit;
always @(negedge Clock1 or negedge Reset)
begin
if (~Reset) begin
CurrentState <=0; OutState <=0;
end
else if (Enable)
begin
if (Init) CurrentState <= InitState;
else CurrentState <= NextState;
if (Hold) OutState <= NextState;
end
end
assign AddressTB = CurrentState [`WD_STATE-1:`WD_STATE-5];
always @(negedge Clock2 or negedge Reset)
begin
if (~Reset) NextState <= 0;
else
if (Enable) NextState <= {CurrentState [`WD_STATE-2:0],SurvivorBit};
end
assign SurvivorBit =
(Clock1 && Clock2 && ~Init) ? Survivor [CurrentState [2:0]]:'bz;
endmodule
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -