?? bmg.v
字號:
`timescale 1ns / 1ps
////////////////////////////////////////////////////////////////////////////////
// Company:
// Engineer:
//
// Create Date: 09:55:46 07/30/09
// Design Name:
// Module Name: bmg
// Project Name:
// Target Device:
// Tool versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
////////////////////////////////////////////////////////////////////////////////
module bmg(Reset, Clock2, ACSSegment, Code, Distance);
input Reset, Clock2;
input [3:0] ACSSegment;
input [1:0] Code;
output [15:0] Distance;
wire [6:0] PolyA, PolyB;
wire [6:0] wA, wB;
assign PolyA = 7'b101_101_1; // polynomial code used
assign PolyB = 7'b111_100_1;
wire [6:0] B0,B1,B2,B3,B4,B5,B6,B7; // Pay attention to the WIDTH of B = WD_STATE + 1
wire [1:0] G0,G1,G2,G3,G4,G5,G6,G7; // branch output to be calculated
wire [1:0] D0,D1,D2,D3,D4,D5,D6,D7; // output distances
reg [1:0] CodeRegister;
always @(posedge Clock2 or negedge Reset)
begin
if (~Reset) CodeRegister <= 0;
else if (ACSSegment == 6'h3F) CodeRegister <= Code;
end
assign B0 = {ACSSegment,3'b000}; // The branch to be calculated is
assign B1 = {ACSSegment,3'b001}; // determined by ACSSegment
assign B2 = {ACSSegment,3'b010};
assign B3 = {ACSSegment,3'b011};
assign B4 = {ACSSegment,3'b100};
assign B5 = {ACSSegment,3'b101};
assign B6 = {ACSSegment,3'b110};
assign B7 = {ACSSegment,3'b111};
branch_gen EN0(PolyA,PolyB,B0,G0); assign G1 = ~G0; // Find the 'correct'
branch_gen EN2(PolyA,PolyB,B2,G2); assign G3 = ~G2; // branch metric
branch_gen EN4(PolyA,PolyB,B4,G4); assign G5 = ~G4;
branch_gen EN6(PolyA,PolyB,B6,G6); assign G7 = ~G6;
dist_calc HD0(CodeRegister,G0,D0); // Calculate its hamming
dist_calc HD1(CodeRegister,G1,D1); // distance
dist_calc HD2(CodeRegister,G2,D2);
dist_calc HD3(CodeRegister,G3,D3);
dist_calc HD4(CodeRegister,G4,D4);
dist_calc HD5(CodeRegister,G5,D5);
dist_calc HD6(CodeRegister,G6,D6);
dist_calc HD7(CodeRegister,G7,D7);
assign Distance = {D7,D6,D5,D4,D3,D2,D1,D0}; // bus of distances
endmodule
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -