OpenCores
URL https://opencores.org/ocsvn/hdlc/hdlc/trunk

Subversion Repositories hdlc

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /hdlc/trunk/CODE/RX
    from Rev 9 to Rev 17
    Reverse comparison

Rev 9 → Rev 17

/CORE/RxChannel.vhd
0,0 → 1,132
-------------------------------------------------------------------------------
-- Title : Rx Channel
-- Project : HDLC controller
-------------------------------------------------------------------------------
-- File : RxChannel.vhd
-- Author : Jamil Khatib (khatib@ieee.org)
-- Organization: OpenIPCore Project
-- Created : 2000/12/30
-- Last update: 2001/04/27
-- Platform :
-- Simulators : Modelsim 5.3XE/Windows98
-- Synthesizers:
-- Target :
-- Dependency : ieee.std_logic_1164
--
-------------------------------------------------------------------------------
-- Description: receive Channel
-------------------------------------------------------------------------------
-- Copyright (c) 2000 Jamil Khatib
--
-- This VHDL design file is an open design; you can redistribute it and/or
-- modify it and/or implement it after contacting the author
-- You can check the draft license at
-- http://www.opencores.org/OIPC/license.shtml
 
-------------------------------------------------------------------------------
-- Revisions :
-- Revision Number : 1
-- Version : 0.1
-- Date : 30 Dec 2000
-- Modifier : Jamil Khatib (khatib@ieee.org)
-- Desccription : Created
-- ToOptimize :
-- Bugs :
-------------------------------------------------------------------------------
-- Revisions :
-- Revision Number : 2
-- Version : 0.2
-- Date : 12 Jan 2001
-- Modifier : Jamil Khatib (khatib@ieee.org)
-- Desccription : RXEN bug fixed
--
-------------------------------------------------------------------------------
-- Revisions :
-- Revision Number : 3
-- Version : 0.3
-- Date : 27 April 2001
-- Modifier : Jamil Khatib (khatib@ieee.org)
-- Desccription : FrameAvailable port added to Zero_detect
--
-------------------------------------------------------------------------------
library ieee;
use ieee.std_logic_1164.all;
LIBRARY hdlc;
use hdlc.hdlc_components_pkg.all;
 
entity RxChannel_ent is
 
port (
Rxclk : in std_logic; -- Rx Clock
rst : in std_logic; -- system reset
Rx : in std_logic; -- RX input serial data
RxData : out std_logic_vector(7 downto 0); -- Rx backedn Data bus
ValidFrame : out std_logic; -- Valid Frame
FrameError : out std_logic; -- Frame Error (Indicates error in the
-- next byte at the backend
AbortSignal : out std_logic; -- Abort signal
Readbyte : in std_logic; -- backend read byte
rdy : out std_logic; -- backend ready signal
RxEn : in std_logic); -- Rx Enable (Flow control)
 
end RxChannel_ent;
 
architecture RxChannel_beh of RxChannel_ent is
 
signal RxD_i : std_logic; -- RXD internal signal
signal enable_i : std_logic; -- Internal enable signal
signal aval_i : std_logic; -- Available internal signal
signal FlagDetect_i : std_logic; -- flag Detect internal
signal Abort_i : std_logic; -- Internal Abort signal
signal initzero_i : std_logic; -- Init Zero detect block
signal rxen_i : std_logic; -- RXenable internal
 
-- New
signal ValidFrame_i : std_logic; -- Internal Valid Frame
begin -- RxChannel_beh
 
-------------------------------------------------------------------------------
ValidFrame <= ValidFrame_i;
 
Controller : rxcont_ent
port map (
RxClk => RxClk,
rst => rst,
RxEn => RxEn_i,
AbortedFrame => AbortSignal,
Abort => Abort_i,
FlagDetect => FlagDetect_i,
ValidFrame => ValidFrame_i, --New
FrameError => FrameError,
aval => aval_i,
initzero => initzero_i,
enable => enable_i);
-------------------------------------------------------------------------------
zero_backend : ZeroDetect_ent
port map (
ValidFrame => ValidFrame_i, --New
Readbyte => Readbyte,
aval => aval_i,
enable => enable_i,
StartofFrame => initzero_i,
rdy => rdy,
rst => rst,
RxClk => RxClk,
RxD => RxD_i,
RxData => RxData);
-------------------------------------------------------------------------------
flag_detect : FlagDetect_ent
port map (
Rxclk => Rxclk,
rst => rst,
FlagDetect => FlagDetect_i,
Abort => Abort_i,
RXEN => RXEN,
RxEN_o => RXEN_i,
RXD => RXD_i,
RX => RX);
-------------------------------------------------------------------------------
 
 
end RxChannel_beh;
/CORE/Zero_detect.vhd
0,0 → 1,220
-------------------------------------------------------------------------------
-- Title : Zero Detection
-- Project : HDLC controller
-------------------------------------------------------------------------------
-- File : zero_detect.vhd
-- Author : Jamil Khatib (khatib@ieee.org)
-- Organization: OpenIPCore Project
-- Created : 2000/12/28
-- Last update: 2001/04/27
-- Platform :
-- Simulators : Modelsim 5.3XE/Windows98
-- Synthesizers: FPGA express 3
-- Target :
-- Dependency : ieee.std_logic_1164
--
-------------------------------------------------------------------------------
-- Description: Zero Detection
-------------------------------------------------------------------------------
-- Copyright (c) 2000 Jamil Khatib
--
-- This VHDL design file is an open design; you can redistribute it and/or
-- modify it and/or implement it after contacting the author
-- You can check the draft license at
-- http://www.opencores.org/OIPC/license.shtml
 
-------------------------------------------------------------------------------
-- Revisions :
-- Revision Number : 1
-- Version : 0.1
-- Date : 28 Dec 2000
-- Modifier : Jamil Khatib (khatib@ieee.org)
-- Desccription : Created
-- ToOptimize : Needs large external buffer (1 byte internal buffer)
-- for low speed backend interface
-- (flow control is used to manage this problem)
-------------------------------------------------------------------------------
-- Revisions :
-- Revision Number : 2
-- Version : 0.2
-- Date : 12 Jan 2001
-- Modifier : Jamil Khatib (khatib@ieee.org)
-- Desccription : Enable bug fixed
-- ToOptimize : Needs large external buffer (1 byte internal buffer)
-- for low speed backend interface
-- (flow control is used to manage this problem)
-------------------------------------------------------------------------------
-- Revisions :
-- Revision Number : 3
-- Version : 0.3
-- Date : 27 April 2001
-- Modifier : Jamil Khatib (khatib@ieee.org)
-- Desccription : Available and enable bugs fixed
-- ToOptimize :
-------------------------------------------------------------------------------
library ieee;
use ieee.std_logic_1164.all;
 
entity ZeroDetect_ent is
 
port (
ValidFrame : in std_logic; -- Valid Frame strobe
Readbyte : in std_logic; -- Back end read byte
aval : out std_logic; -- can get more data (connected to flow
-- controller
enable : in std_logic; -- enable (Driven by flow controller)
 
rdy : out std_logic; -- data ready
rst : in std_logic; -- system reset
StartofFrame : in std_logic; -- start of Frame
RxClk : in std_logic; -- RX clock
RxD : in std_logic; -- RX data
RxData : out std_logic_vector(7 downto 0)); -- Receive Data bus
 
end ZeroDetect_ent;
 
architecture ZeroDetect_beh of ZeroDetect_ent is
signal DataRegister : std_logic_vector(7 downto 0);
-- Data register
signal flag : std_logic; -- 8 Bits data ready
 
begin -- ZeroDetect_beh
 
-- purpose: Detect zero
-- type : sequential
-- inputs : RxClk, rst
-- outputs:
detect_proc : process (RxClk, rst)
 
variable ZeroDetected : std_logic; -- Zero Detected
variable tempRegister : std_logic_vector(7 downto 0); -- Data Register
variable counter : integer range 0 to 7; -- Counter
 
variable checkreg : std_logic_vector(5 downto 0); -- Check register
 
begin -- process detect
if rst = '0' then -- asynchronous reset (active low)
 
counter := 0;
tempRegister := (others => '0');
 
DataRegister <= (others => '0');
 
flag <= '0';
ZeroDetected := '0';
 
checkreg := (others => '0');
 
elsif RxClk'event and RxClk = '1' then -- rising clock edge
if enable = '1' then -- No overflow on the backend
 
-- add new bit to the register
-- tempRegister(counter) := RxD;
 
if StartofFrame = '0' then
 
-- add new bit to the check register
checkreg := RxD & checkreg(5 downto 1);
tempRegister(counter) := RxD;
else
-- reset the check register
checkreg := (RxD, others => '0');
counter := 0;
tempRegister(counter) := RxD;
end if;
 
-- check if we got 5 ones
ZeroDetected := not checkreg(5) and checkreg(4) and checkreg(3) and checkreg(2) and checkreg(1) and checkreg(0);
 
 
if ZeroDetected = '1' then
 
flag <= '0';
 
else
 
if counter = 7 then
 
DataRegister <= tempRegister;
 
counter := 0;
 
flag <= '1';
 
 
else
 
counter := counter + 1;
 
flag <= '0';
 
end if;
 
end if;
 
end if;
 
end if;
end process detect_proc;
-------------------------------------------------------------------------------
-- purpose: Backend process
-- type : sequential
-- inputs : Rxclk, rst
-- outputs:
backend_proc : process (Rxclk, rst)
 
variable status : std_logic; -- Status
variable rdy_var : std_logic; -- temp variable for Rdy
 
begin -- process backend_proc
if rst = '0' then -- asynchronous reset (active low)
 
 
RxData <= (others => '0');
 
status := '0';
aval <= '1';
 
rdy_var := '0';
 
rdy <= '0';
 
elsif Rxclk'event and Rxclk = '1' then -- rising clock edge
if enable = '1' then
 
if flag = '1' then
 
status := '1'; -- Can not take more
 
RxData <= DataRegister;
rdy_var := '1';
 
end if; -- flag
 
end if; -- enable
if readbyte = '1' then
 
status := '0'; -- can take more data
 
rdy_var := '0';
 
end if; -- readbyte
 
rdy <= rdy_var;
 
if ValidFrame = '0' then
aval <= '1';
else
 
aval <= not status;
end if;
 
 
end if; -- clk
 
 
end process backend_proc;
 
-------------------------------------------------------------------------------
 
end ZeroDetect_beh;
/CORE/Rxcont.vhd
0,0 → 1,179
-------------------------------------------------------------------------------
-- Title : Rx Controller
-- Project : HDLC controller
-------------------------------------------------------------------------------
-- File : Rxcont.vhd
-- Author : Jamil Khatib (khatib@ieee.org)
-- Organization: OpenIPCore Project
-- Created : 2000/12/30
-- Last update: 2001/04/27
-- Platform :
-- Simulators : Modelsim 5.3XE/Windows98
-- Synthesizers:
-- Target :
-- Dependency : ieee.std_logic_1164
--
-------------------------------------------------------------------------------
-- Description: receive Controller
-------------------------------------------------------------------------------
-- Copyright (c) 2000 Jamil Khatib
--
-- This VHDL design file is an open design; you can redistribute it and/or
-- modify it and/or implement it after contacting the author
-- You can check the draft license at
-- http://www.opencores.org/OIPC/license.shtml
 
-------------------------------------------------------------------------------
-- Revisions :
-- Revision Number : 1
-- Version : 0.1
-- Date : 30 Dec 2000
-- Modifier : Jamil Khatib (khatib@ieee.org)
-- Desccription : Created
-- ToOptimize :
-- Bugs :
-------------------------------------------------------------------------------
-- Revisions :
-- Revision Number : 2
-- Version : 0.2
-- Date : 27 April 2001
-- Modifier : Jamil Khatib (khatib@ieee.org)
-- Desccription : Enable and Available Bugs fixed
-- ToOptimize :
-- Bugs :
-------------------------------------------------------------------------------
library ieee;
use ieee.std_logic_1164.all;
 
entity rxcont_ent is
 
port (
RxClk : in std_logic; -- Rx Clcok
rst : in std_logic; -- system Reset
RxEn : in std_logic; -- Rx Enable
AbortedFrame : out std_logic; -- Aborted frame
Abort : in std_logic; -- Abort detected
FlagDetect : in std_logic; -- Flag Detect
ValidFrame : out std_logic; -- Valid Frame
FrameError : out std_logic; -- Frame Error (Indicates error in the
-- next byte at the backend
aval : in std_logic; -- Can accept more data
initzero : out std_logic; -- init Zero detect block
enable : out std_logic); -- Enable
 
end rxcont_ent;
 
architecture rxcont_beh of rxcont_ent is
 
-- signal validFrame_i : std_logic; -- Internal Valid Frame signal
 
begin -- rxcont_beh
-- purpose: Enable controller
-- type : sequential
-- inputs : Rxclk, rst
-- outputs:
enable_proc : process (Rxclk, rst)
variable counter : integer range 0 to 7; -- Counter
variable FlagCounter : integer range 0 to 7; -- Flag bits counter
variable FrameStatus : std_logic; -- Frame Status
variable FlagInit : std_logic; -- Init flag counter
variable FrameStatusReg : std_logic_vector(7 downto 0);
-- Delay for Frame Status
begin -- process enable_proc
if rst = '0' then -- asynchronous reset (active low)
 
enable <= '0';
FrameStatus := '0';
ValidFrame <= '0';
AbortedFrame <= '0';
Counter := 0;
FlagInit := '0';
initzero <= '0';
FrameStatusReg := (others => '0');
FrameError <= '0';
FlagCounter := 0;
 
elsif Rxclk'event and Rxclk = '1' then -- rising clock edge
-------------------------------------------------------------------------------
-- This is the Valid frame machine
if FlagDetect = '1' then
FlagInit := '1';
FrameStatus := '0';
FlagCounter := 0;
AbortedFrame <= '0';
end if;
 
if FlagInit = '1' then
 
if FlagCounter = 7 then
FrameStatus := '1';
FlagCounter := 0;
initzero <= '1';
FlagInit := '0';
else
FlagCounter := FlagCounter + 1;
initzero <= '0';
end if;
else
initzero <= '0';
end if;
 
if Abort = '1' then
FrameStatus := '0';
AbortedFrame <= '1';
end if;
ValidFrame <= FrameStatusReg(0);
 
FrameStatusReg(7 downto 0) := FrameStatus & FrameStatusReg(7 downto 1);
 
 
 
 
 
 
-------------------------------------------------------------------------------
-- This is the enable machine
if RxEn = '1' then
 
if FrameStatus = '1' then
 
if aval = '1' then
 
enable <= '1';
Counter := 0;
FrameError <= '0';
else
 
if counter = 5 then
 
enable <= '0';
counter := 0;
FrameError <= '1';
 
else
 
enable <= '1';
 
Counter := Counter +1;
FrameError <= '0';
end if; -- counter
 
end if; -- aval
else
FrameError <= '0';
enable <= '0';
-- Counter := 0;
 
end if; -- validframe
else
FrameError <= '0';
enable <= '0';
-- Counter := 0;
 
end if; -- rxen
 
end if; -- clock
end process enable_proc;
 
-------------------------------------------------------------------------------
end rxcont_beh;
/CORE/flag_detect.vhd
0,0 → 1,117
-------------------------------------------------------------------------------
-- Title : HDLC flag detection
-- Project : HDLC controller
-------------------------------------------------------------------------------
-- File : flag_detect.vhd
-- Author : Jamil Khatib (khatib@ieee.org)
-- Organization: OpenIPCore Project
-- Created : 2000/12/28
-- Last update: 2001/01/12
-- Platform :
-- Simulators : Modelsim 5.3XE/Windows98
-- Synthesizers:
-- Target :
-- Dependency : ieee.std_logic_1164
--
-------------------------------------------------------------------------------
-- Description: Flag detection
-------------------------------------------------------------------------------
-- Copyright (c) 2000 Jamil Khatib
--
-- This VHDL design file is an open design; you can redistribute it and/or
-- modify it and/or implement it after contacting the author
-- You can check the draft license at
-- http://www.opencores.org/OIPC/license.shtml
 
-------------------------------------------------------------------------------
-- Revisions :
-- Revision Number : 1
-- Version : 0.1
-- Date : 28 Dec 2000
-- Modifier : Jamil Khatib (khatib@ieee.org)
-- Desccription : Created
--
-------------------------------------------------------------------------------
-- Revisions :
-- Revision Number : 2
-- Version : 0.2
-- Date : 10 Jan 2001
-- Modifier : Jamil Khatib (khatib@ieee.org)
-- Desccription : Code clean
--
-------------------------------------------------------------------------------
-- Revisions :
-- Revision Number : 3
-- Version : 0.3
-- Date : 12 Jan 2001
-- Modifier : Jamil Khatib (khatib@ieee.org)
-- Desccription : RXEN bug fixed
--
-------------------------------------------------------------------------------
library ieee;
use ieee.std_logic_1164.all;
 
entity FlagDetect_ent is
 
port (
Rxclk : in std_logic; -- Rx clock
rst : in std_logic; -- system reset
FlagDetect : out std_logic; -- Flag detected
Abort : out std_logic; -- Abort signal detected
RxEn : in std_logic; -- RX enable
RXEn_O : out std_logic; -- RXEN output signal
RXD : out std_logic; -- RXD output
RX : in std_logic); -- RX signal
 
end FlagDetect_ent;
 
architecture FlagDetect_beh of FlagDetect_ent is
 
signal ShiftReg : std_logic_vector(7 downto 0); -- Shift Register
 
begin -- FlagDetect_beh
 
-- purpose: Flag detection
-- type : sequential
-- inputs : RXclk, rst
-- outputs:
bitstreem_proc : process (RXclk, rst)
 
variable FlagVar : std_logic; -- Flag detected variable
variable Enable_Reg : std_logic_vector(7 downto 0); -- Enable Register
 
begin -- process bitstreem_proc
if rst = '0' then -- asynchronous reset (active low)
 
FlagDetect <= '0';
Abort <= '0';
 
RXD <= '0';
 
FlagVar := '0';
 
ShiftReg <= (others => '0');
 
RXEN_O <= '1';
Enable_Reg := (others => '1');
 
elsif RXclk'event and RXclk = '1' then -- rising clock edge
 
FlagVar := not ShiftReg(0) and ShiftReg(1) and ShiftReg(2) and ShiftReg(3) and ShiftReg(4) and ShiftReg(5) and ShiftReg(6) and not ShiftReg(7);
 
FlagDetect <= FlagVar;
 
Abort <= not ShiftReg(0) and ShiftReg(1) and ShiftReg(2) and ShiftReg(3) and ShiftReg(4) and ShiftReg(5) and ShiftReg(6) and ShiftReg(7);
 
 
ShiftReg(7 downto 0) <= RX & ShiftReg(7 downto 1);
RXD <= ShiftReg(0);
 
RXEN_O <= Enable_Reg(0);
 
Enable_Reg(7 downto 0) := RXEN & Enable_Reg(7 downto 1);
 
end if;
end process bitstreem_proc;
 
end FlagDetect_beh;
/TB/Rx_tb.vhd
0,0 → 1,148
-------------------------------------------------------------------------------
-- Title : Rx Channel test bench
-- Project : HDLC controller
-------------------------------------------------------------------------------
-- File : Rx_tb.vhd
-- Author : Jamil Khatib (khatib@ieee.org)
-- Organization: OpenIPCore Project
-- Created : 2000/12/30
-- Last update: 2001/01/12
-- Platform :
-- Simulators : Modelsim 5.3XE/Windows98
-- Synthesizers:
-- Target :
-- Dependency : ieee.std_logic_1164
--
-------------------------------------------------------------------------------
-- Description: receive Channel test bench
-------------------------------------------------------------------------------
-- Copyright (c) 2000 Jamil Khatib
--
-- This VHDL design file is an open design; you can redistribute it and/or
-- modify it and/or implement it after contacting the author
-- You can check the draft license at
-- http://www.opencores.org/OIPC/license.shtml
 
-------------------------------------------------------------------------------
-- Revisions :
-- Revision Number : 1
-- Version : 0.1
-- Date : 30 Dec 2000
-- Modifier : Jamil Khatib (khatib@ieee.org)
-- Desccription : Created
-- ToOptimize : Add an input procedure to insert data pattern
-- Bugs :
-------------------------------------------------------------------------------
-- Revisions :
-- Revision Number : 2
-- Version : 0.2
-- Date : 12 Jan 2001
-- Modifier : Jamil Khatib (khatib@ieee.org)
-- Desccription : Rx Enable and delayed Read tests are added
-- ToOptimize : Add an input procedure to insert data pattern
-- Bugs :
-------------------------------------------------------------------------------
 
 
 
library ieee;
use ieee.std_logic_1164.all;
use work.hdlc_components_pkg.all;
 
entity rx_tb_ent is
 
end rx_tb_ent;
 
architecture rx_tb_beh of rx_tb_ent is
constant DataStreem : std_logic_vector(88 downto 0) := "11111111011111100100110011011111010001010011111101111000111101001101001011011011001111110";
 
-- "1_11111110_11111100_10011001_10111110_10001010_01111110_11110001_11101001_10100101_10110110_01111110"
 
signal Rxclk_i : std_logic := '0'; -- system clock
signal rst_i : std_logic := '0'; -- system reset
signal Rx_i : std_logic; -- internal Rx serial data
 
signal RxData_i : std_logic_vector(7 downto 0); -- backend data bus
signal ValidFrame_i : std_logic; -- backedn Valid frame signal
signal AbortSignal_i : std_logic; -- backend abort signal
signal Readbyte_i : std_logic; -- backend read byte
signal rdy_i : std_logic; -- backend ready signal
signal RxEn_i : std_logic; -- receive enable
signal FrameError_i : std_logic; -- Frame Error
begin -- rx_tb_beh
-------------------------------------------------------------------------------
 
Rxclk_i <= not Rxclk_i after 20 ns;
 
rst_i <= '0',
'1' after 30 ns;
 
RxEn_i <= '1',
'0' after 960 ns,
'1' after 1280 ns;
-------------------------------------------------------------------------------
 
-- purpose: Serial interface stimulus
-- type : sequential
-- inputs :
-- outputs:
serial_proc : process
variable count : integer := 0; -- Counter
begin -- process backend_proc
 
 
wait until Rxclk_i = '0';
 
rx_i <= DataStreem(count);
 
if count = DataStreem'length-1 then
count := 0;
else
count := count +1;
end if;
 
end process serial_proc;
-------------------------------------------------------------------------------
-- purpose: Backend stimulus
-- type : combinational
-- inputs :
-- outputs:
backend_proc : process(rdy_i)
variable counter : integer := 0; -- Counter
begin -- process backend_proc
if rdy_i = '1' then
-- Counter is used to generate Readbyte signal at different delays
if not((counter > 20) and (counter < 40)) then
Readbyte_i <= '1' after 60 ns;
elsif(counter mod 2 = 0) then
-- data bits will be lost in this case
Readbyte_i <= '1' after 350 ns;
else
Readbyte_i <= '1' after 60 ns;
end if;
counter := counter+1;
else
Readbyte_i <= '0';
end if;
 
 
 
end process backend_proc;
 
-------------------------------------------------------------------------------
 
uut : RxChannel_ent
port map (
Rxclk => Rxclk_i,
rst => rst_i,
Rx => Rx_i,
RxData => RxData_i,
ValidFrame => ValidFrame_i,
FrameError => FrameError_i,
AbortSignal => AbortSignal_i,
Readbyte => Readbyte_i,
rdy => rdy_i,
RxEn => RxEn_i);
 
 
end rx_tb_beh;
/SCRIPTS/WAVE.DO
0,0 → 1,20
onerror {resume}
quietly WaveActivateNextPane {} 0
add wave -noupdate -format Logic /rx_tb_ent/rxclk_i
add wave -noupdate -format Logic /rx_tb_ent/rst_i
add wave -noupdate -format Logic /rx_tb_ent/rx_i
add wave -noupdate -format Logic /rx_tb_ent/uut/rxd_i
add wave -noupdate -format Literal /rx_tb_ent/rxdata_i
add wave -noupdate -format Logic /rx_tb_ent/readbyte_i
add wave -noupdate -format Logic /rx_tb_ent/rdy_i
add wave -noupdate -format Logic /rx_tb_ent/rxen_i
add wave -noupdate -format Logic /rx_tb_ent/uut/enable_i
add wave -noupdate -format Logic /rx_tb_ent/uut/aval_i
add wave -noupdate -format Logic /rx_tb_ent/uut/flagdetect_i
add wave -noupdate -format Logic /rx_tb_ent/validframe_i
add wave -noupdate -format Logic /rx_tb_ent/uut/initzero_i
add wave -noupdate -format Logic /rx_tb_ent/frameerror_i
add wave -noupdate -format Logic /rx_tb_ent/abortsignal_i
TreeUpdate [SetDefaultTree]
WaveRestoreCursors {806902 ps}
WaveRestoreZoom {0 ps} {2940 ns}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.