Return to: A Translation Example
page
/*******************************************************************************
-- File Type: Verilog HDL
-- Tool Version: VHDL2Verilog vBETA Mon Jul 17 17:13:30 EDT 1995
-- Input file was: tap
-- Date Created: Fri Jul 21 09:33:03 1995
*******************************************************************************/
`define false 0
`define FALSE 0
`define true 1
`define TRUE 1
`timescale 1 ns / 1 ns // timescale for following modules
module tap_controller (tms,
tck,
trst,
sel,
enable,
test_logic_reset,
idle,
resetn,
shift_ir,
update_ir,
clock_ir,
shift_dr,
capture_dr,
clock_dr,
update_dr);
input tms;
input tck;
input trst;
output sel;
output enable;
output test_logic_reset;
output idle;
output resetn;
output shift_ir;
output update_ir;
output clock_ir;
output shift_dr;
output capture_dr;
output clock_dr;
output update_dr;
wire sel;
reg enable;
wire test_logic_reset;
wire idle;
reg resetn;
reg shift_ir;
wire update_ir;
wire clock_ir;
reg shift_dr;
wire capture_dr;
wire clock_dr;
wire update_dr;
reg D;
reg C;
reg B;
reg A;
wire NA;
wire NB;
wire NC;
wire ND;
wire GRST;
wire GENB;
wire GSIR;
wire GSDR;
wire tckd;
wire trsthi;
wire tmsbuf;
wire trstnbuf;
initial
begin
A = 'b 1;
end
initial
begin
B = 'b 1;
end
initial
begin
C = 'b 1;
end
initial
begin
D = 'b 1;
end
always @(posedge trsthi or posedge tckd)
begin
if (trsthi == 'b 1)
resetn <= 'b 0; else if (tckd="=" 'b 1 ) resetn <="GRST;"
end
always @(posedge trsthi or posedge tckd) begin
if (trsthi="=" 'b 1) enable <="b 0;
else if (tckd == " b 1 ) enable <="GENB;" end
always @(posedge trsthi or posedge tckd) begin
if (trsthi="=" 'b 1) shift_ir <="b 1;
else if (tckd == " b 1 ) shift_ir <="GSIR;" end
always @(posedge trsthi or posedge tckd) begin
if (trsthi="=" 'b 1) shift_dr <="b 1;
else if (tckd == " b 1 ) shift_dr <="GSDR;" end
always @(posedge trsthi or posedge tck) begin
if (trsthi="=" 'b 1) D <="b 1;
else if (tck == " b 1 ) D <="ND;" end
always @(posedge trsthi or posedge tck) begin
if (trsthi="=" 'b 1) C <="b 1;
else if (tck == " b 1 ) C <="NC;" end
always @(posedge trsthi or posedge tck) begin
if (trsthi="=" 'b 1) B <="b 1;
else if (tck == " b 1 ) B <="NB;" end
always @(posedge trsthi or posedge tck) begin
if (trsthi="=" 'b 1) A <="b 1;
else if (tck == " b 1 ) A <="NA;" end
assign trsthi="~trstnbuf;" assign sel="D;" assign tckd="~tck;"
assign clock_ir="~(~A" & B & D & tckd); assign update_ir="A" & ~B & C & D & tckd;
assign clock_dr="~(~A" & B & ~D & tckd); assign test_logic_reset="A" & B & C & D;
assign idle="~A" & ~B & C & D;
assign update_dr="A" & ~B & C & ~D & tckd;
assign capture_dr="~A" & B & C & ~D;
assign tmsbuf="tms;" assign trstnbuf="trst;"
assign NA="~(~(~tmsbuf" & ~C & A) & ~(tmsbuf & ~B) & ~(tmsbuf & ~A) & ~(tmsbuf & C & D));
assign NB="~(~(~tmsbuf" & B & ~A) & ~(~tmsbuf & ~C) & ~(~tmsbuf & ~D & B)
& ~(~tmsbuf & ~D & ~A) & ~(tmsbuf & C & ~B) & ~(tmsbuf & D & C & A));
assign NC="~(~(C" & ~B) & ~(C & A) & ~(tmsbuf & ~B));
assign ND="~(~(D" & ~C) & ~(D & B) & ~(~tmsbuf & C & ~B) & ~(~D & C & ~B & ~A));
assign GRST="~(A" & B & C & D); assign GSIR="~A" & B & ~C & D;
assign GSDR="~A" & B & ~C & ~D; assign GENB="GSIR" | GSDR;
endmodule // module tap_controller
Back to VHDL2Verilog Index
|