git-svn-id: http://moon:8086/svn/vhdl/trunk@1429 cc03376c-175c-47c8-b038-4cd826a8556b
This commit is contained in:
2021-03-21 12:04:37 +00:00
parent 9edf6a70af
commit 2f7ab91e0d
116 changed files with 50542 additions and 0 deletions
+1
View File
@@ -0,0 +1 @@
work vconfig.vhdl
+5
View File
@@ -0,0 +1,5 @@
do vconfig_tb.fdo
delete wave *
do wave.do
restart -force
run 6000ns -all
+10
View File
@@ -0,0 +1,10 @@
# Auto generated by Project Navigator for Modelsim
vlib work
vcom -93 -explicit vconfig.vhdl
## You need to generate your own stimuli
vsim -t 1ps vconfig
view wave
add wave *
view structure
view signals
+1
View File
@@ -0,0 +1 @@
work
+1
View File
@@ -0,0 +1 @@
vhdl work vconfig.vhdl
File diff suppressed because it is too large Load Diff
+183
View File
@@ -0,0 +1,183 @@
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
-- Uncomment the following lines to use the declarations that are
-- provided for instantiating Xilinx primitive components.
--library UNISIM;
--use UNISIM.VComponents.all;
entity vconfig is
Port ( RES : in std_logic;
nINIT_B : in std_logic;
CLK : in std_logic;
DONE : in std_logic;
CCLK : out std_logic;
CCLK_PRESCALER : in std_logic_vector(5 downto 0);
LOAD_PRESCALER : in std_logic;
DIN : in std_logic_vector(31 downto 0);
DOUT : out std_logic;
LOAD_SREG : in std_logic;
BUF_IS_EMPTY : inout std_logic);
end vconfig;
architecture Behavioral of vconfig is
constant nbits : integer := 32;
constant nBufs : integer := 2;
type t_config_state is (CFG_STOP, CFG_INIT, CFG_RUN);
type t_buf is array (0 to nBufs-1) of std_logic_vector (nBits-1 downto 0);
signal REG: t_buf;
signal count, CLK_SCALE: integer range 0 to 63;
signal SHIFT_CNT: integer range 0 to nbits-1;
signal state, next_state : t_config_state;
signal SCLK, SHIFT_EN : STD_LOGIC;
signal buf_depth: integer range 0 to 2;
signal tempID, readBufId, writeBufId : integer range 0 to nBufs-1;
begin
-- 4-bit loadable serial-in and serial-out shift register
-- CLK: in STD_LOGIC;
-- DIN: in STD_LOGIC;
-- LOAD: in STD_LOGIC;
-- LOAD_DATA: in STD_LOGIC_VECTOR(3 downto 0);
-- DOUT: out STD_LOGIC;
process (RES, SCLK, state, nINIT_B, DONE, REG, BUF_IS_EMPTY)
begin
if (RES = '1') then
CCLK <= '1';
SHIFT_EN <= '0';
DOUT <= 'Z';
else
case state is
when CFG_STOP =>
SHIFT_EN <= '0';
CCLK <= '1';
if (DONE = '0' and BUF_IS_EMPTY = '0') then
next_state <= CFG_INIT;
else
next_state <= CFG_STOP;
end if;
when CFG_INIT =>
CCLK <= SCLK;
next_state <= CFG_RUN;
when CFG_RUN =>
SHIFT_EN <= '1';
CCLK <= SCLK;
if (DONE = '1' or nINIT_B = '0' or BUF_IS_EMPTY = '1') then
next_state <= CFG_STOP;
else
next_state <= CFG_RUN;
end if;
end case;
if (nINIT_B = '1') then
DOUT <= STD_LOGIC(REG(readBufId)(nbits-1));
else
DOUT <= 'Z';
end if;
end if;
end process;
sreg:
process(RES, SCLK, REG, DIN, LOAD_SREG, SHIFT_EN, SHIFT_CNT)
begin
if (RES = '1') then
BUF_IS_EMPTY <= '1';
SHIFT_CNT <= 0;
writeBufId <= 0;
readBufId <= 0;
buf_depth <= 0;
elsif (LOAD_SREG = '1') then
REG(writeBufId) <= DIN;
if (SHIFT_EN = '0') then
SHIFT_CNT <= nbits-1;
end if;
if (buf_depth = nbufs) then
buf_depth <= buf_depth ;
else
buf_depth <= buf_depth + 1;
end if;
else
if SCLK='0' and SCLK'event then
if SHIFT_EN = '1' then
REG(readBufId)(nbits-1 downto 0) <= REG(readBufId)(nbits-2 downto 0) & '0';
if (SHIFT_CNT = 0) then
if (buf_depth = 0) then
writeBufId <= 0;
readBufId <= 0;
else
SHIFT_CNT <= nbits-1;
tempID <= readBufID;
readBufID <= writeBufId;
writeBufId <= tempID;
buf_depth <= buf_depth - 1;
end if;
else
SHIFT_CNT <= SHIFT_CNT - 1;
end if;
end if;
end if;
end if;
if (SHIFT_CNT = 0 and buf_depth = 1) then
BUF_IS_EMPTY <= '1';
else
BUF_IS_EMPTY <= '0';
end if;
end process;
-- 4-bit synchronous counter with count enable,
-- asynchronous reset
-- CLK: in STD_LOGIC;
-- RESET: in STD_LOGIC;
-- CE, LOAD, DIR: in STD_LOGIC;
-- DIN: in STD_LOGIC_VECTOR(3 downto 0);
-- COUNT: inout STD_LOGIC_VECTOR(3 downto 0);
cfg_state_gen:
process(RES, SCLK, next_state)
begin
if (RES = '1') then
state <= CFG_STOP;
elsif SCLK='1' and SCLK'event then
state <= next_state;
end if;
end process;
clk_prescaler:
process (RES, CLK, CCLK_PRESCALER, LOAD_PRESCALER)
begin
if (RES = '1') then
SCLK <= '1';
CLK_SCALE <= 1;
COUNT <= CLK_SCALE;
elsif (LOAD_PRESCALER = '1') then
CLK_SCALE <= CONV_INTEGER(CCLK_PRESCALER);
elsif CLK='1' and CLK'event then
if (COUNT = 1) then
SCLK <= not SCLK;
COUNT <= CLK_SCALE;
else
COUNT <= COUNT - 1;
end if;
end if;
end process;
end Behavioral;
+54
View File
@@ -0,0 +1,54 @@
#PINLOCK_BEGIN
#Sun May 02 01:57:09 2004
NET "CLK" LOC = "S:PIN30";
NET "DIN<0>" LOC = "S:PIN94";
NET "DIN<10>" LOC = "S:PIN132";
NET "DIN<11>" LOC = "S:PIN12";
NET "DIN<12>" LOC = "S:PIN124";
NET "DIN<13>" LOC = "S:PIN85";
NET "DIN<14>" LOC = "S:PIN118";
NET "DIN<15>" LOC = "S:PIN82";
NET "DIN<16>" LOC = "S:PIN139";
NET "DIN<17>" LOC = "S:PIN40";
NET "DIN<18>" LOC = "S:PIN6";
NET "DIN<19>" LOC = "S:PIN115";
NET "DIN<1>" LOC = "S:PIN35";
NET "DIN<20>" LOC = "S:PIN134";
NET "DIN<21>" LOC = "S:PIN76";
NET "DIN<22>" LOC = "S:PIN136";
NET "DIN<23>" LOC = "S:PIN13";
NET "DIN<24>" LOC = "S:PIN103";
NET "DIN<25>" LOC = "S:PIN112";
NET "DIN<26>" LOC = "S:PIN59";
NET "DIN<27>" LOC = "S:PIN88";
NET "DIN<28>" LOC = "S:PIN101";
NET "DIN<29>" LOC = "S:PIN25";
NET "DIN<2>" LOC = "S:PIN93";
NET "DIN<30>" LOC = "S:PIN38";
NET "DIN<31>" LOC = "S:PIN91";
NET "DIN<3>" LOC = "S:PIN21";
NET "DIN<4>" LOC = "S:PIN143";
NET "DIN<5>" LOC = "S:PIN28";
NET "DIN<6>" LOC = "S:PIN24";
NET "DIN<7>" LOC = "S:PIN44";
NET "DIN<8>" LOC = "S:PIN104";
NET "DIN<9>" LOC = "S:PIN140";
NET "DONE" LOC = "S:PIN48";
NET "LOAD_PRESCALER" LOC = "S:PIN74";
NET "LOAD_SREG" LOC = "S:PIN64";
NET "RES" LOC = "S:PIN98";
NET "VCLK_PRESCALER<0>" LOC = "S:PIN11";
NET "VCLK_PRESCALER<1>" LOC = "S:PIN97";
NET "VCLK_PRESCALER<2>" LOC = "S:PIN133";
NET "VCLK_PRESCALER<3>" LOC = "S:PIN7";
NET "VCLK_PRESCALER<4>" LOC = "S:PIN138";
NET "VCLK_PRESCALER<5>" LOC = "S:PIN142";
NET "nINIT_B" LOC = "S:PIN10";
NET "DOUT" LOC = "S:PIN79";
NET "SCLK" LOC = "S:PIN9";
NET "VCLK" LOC = "S:PIN50";
NET "dummy_out" LOC = "S:PIN117";
#PINLOCK_END
+13
View File
@@ -0,0 +1,13 @@
## NOTE: Do not edit this file.
## Autogenerated by ProjNav (creatfdo.tcl) on Wed May 05 21:50:05 Westeuropäische Sommerzeit 2004
##
vlib work
vcom -93 -explicit vconfig.vhdl
vcom -93 -explicit vconfig_tb.vhd
vsim -t 1ps -lib work vconfig_tb
do vconfig_tb.udo
view wave
add wave *
view structure
view signals
run 6000ns
+15
View File
@@ -0,0 +1,15 @@
## NOTE: Do not edit this file.
## Auto generated by Project Navigator for VHDL Post-PAR Simulation
##
vlib work
## Compile Post-PAR Model for Module vconfig
vcom -87 -explicit vconfig_timesim.vhd
vcom -93 -explicit vconfig_tb.vhd
vsim -t 1ps -sdfmax /UUT=vconfig_timesim.sdf -lib work vconfig_tb
do vconfig_tb.udo
view wave
add wave *
view structure
view signals
run 6000ns
## End
+4
View File
@@ -0,0 +1,4 @@
-- ProjNav VHDL simulation template: vconfig_tb.udo
-- You may edit this file after the line that starts with
-- '-- START' to customize your simulation
-- START user-defined simulation commands
+129
View File
@@ -0,0 +1,129 @@
-- VHDL Test Bench Created from source file vconfig.vhd -- 20:20:01 05/01/2004
--
-- Notes:
-- This testbench has been automatically generated using types std_logic and
-- std_logic_vector for the ports of the unit under test. Xilinx recommends
-- that these types always be used for the top-level I/O of a design in order
-- to guarantee that the testbench will bind correctly to the post-implementation
-- simulation model.
--
LIBRARY ieee;
USE ieee.numeric_std.ALL;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY vconfig_tb IS
END vconfig_tb;
ARCHITECTURE behavior OF vconfig_tb IS
COMPONENT vconfig
PORT(
RES : IN std_logic;
nINIT_B : IN std_logic;
CLK : IN std_logic;
DONE : IN std_logic;
CCLK : OUT std_logic;
CCLK_PRESCALER : IN std_logic_vector(5 downto 0);
LOAD_PRESCALER : in std_logic;
DIN : IN std_logic_vector(31 downto 0);
DOUT : OUT std_logic;
BUF_IS_EMPTY : inout std_logic;
LOAD_SREG : IN std_logic
);
END COMPONENT;
SIGNAL RES : std_logic := '1';
SIGNAL nINIT_B : std_logic := '0';
SIGNAL CLK : std_logic := '0';
SIGNAL DONE : std_logic := '1';
SIGNAL CCLK : std_logic;
SIGNAL CCLK_PRESCALER : std_logic_vector(5 downto 0);
SIGNAL LOAD_PRESCALER : std_logic := '0';
SIGNAL DOUT : std_logic;
SIGNAL DIN : std_logic_vector(31 downto 0);
SIGNAL LOAD_SREG : std_logic := '0';
SIGNAL BUF_IS_EMPTY : std_logic;
constant ClockPeriod : Time := 16.667 ns;
constant CFG_PRESCALE: integer range 0 to 63 := 2;
BEGIN
uut: vconfig PORT MAP(
RES => RES,
nINIT_B => nINIT_B,
CLK => CLK,
DONE => DONE,
CCLK => CCLK,
CCLK_PRESCALER => CCLK_PRESCALER,
LOAD_PRESCALER => LOAD_PRESCALER,
DOUT => DOUT,
DIN => DIN,
BUF_IS_EMPTY => BUF_IS_EMPTY,
LOAD_SREG => LOAD_SREG
);
busclock: process
begin
CLK <= '1';
loop
wait for (ClockPeriod / 2);
CLK <= not CLK;
end loop;
end process;
-- *** Test Bench - User Defined Section ***
tb : PROCESS
BEGIN
wait for 5*ClockPeriod;
RES <= '0';
wait for 5*ClockPeriod;
CCLK_PRESCALER <= CONV_STD_LOGIC_VECTOR(CFG_PRESCALE,6);
wait for 1.5*ClockPeriod;
LOAD_PRESCALER <= '1';
wait for 1*ClockPeriod;
LOAD_PRESCALER <= '0';
wait for 1*ClockPeriod;
DIN <= X"BAA34569";
wait for 1.5*ClockPeriod;
LOAD_SREG <= '1';
wait for 1.0*ClockPeriod;
LOAD_SREG <= '0';
wait for 5*ClockPeriod;
DONE <= '0';
wait for 2*ClockPeriod;
nINIT_B <= '1';
wait for 30.0*real(CFG_PRESCALE)*ClockPeriod*2;
DIN <= X"8654F41B";
wait for 1.5*ClockPeriod;
LOAD_SREG <= '1';
wait for 2.0*ClockPeriod;
LOAD_SREG <= '0';
wait for 29.0*real(CFG_PRESCALE)*ClockPeriod*2;
DONE <= '1';
wait for 10.0*ClockPeriod;
nINIT_B <= '0';
wait; -- will wait forever
END PROCESS;
-- *** End Test Bench - User Defined Section ***
END;
File diff suppressed because it is too large Load Diff
+40
View File
@@ -0,0 +1,40 @@
onerror {resume}
quietly WaveActivateNextPane {} 0
add wave -noupdate -format Logic /vconfig_tb/uut/res
add wave -noupdate -format Logic /vconfig_tb/uut/ninit_b
add wave -noupdate -format Logic /vconfig_tb/uut/clk
add wave -noupdate -format Logic /vconfig_tb/uut/done
add wave -noupdate -format Logic /vconfig_tb/uut/cclk
add wave -noupdate -format Literal /vconfig_tb/uut/cclk_prescaler
add wave -noupdate -format Logic /vconfig_tb/uut/load_prescaler
add wave -noupdate -format Literal /vconfig_tb/uut/din
add wave -noupdate -format Logic /vconfig_tb/uut/dout
add wave -noupdate -format Logic /vconfig_tb/uut/load_sreg
add wave -noupdate -format Logic /vconfig_tb/uut/buf_is_empty
add wave -noupdate -format Literal /vconfig_tb/uut/reg
add wave -noupdate -format Literal /vconfig_tb/uut/count
add wave -noupdate -format Literal /vconfig_tb/uut/clk_scale
add wave -noupdate -format Literal /vconfig_tb/uut/shift_cnt
add wave -noupdate -format Literal /vconfig_tb/uut/state
add wave -noupdate -format Literal /vconfig_tb/uut/next_state
add wave -noupdate -format Logic /vconfig_tb/uut/sclk
add wave -noupdate -format Logic /vconfig_tb/uut/shift_en
add wave -noupdate -format Literal /vconfig_tb/uut/buf_depth
add wave -noupdate -format Literal /vconfig_tb/uut/tempid
add wave -noupdate -format Literal /vconfig_tb/uut/readbufid
add wave -noupdate -format Literal /vconfig_tb/uut/writebufid
TreeUpdate [SetDefaultTree]
WaveRestoreCursors {{Cursor 1} {2809539 ps} 0}
WaveRestoreZoom {1356698 ps} {12202906 ps}
configure wave -namecolwidth 150
configure wave -valuecolwidth 100
configure wave -justifyvalue left
configure wave -signalnamewidth 1
configure wave -snapdistance 10
configure wave -datasetprefix 0
configure wave -rowmargin 4
configure wave -childrowmargin 2
configure wave -gridoffset 0
configure wave -gridperiod 1
configure wave -griddelta 40
configure wave -timeline 0
Binary file not shown.
+1
View File
@@ -0,0 +1 @@
work
+1
View File
@@ -0,0 +1 @@
vhdl work "main_top.vhdl"
+86
View File
@@ -0,0 +1,86 @@
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
-- Uncomment the following lines to use the declarations that are
-- provided for instantiating Xilinx primitive components.
--library UNISIM;
--use UNISIM.VComponents.all;
entity main_top is
Port ( clk : in std_logic;
resn : in std_logic;
a : in std_logic_vector(31 downto 0);
d : inout std_logic_vector(31 downto 0);
wen : in std_logic;
csn : in std_logic);
end main_top;
architecture Behavioral of main_top is
type t_reg is array (31 downto 0) of std_logic ;
signal reg_a, reg_b, reg_c : t_reg;
signal cs_a, cs_b, cs_c, CI, CO : std_logic;
signal dmuxo : std_logic_vector(31 downto 0);
signal mux_ctrl : std_logic_vector (3 downto 0);
signal AA,BB,S31: std_logic_vector(32-1 downto 0);
signal sum : std_logic_vector(32 downto 0);
signal zeros: std_logic_vector(32-1 downto 0) := (others => '0');
begin
mux_ctrl <= a(7 downto 4);
dmuxo <= std_logic_vector(reg_a) when (mux_ctrl = X"0") else
std_logic_vector(reg_b) when (mux_ctrl = X"1") else
std_logic_vector(reg_c) when (mux_ctrl = X"2") else
X"12345678";
cs_a <= '1' when (mux_ctrl = X"0" and csn = '0') else '0';
cs_b <= '1' when (mux_ctrl = X"1" and csn = '0') else '0';
cs_c <= '1' when (mux_ctrl = X"2" and csn = '0') else '0';
CI <= wen;
AA <= dmuxo when (wen = '1' and csn = '0') else (31 downto 0 => 'Z');
BB <=a;
d <= S31;
write_reg_a: process (clk, wen, cs_a, d)
begin
if clk'event and clk = '0' then
if (wen = '0' and cs_a = '1') then
reg_a <= t_reg(d);
end if;
end if;
end process;
write_reg_b: process (clk, wen, cs_b, d)
begin
if clk'event and clk = '0' then
if (wen = '0' and cs_b = '1') then
reg_b <= t_reg(d);
end if;
end if;
end process;
write_reg_c: process (clk, wen, cs_c, d)
begin
if clk'event and clk = '0' then
if (wen = '0' and cs_c = '1') then
reg_c <= t_reg(d);
end if;
end if;
end process;
process (CI, AA, BB, sum)
begin
sum <= ('0' & AA) + ('0' & BB) + (zeros & CI);
S31 <= sum(32-1 downto 0);
CO <= sum(32);
end process;
end Behavioral;
+53
View File
@@ -0,0 +1,53 @@
set -tmpdir ./xst/projnav.tmp
set -xsthdpdir ./xst
run
-ifn main_top.prj
-ifmt mixed
-ofn main_top
-ofmt NGC
-p xc3s50-5-tq144
-top main_top
-opt_mode Speed
-opt_level 1
-iuc NO
-lso main_top.lso
-keep_hierarchy NO
-rtlview Yes
-glob_opt AllClockNets
-read_cores YES
-write_timing_constraints NO
-cross_clock_analysis NO
-hierarchy_separator _
-bus_delimiter <>
-case maintain
-slice_utilization_ratio 100
-verilog2001 YES
-fsm_extract YES -fsm_encoding Auto
-safe_implementation No
-fsm_style lut
-ram_extract Yes
-ram_style Auto
-rom_extract Yes
-mux_style Auto
-decoder_extract YES
-priority_extract YES
-shreg_extract YES
-shift_extract YES
-xor_collapse YES
-rom_style Auto
-mux_extract YES
-resource_sharing YES
-mult_style auto
-iobuf YES
-max_fanout 500
-bufg 8
-register_duplication YES
-register_balancing No
-slice_packing YES
-optimize_primitives NO
-use_clock_enable Yes
-use_sync_set Yes
-use_sync_reset Yes
-iob auto
-equivalent_register_removal YES
-slice_utilization_ratio_maxmargin 5
@@ -0,0 +1,13 @@
## NOTE: Do not edit this file.
## Autogenerated by ProjNav (creatfdo.tcl) on Wed Jun 02 00:28:35 Westeuropäische Sommerzeit 2004
##
vlib work
vcom -93 -explicit main_top.vhdl
vcom -93 -explicit main_top_tb.vhd
vsim -t 1ps -lib work main_top_main_top_tb_vhd_tb
do main_top_main_top_tb_vhd_tb.udo
view wave
add wave *
view structure
view signals
run 1000ns
@@ -0,0 +1,15 @@
## NOTE: Do not edit this file.
## Auto generated by Project Navigator for VHDL Post-Translate Simulation
##
vlib work
## Compile Post-Translate Model for Module main_top
vcom -87 -explicit main_top_translate.vhd
vcom -93 -explicit main_top_tb.vhd
vsim -t 1ps -lib work main_top_main_top_tb_vhd_tb
do main_top_main_top_tb_vhd_tb.udo
view wave
add wave *
view structure
view signals
run 1000ns
## End
@@ -0,0 +1,15 @@
## NOTE: Do not edit this file.
## Auto generated by Project Navigator for VHDL Post-PAR Simulation
##
vlib work
## Compile Post-PAR Model for Module main_top
vcom -87 -explicit main_top_timesim.vhd
vcom -93 -explicit main_top_tb.vhd
vsim -t 1ps -sdfmax /UUT=main_top_timesim.sdf -lib work main_top_main_top_tb_vhd_tb
do main_top_main_top_tb_vhd_tb.udo
view wave
add wave *
view structure
view signals
run 1000ns
## End
@@ -0,0 +1,4 @@
-- ProjNav VHDL simulation template: main_top_main_top_tb_vhd_tb.udo
-- You may edit this file after the line that starts with
-- '-- START' to customize your simulation
-- START user-defined simulation commands
+134
View File
@@ -0,0 +1,134 @@
-- VHDL Test Bench Created from source file main_top.vhd -- 00:26:28 06/02/2004
--
-- Notes:
-- This testbench has been automatically generated using types std_logic and
-- std_logic_vector for the ports of the unit under test. Xilinx recommends
-- that these types always be used for the top-level I/O of a design in order
-- to guarantee that the testbench will bind correctly to the post-implementation
-- simulation model.
--
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
USE ieee.numeric_std.ALL;
ENTITY main_top_main_top_tb_vhd_tb IS
END main_top_main_top_tb_vhd_tb;
ARCHITECTURE behavior OF main_top_main_top_tb_vhd_tb IS
COMPONENT main_top
PORT(
clk : IN std_logic;
resn : IN std_logic;
a : IN std_logic_vector(31 downto 0);
wen : IN std_logic;
csn : IN std_logic;
d : INOUT std_logic_vector(31 downto 0)
);
END COMPONENT;
SIGNAL clk : std_logic;
SIGNAL resn : std_logic;
SIGNAL a : std_logic_vector(31 downto 0);
SIGNAL d : std_logic_vector(31 downto 0);
SIGNAL wen : std_logic;
SIGNAL csn : std_logic;
constant ClockPeriod : Time := 25 ns;
BEGIN
uut: main_top PORT MAP(
clk => clk,
resn => resn,
a => a,
d => d,
wen => wen,
csn => csn
);
clockgen: process
begin
clk <= '1';
loop
wait for (ClockPeriod / 2);
clk <= not clk;
end loop;
end process;
-- *** Test Bench - User Defined Section ***
tb : PROCESS
BEGIN
wait for 8*ClockPeriod;
resn <= '1';
wait for 4*ClockPeriod;
wen <= '0';
a <= X"00000000";
wait for 1*ClockPeriod;
d <= X"AAAAAAAA";
csn <= '0';
wait for 1*ClockPeriod;
csn <= '1';
a <= X"00000010";
wait for 1*ClockPeriod;
d <= X"BBBBBBBB";
csn <= '0';
wait for 1*ClockPeriod;
csn <= '1';
a <= X"00000020";
wait for 1*ClockPeriod;
d <= X"CCCCCCCC";
csn <= '0';
wait for 1*ClockPeriod;
csn <= '1';
a <= X"00000030";
wait for 1*ClockPeriod;
d <= X"DDDDDDDD";
csn <= '0';
wait for 1*ClockPeriod;
csn <= '1';
wait for 8*ClockPeriod;
wen <= '1';
a <= X"00000000";
wait for 1*ClockPeriod;
d <= (31 downto 0 => 'Z');
csn <= '0';
wait for 1*ClockPeriod;
csn <= '1';
a <= X"00000010";
wait for 1*ClockPeriod;
d <= (31 downto 0 => 'Z');
csn <= '0';
wait for 1*ClockPeriod;
csn <= '1';
a <= X"00000020";
wait for 1*ClockPeriod;
d <= (31 downto 0 => 'Z');
csn <= '0';
wait for 1*ClockPeriod;
csn <= '1';
a <= X"00000030";
wait for 1*ClockPeriod;
d <= (31 downto 0 => 'Z');
csn <= '0';
wait for 1*ClockPeriod;
csn <= '1';
wait; -- will wait forever
END PROCESS;
-- *** End Test Bench - User Defined Section ***
END;
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+1
View File
@@ -0,0 +1 @@
work main_top.vhdl
+28
View File
@@ -0,0 +1,28 @@
onerror {resume}
quietly WaveActivateNextPane {} 0
add wave -noupdate -format Logic /main_top_main_top_tb_vhd_tb/clk
add wave -noupdate -format Logic /main_top_main_top_tb_vhd_tb/resn
add wave -noupdate -format Literal -radix hexadecimal /main_top_main_top_tb_vhd_tb/a
add wave -noupdate -format Literal -radix hexadecimal /main_top_main_top_tb_vhd_tb/d
add wave -noupdate -format Logic /main_top_main_top_tb_vhd_tb/wen
add wave -noupdate -format Logic /main_top_main_top_tb_vhd_tb/csn
add wave -noupdate -format Literal -radix hexadecimal /main_top_main_top_tb_vhd_tb/uut/reg_a
add wave -noupdate -format Literal -radix hexadecimal /main_top_main_top_tb_vhd_tb/uut/reg_b
add wave -noupdate -format Literal -radix hexadecimal /main_top_main_top_tb_vhd_tb/uut/reg_c
add wave -noupdate -format Literal -radix hexadecimal /main_top_main_top_tb_vhd_tb/uut/dmuxo
add wave -noupdate -format Literal -radix hexadecimal /main_top_main_top_tb_vhd_tb/uut/mux_ctrl
TreeUpdate [SetDefaultTree]
WaveRestoreCursors {{Cursor 1} {684150 ps} 0}
WaveRestoreZoom {356007 ps} {1033895 ps}
configure wave -namecolwidth 150
configure wave -valuecolwidth 100
configure wave -justifyvalue left
configure wave -signalnamewidth 1
configure wave -snapdistance 10
configure wave -datasetprefix 0
configure wave -rowmargin 4
configure wave -childrowmargin 2
configure wave -gridoffset 0
configure wave -gridperiod 1
configure wave -griddelta 40
configure wave -timeline 0
+50
View File
@@ -0,0 +1,50 @@
# -------------------------------------------------
# Global options
# -------------------------------------------------
LANG_STD := 93c
IEEE_STD := standard
WORK_PATH := work
SOURCE_PATH := src
LIB_PATH := ../lib
# -------------------------------------------------
# Target options
# -------------------------------------------------
TARGET := tb_eval_fixed_ja
SOURCES :=
# -------------------------------------------------
GHDL_OPT := --workdir=$(WORK_PATH) --std=$(LANG_STD) --ieee=$(IEEE_STD)
# -------------------------------------------------
all: elaborate
.PHONY: syntax
syntax:
ghdl -s $(GHDL_OPT) $(SOURCE_PATH)/*.vhd
import:
ghdl -i $(GHDL_OPT) $(LIB_PATH)/*.vhd
analyze: import
ghdl -a $(GHDL_OPT) $(LIB_PATH)/*.vhd $(SOURCE_PATH)/*.vhd
anaborate: import
ghdl -c $(GHDL_OPT) $(LIB_PATH)/*.vhd $(SOURCE_PATH)/*.vhd -e $(TARGET)
makeunit: import
ghdl -m $(GHDL_OPT) $(TARGET)
elaborate: analyze
ghdl -e $(GHDL_OPT) $(TARGET)
run: elaborate
ghdl -r $(GHDL_OPT) $(TARGET)
# -------------------------------------------------
.PHONY: clean
clean:
rm -rf $(TARGET)
cd $(WORK_PATH); rm -rf *.o *.cf
# -------------------------------------------------
@@ -0,0 +1 @@
work
@@ -0,0 +1,2 @@
vhdl work "W:/vhdl/lib/src/fixed_ja/fixed_ja.vhd"
vhdl work "W:/vhdl/projects/eval_fixed_ja/src/eval_fixed_ja_syn.vhd"
@@ -0,0 +1,55 @@
set -tmpdir ./xst/projnav.tmp
set -xsthdpdir ./xst
run
-ifn eval_fixed_ja.prj
-ifmt mixed
-ofn eval_fixed_ja
-ofmt NGC
-p xc4vsx35-10-ff668
-top eval_fixed_ja
-opt_mode Speed
-opt_level 1
-iuc NO
-lso eval_fixed_ja.lso
-keep_hierarchy NO
-rtlview Yes
-glob_opt AllClockNets
-read_cores YES
-write_timing_constraints NO
-cross_clock_analysis NO
-hierarchy_separator /
-bus_delimiter <>
-case maintain
-slice_utilization_ratio 100
-dsp_utilization_ratio 100
-verilog2001 YES
-fsm_extract YES -fsm_encoding Auto
-safe_implementation No
-fsm_style lut
-ram_extract Yes
-ram_style Auto
-rom_extract Yes
-mux_style Auto
-decoder_extract YES
-priority_extract YES
-shreg_extract YES
-shift_extract YES
-xor_collapse YES
-rom_style Auto
-mux_extract YES
-resource_sharing YES
-use_dsp48 auto
-iobuf YES
-max_fanout 500
-bufg 32
-bufr 24
-register_duplication YES
-register_balancing No
-slice_packing YES
-optimize_primitives NO
-use_clock_enable Auto
-use_sync_set Auto
-use_sync_reset Auto
-iob auto
-equivalent_register_removal YES
-slice_utilization_ratio_maxmargin 5
Binary file not shown.
@@ -0,0 +1,15 @@
## NOTE: Do not edit this file.
## Autogenerated by ProjNav (creatfdo.tcl) on Tue May 22 21:51:13 Westeuropäische Sommerzeit 2007
##
vlib work
vcom -explicit -93 "W:/vhdl/lib/src/fixed_ja/fixed_ja.vhd"
vcom -explicit -93 "W:/vhdl/lib/src/fixed_ja/fixed_ja_body.vhd"
vcom -explicit -93 "W:/vhdl/projects/eval_fixed_ja/src/eval_fixed_ja_syn.vhd"
vcom -explicit -93 "W:/vhdl/projects/eval_fixed_ja/src/tb_eval_fixed_ja_syn.vhd"
vsim -t 1ps -lib work tb_eval_fixed_ja_vhd
do {tb_eval_fixed_ja_vhd.udo}
view wave
add wave *
view structure
view signals
run 1000ns
@@ -0,0 +1,4 @@
-- ProjNav VHDL simulation template: tb_eval_fixed_ja_vhd.udo
-- You may edit this file after the line that starts with
-- '-- START' to customize your simulation
-- START user-defined simulation commands
Binary file not shown.
@@ -0,0 +1 @@
work
@@ -0,0 +1,2 @@
vhdl ieee_proposed "C:/Programme/Xilinx9/vhdl/src/ieee_proposed/fixed_pkg_c.vhd"
vhdl work "../src/eval_fixed_ja_syn.vhd"
@@ -0,0 +1,59 @@
set -tmpdir "./xst/projnav.tmp"
set -xsthdpdir "./xst"
run
-ifn eval_fixed_ja.prj
-ifmt mixed
-ofn eval_fixed_ja
-ofmt NGC
-p xc4vsx35-10-ff668
-top eval_fixed_ja
-opt_mode Speed
-opt_level 1
-power NO
-iuc NO
-lso eval_fixed_ja.lso
-keep_hierarchy NO
-rtlview Yes
-glob_opt AllClockNets
-read_cores YES
-write_timing_constraints NO
-cross_clock_analysis NO
-hierarchy_separator /
-bus_delimiter <>
-case maintain
-slice_utilization_ratio 100
-bram_utilization_ratio 100
-dsp_utilization_ratio 100
-verilog2001 YES
-fsm_extract YES -fsm_encoding Auto
-safe_implementation No
-fsm_style lut
-ram_extract Yes
-ram_style Auto
-rom_extract Yes
-mux_style Auto
-decoder_extract YES
-priority_extract YES
-shreg_extract YES
-shift_extract YES
-xor_collapse YES
-rom_style Auto
-auto_bram_packing NO
-mux_extract YES
-resource_sharing YES
-async_to_sync NO
-use_dsp48 auto
-iobuf YES
-max_fanout 500
-bufg 32
-bufr 24
-register_duplication YES
-register_balancing No
-slice_packing YES
-optimize_primitives NO
-use_clock_enable Auto
-use_sync_set Auto
-use_sync_reset Auto
-iob auto
-equivalent_register_removal YES
-slice_utilization_ratio_maxmargin 5
@@ -0,0 +1,2 @@
vhdl ieee_proposed "C:\Programme\Xilinx9\vhdl\src\ieee_proposed\fixed_pkg_c.vhd"
vhdl work "H:\vhdl\projects\eval_fixed_ja\src\eval_fixed_ja_syn.vhd"
@@ -0,0 +1,15 @@
## NOTE: Do not edit this file.
## Autogenerated by ProjNav (creatfdo.tcl) on Thu May 24 11:58:33 Westeuropäische Normalzeit 2007
##
vlib work
vlib ieee_proposed
vcom -explicit -93 -work ieee_proposed "C:/Programme/Xilinx9/vhdl/src/ieee_proposed/fixed_pkg_c.vhd"
vcom -explicit -93 "../src/eval_fixed_ja_syn.vhd"
vcom -explicit -93 "../src/tb_eval_fixed_ja_syn.vhd"
vsim -t 1ps -lib work tb_eval_fixed_ja_vhd
view wave
add wave *
do {tb_eval_fixed_ja_vhd.udo}
view structure
view signals
run 1000ns
@@ -0,0 +1,15 @@
## NOTE: Do not edit this file.
## Auto generated by Project Navigator for Post-Translate Simulation
##
vlib work
## Compile Post-Translate Model
vcom -explicit -93 "netgen/translate/eval_fixed_ja_translate.vhd"
vcom -explicit -93 "../src/tb_eval_fixed_ja_syn.vhd"
vsim -t 1ps -lib work tb_eval_fixed_ja_vhd
do {tb_eval_fixed_ja_vhd.udo}
view wave
add wave *
view structure
view signals
run 1000ns
## End
@@ -0,0 +1,4 @@
-- ProjNav VHDL simulation template: tb_eval_fixed_ja_vhd.udo
-- You may edit this file after the line that starts with
-- '-- START' to customize your simulation
-- START user-defined simulation commands
+12
View File
@@ -0,0 +1,12 @@
vlib work
vcom -explicit -93 "../lib/fixed_ja.vhd"
vcom -explicit -93 "../lib/fixed_ja_body.vhd"
vcom -explicit -93 "../lib/PCK_FIO_1993.vhd"
vcom -explicit -93 "../lib/PCK_FIO_1993_BODY.vhd"
vcom -explicit -93 "src/tb_eval_fixed_ja.vhd"
vsim -t 1ps -lib work tb_eval_fixed_ja
#do {wave.do}
view wave
view structure
view signals
run 1000ns
@@ -0,0 +1,107 @@
## Generated SDC file "eval_fixed_ja.out.sdc"
## Copyright (C) 1991-2008 Altera Corporation
## Your use of Altera Corporation's design tools, logic functions
## and other software and tools, and its AMPP partner logic
## functions, and any output files from any of the foregoing
## (including device programming or simulation files), and any
## associated documentation or information are expressly subject
## to the terms and conditions of the Altera Program License
## Subscription Agreement, Altera MegaCore Function License
## Agreement, or other applicable license agreement, including,
## without limitation, that your use is for the sole purpose of
## programming logic devices manufactured by Altera and sold by
## Altera or its authorized distributors. Please refer to the
## applicable agreement for further details.
## VENDOR "Altera"
## PROGRAM "Quartus II"
## VERSION "Version 8.1 Build 163 10/28/2008 SJ Web Edition"
## DATE "Thu Dec 18 22:26:14 2008"
##
## DEVICE "EP3C25Q240C8"
##
#**************************************************************
# Time Information
#**************************************************************
set_time_format -unit ns -decimal_places 3
#**************************************************************
# Create Clock
#**************************************************************
create_clock -name {ccc} -period 10.000 -waveform { 0.000 5.000 } [get_ports {clk}]
#**************************************************************
# Create Generated Clock
#**************************************************************
#**************************************************************
# Set Clock Latency
#**************************************************************
#**************************************************************
# Set Clock Uncertainty
#**************************************************************
#**************************************************************
# Set Input Delay
#**************************************************************
#**************************************************************
# Set Output Delay
#**************************************************************
#**************************************************************
# Set Clock Groups
#**************************************************************
#**************************************************************
# Set False Path
#**************************************************************
#**************************************************************
# Set Multicycle Path
#**************************************************************
#**************************************************************
# Set Maximum Delay
#**************************************************************
#**************************************************************
# Set Minimum Delay
#**************************************************************
#**************************************************************
# Set Input Transition
#**************************************************************
@@ -0,0 +1,23 @@
# Copyright (C) 1991-2008 Altera Corporation
# Your use of Altera Corporation's design tools, logic functions
# and other software and tools, and its AMPP partner logic
# functions, and any output files from any of the foregoing
# (including device programming or simulation files), and any
# associated documentation or information are expressly subject
# to the terms and conditions of the Altera Program License
# Subscription Agreement, Altera MegaCore Function License
# Agreement, or other applicable license agreement, including,
# without limitation, that your use is for the sole purpose of
# programming logic devices manufactured by Altera and sold by
# Altera or its authorized distributors. Please refer to the
# applicable agreement for further details.
QUARTUS_VERSION = "8.1"
DATE = "10:27:40 December 18, 2008"
# Revisions
PROJECT_REVISION = "eval_fixed_ja"
@@ -0,0 +1,47 @@
# Copyright (C) 1991-2008 Altera Corporation
# Your use of Altera Corporation's design tools, logic functions
# and other software and tools, and its AMPP partner logic
# functions, and any output files from any of the foregoing
# (including device programming or simulation files), and any
# associated documentation or information are expressly subject
# to the terms and conditions of the Altera Program License
# Subscription Agreement, Altera MegaCore Function License
# Agreement, or other applicable license agreement, including,
# without limitation, that your use is for the sole purpose of
# programming logic devices manufactured by Altera and sold by
# Altera or its authorized distributors. Please refer to the
# applicable agreement for further details.
# The default values for assignments are stored in the file
# eval_fixed_ja_assignment_defaults.qdf
# If this file doesn't exist, and for assignments not listed, see file
# assignment_defaults.qdf
# Altera recommends that you do not modify this file. This
# file is updated automatically by the Quartus II software
# and any changes you make may be lost or overwritten.
set_global_assignment -name FAMILY "Cyclone III"
set_global_assignment -name DEVICE EP3C25Q240C8
set_global_assignment -name TOP_LEVEL_ENTITY eval_fixed_ja
set_global_assignment -name ORIGINAL_QUARTUS_VERSION 8.1
set_global_assignment -name PROJECT_CREATION_TIME_DATE "10:27:40 DECEMBER 18, 2008"
set_global_assignment -name LAST_QUARTUS_VERSION 8.1
set_global_assignment -name USE_GENERATED_PHYSICAL_CONSTRAINTS OFF -section_id eda_blast_fpga
set_global_assignment -name MIN_CORE_JUNCTION_TEMP 0
set_global_assignment -name MAX_CORE_JUNCTION_TEMP 85
set_global_assignment -name NOMINAL_CORE_SUPPLY_VOLTAGE 1.2V
set_instance_assignment -name PARTITION_HIERARCHY root_partition -to | -section_id Top
set_global_assignment -name PARTITION_NETLIST_TYPE SOURCE -section_id Top
set_global_assignment -name PARTITION_COLOR 16764057 -section_id Top
set_global_assignment -name LL_ROOT_REGION ON -section_id "Root Region"
set_global_assignment -name LL_MEMBER_STATE LOCKED -section_id "Root Region"
set_global_assignment -name ASSIGNMENT_GROUP_MEMBER clk -section_id clock
set_global_assignment -name ENABLE_ADVANCED_IO_TIMING ON
set_global_assignment -name SDC_FILE eval_fixed_ja.out.sdc
set_global_assignment -name VHDL_FILE ../../../lib/fixed/fixed_pkg_c.vhd
set_global_assignment -name VHDL_FILE ../src/eval_fixed_ja_syn.vhd
set_global_assignment -name TIMEQUEST_MULTICORNER_ANALYSIS ON
set_global_assignment -name TIMEQUEST_DO_CCPP_REMOVAL ON
@@ -0,0 +1,29 @@
[ProjectWorkspace]
ptn_Child1=Frames
[ProjectWorkspace.Frames]
ptn_Child1=ChildFrames
[ProjectWorkspace.Frames.ChildFrames]
ptn_Child1=Document-0
ptn_Child2=Document-1
ptn_Child3=Document-2
ptn_Child4=Document-3
[ProjectWorkspace.Frames.ChildFrames.Document-2]
ptn_Child1=ViewFrame-0
[ProjectWorkspace.Frames.ChildFrames.Document-2.ViewFrame-0]
DocPathName=eval_fixed_ja.sdc
DocumentCLSID={c5dd978f-562d-48b1-a72f-0e9994df79df}
IsChildFrameDetached=False
IsActiveChildFrame=False
ptn_Child1=StateMap
[ProjectWorkspace.Frames.ChildFrames.Document-2.ViewFrame-0.StateMap]
AFC_IN_REPORT=False
[ProjectWorkspace.Frames.ChildFrames.Document-3]
ptn_Child1=ViewFrame-0
[ProjectWorkspace.Frames.ChildFrames.Document-3.ViewFrame-0]
DocPathName=eval_fixed_ja.out.sdc
DocumentCLSID={c5dd978f-562d-48b1-a72f-0e9994df79df}
IsChildFrameDetached=False
IsActiveChildFrame=False
ptn_Child1=StateMap
[ProjectWorkspace.Frames.ChildFrames.Document-3.ViewFrame-0.StateMap]
AFC_IN_REPORT=False
@@ -0,0 +1,56 @@
###########################################################################
#
# Generated by : Version 8.1 Build 163 10/28/2008 SJ Web Edition
#
# Project : eval_fixed_ja
# Revision : eval_fixed_ja
#
# Date : Thu Dec 18 22:17:10 Westeuropäische Normalzeit 2008
#
###########################################################################
# WARNING: Expected ENABLE_CLOCK_LATENCY to be set to 'ON', but it is set to 'OFF'
# In SDC, create_generated_clock auto-generates clock latency
#
# ------------------------------------------
#
# Create generated clocks based on PLLs
derive_pll_clocks -use_tan_name
#
# ------------------------------------------
# ** Clock Latency
# -------------
# ** Clock Uncertainty
# -----------------
# ** Multicycles
# -----------
# ** Cuts
# ----
# ** Input/Output Delays
# -------------------
# ** Tpd requirements
# ----------------
# ** Setup/Hold Relationships
# ------------------------
# ** Tsu/Th requirements
# -------------------
# ** Tco/MinTco requirements
# -----------------------
# ---------------------------------------------
+876
View File
@@ -0,0 +1,876 @@
Fixed Point Library Testbench 0.1
----------------------
Without saturation
----------------------
* No rounding
U: 101.0011 => 01.0011 ...passed
U: 1.001101 => 001. ...passed
U: 101.01 => 1.0 ...passed
U: 1010.1 => 10. ...passed
U: 101.11 => 101. ...passed
U: .11 => 0. ...passed
U: .1011 => 0.10 ...passed
U: 0.0000000001 => 0. ...passed
U: 1.0000000001 => 1.0 ...passed
U: 1.0000000001 => 1. ...passed
U: 10.000000001 => 10.000 ...passed
U: 1. => 1.00000000000000000 ...passed
U: 0. => 0.00000000000000000 ...passed
U: 1. => .000000000000000000 ...passed
U: 0. => .000000000000000000 ...passed
U: 10.101 => 010.1010 ...passed
U: 10.101 => 10.10 ...passed
U: 10.101 => 10.1010 ...passed
S: 101.0011 => 01.0011 ...passed
S: -1.001101 => -001. ...passed
S: -101.01 => -1.0 ...passed
S: 1010.1 => 10. ...passed
S: 101.11 => 101. ...passed
S: -.11 => 0. ...passed
S: -.1011 => -0.10 ...passed
S: 0.0000000001 => 0. ...passed
S: -1.0000000001 => -1.0 ...passed
S: -1.0000000001 => -1. ...passed
S: -10.000000001 => -10.000 ...passed
S: 1. => 1.00000000000000000 ...passed
S: 0. => 0.00000000000000000 ...passed
S: 1. => .000000000000000000 ...passed
S: 0. => .000000000000000000 ...passed
S: 10.101 => 010.1010 ...passed
S: -10.101 => -10.10 ...passed
S: 10.101 => 10.1010 ...passed
* Round to zero
U: 101.0011 => 01.0011 ...passed
U: 1.001101 => 001. ...passed
U: 101.01 => 1.0 ...passed
U: 1010.1 => 10. ...passed
U: 101.11 => 101. ...passed
U: .11 => 0. ...passed
U: .1011 => 0.10 ...passed
U: 0.0000000001 => 0. ...passed
U: 1.0000000001 => 1.0 ...passed
U: 1.0000000001 => 1. ...passed
U: 10.000000001 => 10.000 ...passed
U: 1. => 1.00000000000000000 ...passed
U: 0. => 0.00000000000000000 ...passed
U: 1. => .000000000000000000 ...passed
U: 0. => .000000000000000000 ...passed
U: 10.101 => 010.1010 ...passed
U: 10.101 => 10.10 ...passed
U: 10.101 => 10.1010 ...passed
S: 101.0011 => 01.0011 ...passed
S: -1.001101 => -001. ...passed
S: -101.01 => -1.0 ...passed
S: 1010.1 => 10. ...passed
S: 101.11 => 101. ...passed
S: -.11 => 0. ...passed
S: -.1011 => -0.10 ...passed
S: 0.0000000001 => 0. ...passed
S: -1.0000000001 => -1.0 ...passed
S: -1.0000000001 => -1. ...passed
S: -10.000000001 => -10.000 ...passed
S: 1. => 1.00000000000000000 ...passed
S: 0. => 0.00000000000000000 ...passed
S: 1. => .000000000000000000 ...passed
S: 0. => .000000000000000000 ...passed
S: 10.101 => 010.1010 ...passed
S: -10.101 => -10.10 ...passed
S: 10.101 => 10.1010 ...passed
* Round to infinity
U: 101.0011 => 01.0011 ...passed
U: 1.001101 => 010. ...passed
U: 101.01 => 1.1 ...passed
U: 1010.1 => 11. ...passed
U: 101.11 => 110. ...passed
U: .11 => 1. ...passed
U: .1011 => 0.11 ...passed
U: 0.0000000001 => 1. ...passed
U: 1.0000000001 => 1.1 ...passed
U: 1.0000000001 => 0. ...passed
U: 10.000000001 => 10.001 ...passed
U: 1. => 1.00000000000000000 ...passed
U: 0. => 0.00000000000000000 ...passed
U: 1. => .000000000000000000 ...passed
U: 0. => .000000000000000000 ...passed
U: 10.101 => 010.1010 ...passed
U: 10.101 => 10.11 ...passed
U: 10.101 => 10.1010 ...passed
S: 101.0011 => 01.0011 ...passed
S: -10.001101 => -010. ...passed
S: -101.01 => -1.0 ...passed
S: 1010.1 => 11. ...passed
S: 101.11 => 110. ...passed
S: -.11 => 0. ...passed
S: -.1011 => -0.10 ...passed
S: 0.0000000001 => 1. ...passed
S: -1.0000000001 => -1.0 ...passed
S: 1.0000000001 => 0. ...passed
S: -10.000000001 => -10.000 ...passed
S: 1. => 1.00000000000000000 ...passed
S: 0. => 0.00000000000000000 ...passed
S: 1. => .000000000000000000 ...passed
S: 0. => .000000000000000000 ...passed
S: 10.101 => 010.1010 ...passed
S: -10.101 => -10.10 ...passed
S: 10.101 => 10.1010 ...passed
* Round half up
U: 101.0011 => 01.0011 ...passed
U: 1.001101 => 001. ...passed
U: 101.01 => 1.1 ...passed
U: 1010.1 => 11. ...passed
U: 101.11 => 110. ...passed
U: .11 => 1. ...passed
U: .1011 => 0.11 ...passed
U: 0.0000000001 => 0. ...passed
U: 1.0000000001 => 1.0 ...passed
U: 1.0000000001 => 1. ...passed
U: 10.000000001 => 10.000 ...passed
U: 1. => 1.00000000000000000 ...passed
U: 0. => 0.00000000000000000 ...passed
U: 1. => .000000000000000000 ...passed
U: 0. => .000000000000000000 ...passed
U: 10.101 => 010.1010 ...passed
U: 10.101 => 10.11 ...passed
U: 10.101 => 10.1010 ...passed
S: 101.0011 => 01.0011 ...passed
S: -10.001101 => -010. ...passed
S: -101.01 => -1.0 ...passed
S: 1010.1 => 11. ...passed
S: 101.11 => 110. ...passed
S: -.11 => -1. ...passed
S: -.1011 => -0.11 ...passed
S: 0.0000000001 => 0. ...passed
S: -1.0000000001 => -1.0 ...passed
S: 1.0000000001 => 1. ...passed
S: -10.000000001 => -10.000 ...passed
S: 1. => 1.00000000000000000 ...passed
S: 0. => 0.00000000000000000 ...passed
S: 1. => .000000000000000000 ...passed
S: 0. => .000000000000000000 ...passed
S: 10.101 => 010.1010 ...passed
S: -10.1011 => -10.11 ...passed
S: -10.101 => -10.10 ...passed
S: -0.1111 => -0.111 ...passed
S: -0.11110 => -0.111 ...passed
S: -0.11111 => -1.000 ...passed
* Round convergent
U: 01.001 => 01.00 ...passed
U: 01.0010 => 01.00 ...passed
U: 01.0011 => 01.01 ...passed
U: 01.011 => 01.10 ...passed
U: 01.0110 => 01.10 ...passed
U: 01.0111 => 01.10 ...passed
S: 01.001 => 01.00 ...passed
S: 01.0010 => 01.00 ...passed
S: 01.0011 => 01.01 ...passed
S: 01.011 => 01.10 ...passed
S: 01.0110 => 01.10 ...passed
S: 01.0111 => 01.10 ...passed
S: -01.001 => -01.00 ...passed
S: -01.0010 => -01.00 ...passed
S: -01.0011 => -01.01 ...passed
S: -01.011 => -01.10 ...passed
S: -01.0110 => -01.10 ...passed
S: -01.0111 => -01.10 ...passed
----------------------
With saturation
----------------------
* No rounding
U: 101.0011 => 11.1111 ...passed
U: 1.001101 => 001. ...passed
U: 101.01 => 1.1 ...passed
U: 1010.1 => 11. ...passed
U: 101.11 => 101. ...passed
U: .11 => 0. ...passed
U: .1011 => 0.10 ...passed
U: 0.0000000001 => 0. ...passed
U: 1.0000000001 => 1.0 ...passed
U: 1.0000000001 => 1. ...passed
U: 10.000000001 => 10.000 ...passed
U: 1. => 1.00000000000000000 ...passed
U: 0. => 0.00000000000000000 ...passed
U: 1. => .111111111111111111 ...passed
U: 0. => .000000000000000000 ...passed
U: 10.101 => 010.1010 ...passed
U: 10.101 => 10.10 ...passed
U: 10.101 => 10.1010 ...passed
U: 1.0000 => .11111 ...passed
U: 01.000 => .11111 ...passed
U: 11.000 => .11111 ...passed
U: 0.1000 => .10000 ...passed
U: 00.100 => .10000 ...passed
U: 1.0001 => .11111 ...passed
U: 01.001 => .11111 ...passed
U: 01.010 => .11111 ...passed
U: 11.001 => .11111 ...passed
U: 0.1001 => .10010 ...passed
U: 00.101 => .10100 ...passed
U: 1.000000000000000001 => .111111111111111 ...passed
U: 01.00000000000000001 => .111111111111111 ...passed
U: 1.00000000000000 => .111111111111111 ...passed
S: -101.0011 => -11.1111 ...passed
S: 1.001101 => 001. ...passed
S: 101.01 => 1.1 ...passed
S: 1010.1 => 11. ...passed
S: 101.11 => 101. ...passed
S: .11 => 0. ...passed
S: .1011 => 0.10 ...passed
S: -0.0000000001 => 0. ...passed
S: -1.0000000001 => -1.0 ...passed
S: 1.0000000001 => 1. ...passed
S: 10.000000001 => 10.000 ...passed
S: 1. => 1.00000000000000000 ...passed
S: 0. => 0.00000000000000000 ...passed
S: -1. => -.111111111111111111 ...passed
S: 0. => .000000000000000000 ...passed
S: -10.101 => -010.1010 ...passed
S: -10.101 => -10.10 ...passed
S: -10.101 => -10.1010 ...passed
S: -1.0000 => -.11111 ...passed
S: -01.000 => -.11111 ...passed
S: -11.000 => -.11111 ...passed
S: -0.1000 => -.10000 ...passed
S: -00.100 => -.10000 ...passed
S: -1.0001 => -.11111 ...passed
S: -01.001 => -.11111 ...passed
S: -01.010 => -.11111 ...passed
S: -11.001 => -.11111 ...passed
S: -0.1001 => -.10010 ...passed
S: -00.101 => -.10100 ...passed
S: -1.000000000000000001 => -.111111111111111 ...passed
S: -01.00000000000000001 => -.111111111111111 ...passed
S: -1.00000000000000 => -.111111111111111 ...passed
S: 1.000000000000000001 => .111111111111111 ...passed
S: 01.00000000000000001 => .111111111111111 ...passed
S: 1.00000000000000 => .111111111111111 ...passed
S: 1.0000 => .11111 ...passed
S: 01.000 => .11111 ...passed
S: 0.1000 => .10000 ...passed
S: 00.100 => .10000 ...passed
* Round to zero
U: 101.0011 => 11.1111 ...passed
U: 1.001101 => 001. ...passed
U: 101.01 => 1.1 ...passed
U: 1010.1 => 11. ...passed
U: 101.11 => 101. ...passed
U: .11 => 0. ...passed
U: .1011 => 0.10 ...passed
U: 0.0000000001 => 0. ...passed
U: 1.0000000001 => 1.0 ...passed
U: 1.0000000001 => 1. ...passed
U: 10.000000001 => 10.000 ...passed
U: 1. => 1.00000000000000000 ...passed
U: 0. => 0.00000000000000000 ...passed
U: 1. => .111111111111111111 ...passed
U: 0. => .000000000000000000 ...passed
U: 10.101 => 010.1010 ...passed
U: 10.101 => 10.10 ...passed
U: 10.101 => 10.1010 ...passed
U: 1.000000000000000001 => .111111111111111 ...passed
U: 01.00000000000000001 => .111111111111111 ...passed
U: 1.00000000000000 => .111111111111111 ...passed
S: 101.0011 => 11.1111 ...passed
S: 1.001101 => 001. ...passed
S: 101.01 => 1.1 ...passed
S: 1010.1 => 11. ...passed
S: 101.11 => 101. ...passed
S: .11 => 0. ...passed
S: .1011 => 0.10 ...passed
S: 0.0000000001 => 0. ...passed
S: 1.0000000001 => 1.0 ...passed
S: 1.0000000001 => 1. ...passed
S: 10.000000001 => 10.000 ...passed
S: 1. => 1.00000000000000000 ...passed
S: 0. => 0.00000000000000000 ...passed
S: 1. => .111111111111111111 ...passed
S: 0. => .000000000000000000 ...passed
S: 10.101 => 010.1010 ...passed
S: 10.101 => 10.10 ...passed
S: 10.101 => 10.1010 ...passed
S: -1.000000000000000001 => -.111111111111111 ...passed
S: -01.00000000000000001 => -.111111111111111 ...passed
S: -1.00000000000000 => -.111111111111111 ...passed
S: 1.000000000000000001 => .111111111111111 ...passed
S: 01.00000000000000001 => .111111111111111 ...passed
S: 1.00000000000000 => .111111111111111 ...passed
S: 1.0000 => .11111 ...passed
S: 01.000 => .11111 ...passed
S: 0.1000 => .10000 ...passed
S: 00.100 => .10000 ...passed
* Round to infinity
U: 101.0011 => 11.1111 ...passed
U: 1.001101 => 010. ...passed
U: 101.01 => 1.1 ...passed
U: 1010.1 => 11. ...passed
U: 101.11 => 110. ...passed
U: .11 => 1. ...passed
U: .1011 => 0.11 ...passed
U: 0.0000000001 => 1. ...passed
U: 1.0000000001 => 1.1 ...passed
U: 1.0000000001 => 1. ...passed
U: 10.000000001 => 10.001 ...passed
U: 1. => 1.00000000000000000 ...passed
U: 0. => 0.00000000000000000 ...passed
U: 1. => .111111111111111111 ...passed
U: 0. => .000000000000000000 ...passed
U: 10.101 => 010.1010 ...passed
U: 10.101 => 10.11 ...passed
U: 10.101 => 10.1010 ...passed
U: 1.000000000000000001 => .111111111111111 ...passed
U: 01.00000000000000001 => .111111111111111 ...passed
U: 1.00000000000000 => .111111111111111 ...passed
S: 101.0011 => 11.1111 ...passed
S: 1.001101 => 010. ...passed
S: 101.01 => 1.1 ...passed
S: 1010.1 => 11. ...passed
S: 101.11 => 110. ...passed
S: .11 => 1. ...passed
S: .1011 => 0.11 ...passed
S: 0.0000000001 => 1. ...passed
S: 1.0000000001 => 1.1 ...passed
S: 1.0000000001 => 1. ...passed
S: 10.000000001 => 10.001 ...passed
S: 1. => 1.00000000000000000 ...passed
S: 0. => 0.00000000000000000 ...passed
S: 1. => .111111111111111111 ...passed
S: 0. => .000000000000000000 ...passed
S: 10.101 => 010.1010 ...passed
S: 10.101 => 10.11 ...passed
S: 10.101 => 10.1010 ...passed
S: -1.000000000000000001 => -.111111111111111 ...passed
S: -01.00000000000000001 => -.111111111111111 ...passed
S: -1.00000000000000 => -.111111111111111 ...passed
S: 1.000000000000000001 => .111111111111111 ...passed
S: 01.00000000000000001 => .111111111111111 ...passed
S: 1.00000000000000 => .111111111111111 ...passed
S: 1.0000 => .11111 ...passed
S: 01.000 => .11111 ...passed
S: 0.1000 => .10000 ...passed
S: 00.100 => .10000 ...passed
* Round half up
U: 101.0011 => 11.1111 ...passed
U: 1.001101 => 001. ...passed
U: 101.01 => 1.1 ...passed
U: 1010.1 => 11. ...passed
U: 101.11 => 110. ...passed
U: .11 => 1. ...passed
U: .1011 => 0.11 ...passed
U: 0.0000000001 => 0. ...passed
U: 1.0000000001 => 1.0 ...passed
U: 1.0000000001 => 1. ...passed
U: 10.000000001 => 10.000 ...passed
U: 1. => 1.00000000000000000 ...passed
U: 0. => 0.00000000000000000 ...passed
U: 1. => .111111111111111111 ...passed
U: 0. => .000000000000000000 ...passed
U: 10.101 => 010.1010 ...passed
U: 10.101 => 10.11 ...passed
U: 10.101 => 10.1010 ...passed
U: 1.000000000000000001 => .111111111111111 ...passed
U: 01.00000000000000001 => .111111111111111 ...passed
U: 1.00000000000000 => .111111111111111 ...passed
S: 101.0011 => 11.1111 ...passed
S: 1.001101 => 001. ...passed
S: 101.01 => 1.1 ...passed
S: 1010.1 => 11. ...passed
S: 101.11 => 110. ...passed
S: -.11 => -1. ...passed
S: -.1 => 0. ...passed
S: .1011 => 0.11 ...passed
S: 0.0000000001 => 0. ...passed
S: 1.0000000001 => 1.0 ...passed
S: 1.0000000001 => 1. ...passed
S: 10.000000001 => 10.000 ...passed
S: 1. => 1.00000000000000000 ...passed
S: 0. => 0.00000000000000000 ...passed
S: 1. => .111111111111111111 ...passed
S: 0. => .000000000000000000 ...passed
S: 10.101 => 010.1010 ...passed
S: 10.101 => 10.11 ...passed
S: 10.101 => 10.1010 ...passed
S: -1.000000000000000000 => -.111111111111111 ...passed
S: -1.000000000000000001 => -.111111111111111 ...passed
S: -01.00000000000000000 => -.111111111111111 ...passed
S: -01.00000000000000001 => -.111111111111111 ...passed
S: -01.0000000000000 => -.111111111111111 ...passed
S: -01.0000000000001 => -.111111111111111 ...passed
S: -01.0000000000000 => -.11111111111111 ...passed
S: -01.0000000000001 => -.11111111111111 ...passed
S: -01.0000000000000 => -.1111111111111111 ...passed
S: -01.0000000000001 => -.1111111111111111 ...passed
S: -00.1111111111111 => -.111111111111100 ...passed
S: -00.111111111111111 => -.11111111111111 ...passed
S: -00.111111111111111 => -1.0000000000000 ...passed
S: -1.000000000000000001 => -.111111111111111 ...passed
S: -01.00000000000000001 => -.111111111111111 ...passed
S: -1.0000000000000000001 => -.111111111111111 ...passed
S: -01.000000000000000001 => -.111111111111111 ...passed
S: -1.00000000000000000001 => -.111111111111111 ...passed
S: -01.0000000000000000001 => -.111111111111111 ...passed
S: -1.000000000000000000001 => -.111111111111111 ...passed
S: -01.00000000000000000001 => -.111111111111111 ...passed
S: -1.0000000000000000000001 => -.111111111111111 ...passed
S: -01.000000000000000000001 => -.111111111111111 ...passed
S: -1.000000000000000011 => -.111111111111111 ...passed
S: -01.00000000000000011 => -.111111111111111 ...passed
S: -1.0000000000000000011 => -.111111111111111 ...passed
S: -01.000000000000000011 => -.111111111111111 ...passed
S: -1.00000000000000000011 => -.111111111111111 ...passed
S: -01.0000000000000000011 => -.111111111111111 ...passed
S: -1.000000000000000000011 => -.111111111111111 ...passed
S: -01.00000000000000000011 => -.111111111111111 ...passed
S: -1.0000000000000000000011 => -.111111111111111 ...passed
S: -01.000000000000000000011 => -.111111111111111 ...passed
S: -1.00000000000000 => -.111111111111111 ...passed
S: 1.0000 => .11111 ...passed
S: 01.000 => .11111 ...passed
S: 0.1000 => .10000 ...passed
S: 00.100 => .10000 ...passed
U: .10000000 + .01000000 = 0.11000000 ...passed
U: .01100000 + .01000000 = 0.10100000 ...passed
U: 0.0110000 - .01000000 = 0.00100000 ...passed
U: .10000000 + .01000000 = 0.11000000 ...passed
U: .10000000 - .01000000 = .01000000 ...passed
U: .01000000 + .01000000 = 0.10000000 ...passed
U: .01000000 - .01000000 = .00000000 ...passed
U: .0100 + 000.01000 = 000.10000 ...passed
U: 1.0000 + 1.0000 = 10.0000 ...passed
U: 0.1001 + 0.0110 = 00.1111 ...passed
U: 0.0011 + 0.0110 = 00.1001 ...passed
U: 0.1111 + 1.0001 = 10.0000 ...passed
U: 10.0000 - 1.0000 = 01.0000 ...passed
U: 00.1111 - 0.1001 = 00.0110 ...passed
U: 00.1001 - 0.0011 = 00.0110 ...passed
U: 10.0000 - 0.1111 = 01.0001 ...passed
U: .10000000 * 100.10000 = 10.01000000000000 ...passed
U: .10000000 * .10000000 = .0100000000000000 ...passed
U: 0.1000000 * .10000000 = .0100000000000000 ...passed
U: 0.1000000 * 0.1000000 = 00.01000000000000 ...passed
U: 0.1000000 * .10000000 = .0100000000000000 ...passed
U: 00.100000 * 0.1000000 = 000.0100000000000 ...passed
U: 01.1000000 * .10000000 = 0.1100000000000000 ...passed
U: .10000000 * 01.1000000 = 0.1100000000000000 ...passed
U: 01.100000 * .100000000 = 0.1100000000000000 ...passed
U: .100000000 * 01.100000 = 0.1100000000000000 ...passed
S: .011 + .0100000 = 0.1010000 ...passed
S: .0110000 - .0100000 = .0010000 ...passed
S: .1000000 + .0100000 = 0.1100000 ...passed
S: .1000000 - .0100000 = .0100000 ...passed
S: .0100000 + .0100000 = 0.1000000 ...passed
S: .0100000 - .0100000 = .0000000 ...passed
S: .010 + 000.0100 = 000.1000 ...passed
S: -.100 * 100.1000 = -10.010000000 ...passed
S: -.1000000 * .1000000 = -.010000000000000 ...passed
S: -0.100000 * .1000000 = -.010000000000000 ...passed
S: -0.100000 * 0.100000 = -00.0100000000000 ...passed
S: .100 * 100.1000 = 10.010000000 ...passed
S: .1000000 * .1000000 = .010000000000000 ...passed
S: 0.100000 * .1000000 = .010000000000000 ...passed
S: 0.100000 * 0.100000 = 00.0100000000000 ...passed
----------------------
Arithmetic Test
----------------------
Test finished
Positive ufixed
1.000 sla 0 = 1.000
1.000 sla 1 = 0.000
1.000 sla 2 = 0.000
1.000 sla 3 = 0.000
1.000 sla 4 = 0.000
1.000 sla 0 = 1.000
1.000 sla -1 = 0.100
1.000 sla -2 = 0.010
1.000 sla -3 = 0.001
1.000 sla -4 = 0.000
1.000 sra 0 = 1.000
1.000 sra 1 = 0.100
1.000 sra 2 = 0.010
1.000 sra 3 = 0.001
1.000 sra 4 = 0.000
1.000 sra 0 = 1.000
1.000 sra -1 = 0.000
1.000 sra -2 = 0.000
1.000 sra -3 = 0.000
1.000 sra -4 = 0.000
Positive sfixed
1.000 sla 0 = 1.000
1.000 sla 1 = 0.000
1.000 sla 2 = 0.000
1.000 sla 3 = 0.000
1.000 sla 4 = 0.000
1.000 sla 5 = 0.000
1.000 sla 0 = 1.000
1.000 sla -1 = 0.100
1.000 sla -2 = 0.010
1.000 sla -3 = 0.001
1.000 sla -4 = 0.000
1.000 sla -5 = 0.000
1.000 sra 0 = 1.000
1.000 sra 1 = 0.100
1.000 sra 2 = 0.010
1.000 sra 3 = 0.001
1.000 sra 4 = 0.000
1.000 sra 5 = 0.000
1.000 sra 0 = 1.000
1.000 sra -1 = 0.000
1.000 sra -2 = 0.000
1.000 sra -3 = 0.000
1.000 sra -4 = 0.000
1.000 sra -5 = 0.000
Negative sfixed
-1.000 sla 0 = -1.000
-1.000 sla 1 = -0.000
-1.000 sla 2 = -0.000
-1.000 sla 3 = -0.000
-1.000 sla 4 = 0.000
-1.000 sla 5 = 0.000
-1.000 sla 0 = -1.000
-1.000 sla -1 = -0.100
-1.000 sla -2 = -0.010
-1.000 sla -3 = -0.001
-1.000 sla -4 = 0.000
-1.000 sla -5 = 0.000
-1.000 sra 0 = -1.000
-1.000 sra 1 = -0.100
-1.000 sra 2 = -0.010
-1.000 sra 3 = -0.001
-1.000 sra 4 = 0.000
-1.000 sra 5 = 0.000
-1.000 sra 0 = -1.000
-1.000 sra -1 = -0.000
-1.000 sra -2 = -0.000
-1.000 sra -3 = -0.000
-1.000 sra -4 = 0.000
-1.000 sra -5 = 0.000
Positive ufixed
1.001 sla 0 = 1.001
1.001 sla 1 = 0.010
1.001 sla 2 = 0.100
1.001 sla 3 = 1.000
1.001 sla 4 = 0.000
1.001 sla 0 = 1.001
1.001 sla -1 = 0.100
1.001 sla -2 = 0.010
1.001 sla -3 = 0.001
1.001 sla -4 = 0.000
1.001 sra 0 = 1.001
1.001 sra 1 = 0.100
1.001 sra 2 = 0.010
1.001 sra 3 = 0.001
1.001 sra 4 = 0.000
1.001 sra 0 = 1.001
1.001 sra -1 = 0.010
1.001 sra -2 = 0.100
1.001 sra -3 = 1.000
1.001 sra -4 = 0.000
Positive sfixed
1.001 sla 0 = 1.001
1.001 sla 1 = 0.010
1.001 sla 2 = 0.100
1.001 sla 3 = 1.000
1.001 sla 4 = 0.000
1.001 sla 5 = 0.000
1.001 sla 0 = 1.001
1.001 sla -1 = 0.100
1.001 sla -2 = 0.010
1.001 sla -3 = 0.001
1.001 sla -4 = 0.000
1.001 sla -5 = 0.000
1.001 sra 0 = 1.001
1.001 sra 1 = 0.100
1.001 sra 2 = 0.010
1.001 sra 3 = 0.001
1.001 sra 4 = 0.000
1.001 sra 5 = 0.000
1.001 sra 0 = 1.001
1.001 sra -1 = 0.010
1.001 sra -2 = 0.100
1.001 sra -3 = 1.000
1.001 sra -4 = 0.000
1.001 sra -5 = 0.000
Negative sfixed
-1.001 sla 0 = -1.001
-1.001 sla 1 = -0.010
-1.001 sla 2 = -0.100
-1.001 sla 3 = -1.000
-1.001 sla 4 = 0.000
-1.001 sla 5 = 0.000
-1.001 sla 0 = -1.001
-1.001 sla -1 = -0.100
-1.001 sla -2 = -0.010
-1.001 sla -3 = -0.001
-1.001 sla -4 = 0.000
-1.001 sla -5 = 0.000
-1.001 sra 0 = -1.001
-1.001 sra 1 = -0.100
-1.001 sra 2 = -0.010
-1.001 sra 3 = -0.001
-1.001 sra 4 = 0.000
-1.001 sra 5 = 0.000
-1.001 sra 0 = -1.001
-1.001 sra -1 = -0.010
-1.001 sra -2 = -0.100
-1.001 sra -3 = -1.000
-1.001 sra -4 = 0.000
-1.001 sra -5 = 0.000
Positive ufixed
U'length = 10
U'high(left) = -1(-1)
U'low(right) = -10(-10)
U'value = B.0100000000
U'value = 2.5e-1
U'length = 10
U'high(left) = -1(-1)
U'low(right) = -10(-10)
U'value = B.0100000000
U'value = 2.5e-1
U'length = 10
U'high(left) = -1(-1)
U'low(right) = -10(-10)
U'value = B.0100000000
U'value = 2.5e-1
U'length = 10
U'high(left) = 1(1)
U'low(right) = -8(-8)
U'value = B00.01000000
U'value = 2.5e-1
U'length = 10
U'high(left) = 0(0)
U'low(right) = -9(-9)
U'value = B0.010000000
U'value = 2.5e-1
U'length = 10
U'high(left) = 0(0)
U'low(right) = -9(-9)
U'value = B0.010000000
U'value = 2.5e-1
Positive sfixed
S'length = 10
S'high(left) = 0(0)
S'low(right) = -9(-9)
S'value = B.010000000
S'value = 2.5e-1
S'length = 10
S'high(left) = 0(0)
S'low(right) = -9(-9)
S'value = B.010000000
S'value = 2.5e-1
S'length = 10
S'high(left) = 0(0)
S'low(right) = -9(-9)
S'value = B.010000000
S'value = 2.5e-1
S'length = 10
S'high(left) = 2(2)
S'low(right) = -7(-7)
S'value = B00.0100000
S'value = 2.5e-1
S'length = 10
S'high(left) = 1(1)
S'low(right) = -8(-8)
S'value = B0.01000000
S'value = 2.5e-1
S'length = 10
S'high(left) = 1(1)
S'low(right) = -8(-8)
S'value = B0.01000000
S'value = 2.5e-1
Neg/Pos sfixed
S'length = 10
S'high(left) = 0(0)
S'low(right) = -9(-9)
S'value = B-.010000000
S'value = -2.5e-1
S'length = 10
S'high(left) = 0(0)
S'low(right) = -9(-9)
S'value = B-.010000000
S'value = -2.5e-1
S'length = 10
S'high(left) = 0(0)
S'low(right) = -9(-9)
S'value = B-.010000000
S'value = -2.5e-1
S'length = 10
S'high(left) = 2(2)
S'low(right) = -7(-7)
S'value = B-00.0100000
S'value = -2.5e-1
S'length = 10
S'high(left) = 1(1)
S'low(right) = -8(-8)
S'value = B-0.01000000
S'value = -2.5e-1
S'length = 10
S'high(left) = 1(1)
S'low(right) = -8(-8)
S'value = B-0.01000000
S'value = -2.5e-1
Pos/Neg sfixed
S'length = 10
S'high(left) = 0(0)
S'low(right) = -9(-9)
S'value = B-.010000000
S'value = -2.5e-1
S'length = 10
S'high(left) = 0(0)
S'low(right) = -9(-9)
S'value = B-.010000000
S'value = -2.5e-1
S'length = 10
S'high(left) = 0(0)
S'low(right) = -9(-9)
S'value = B-.010000000
S'value = -2.5e-1
S'length = 10
S'high(left) = 2(2)
S'low(right) = -7(-7)
S'value = B-00.0100000
S'value = -2.5e-1
S'length = 10
S'high(left) = 1(1)
S'low(right) = -8(-8)
S'value = B-0.01000000
S'value = -2.5e-1
S'length = 10
S'high(left) = 1(1)
S'low(right) = -8(-8)
S'value = B-0.01000000
S'value = -2.5e-1
Neg/Neg sfixed
S'length = 10
S'high(left) = 0(0)
S'low(right) = -9(-9)
S'value = B.010000000
S'value = 2.5e-1
S'length = 10
S'high(left) = 0(0)
S'low(right) = -9(-9)
S'value = B.010000000
S'value = 2.5e-1
S'length = 10
S'high(left) = 0(0)
S'low(right) = -9(-9)
S'value = B.010000000
S'value = 2.5e-1
S'length = 10
S'high(left) = 2(2)
S'low(right) = -7(-7)
S'value = B00.0100000
S'value = 2.5e-1
S'length = 10
S'high(left) = 1(1)
S'low(right) = -8(-8)
S'value = B0.01000000
S'value = 2.5e-1
S'length = 10
S'high(left) = 1(1)
S'low(right) = -8(-8)
S'value = B0.01000000
S'value = 2.5e-1
Test 1.1001000:
Test 1.100100:
Test -1.100100:
Test 00.011001:
Test 00.01100:
Test -00.01100:
Integer Test 00.00000:
R: Bit 11.110010:
U: Bit 11.110010:
S: Bit 11.110010:
S: Bit 00.001110:
S: Bit 3.50:
S: Bit -242:
S1'length = 130
S1'high(left) = 13(13)
S1'low(right) = -116(-116)
S1'value = B0111101010101.01100010110111010011100101101101011111010101101000110100101010101010111011010000111011000110000101000001010010100111
S1'value = 3.925386188115339e3
S2'length = 130
S2'high(left) = 13(13)
S2'low(right) = -116(-116)
S2'value = B0010110111011.11100001100111000100101000110101111111101101000100001110010011100111000110110110010100101001010010100111100011000010
S2'value = 1.467881291044409e3
R1'length = 260
R1'high(left) = 26(26)
R1'low(right) = -233(-233)
R1'value = B00010101111110101111010000.11110010000101101010111100111010001101011101111110010111000100110100001101100001011110100000111111111110100001011011101000011010000101001110100001100100111111111100101000111011011011111100111000001011001111000010101111101110100011100
R1'value = 5.762000945658637e6
@@ -0,0 +1,89 @@
----------------------------------------------------------------------------------
-- Company:
-- Engineer:
--
-- Create Date: 00:28:57 07/10/2006
-- Design Name:
-- Module Name: adder_registered - Behavioral
-- Project Name:
-- Target Devices:
-- Tool versions:
-- Description:
--
-- Dependencies:
--
-- Revision:
-- Revision 0.01 - File Created
-- Additional Comments:
--
----------------------------------------------------------------------------------
library IEEE;
USE ieee.std_logic_1164.ALL;
USE ieee.numeric_std.ALL;
use IEEE.MATH_REAL.ALL;
use std.textio.all; -- Imports the standard textio package.
library work;
use work.fixed_ja.all;
---- Uncomment the following library declaration if instantiating
---- any Xilinx primitives in this code.
--library UNISIM;
--use UNISIM.VComponents.all;
entity eval_fixed_ja is
Generic (
nbits : integer := 32;
nbits_int : integer := 2);
end eval_fixed_ja;
architecture Behavioral of eval_fixed_ja is
---------------------------------------------------------------------
type my_range is range 0 downto -10;
begin
process
constant c1 : ufixed_t (0 downto -10) := "11111111000";
constant c2 : ufixed_t := to_ufixed(3.141592654, nbits, 4);
constant c3 : ufixed_t := to_ufixed(1.0/3.141592654, nbits, 1);
variable t1 : ufixed_t (uproto(8,1)'range);
variable L : line;
variable slv : string (15 downto 1) := (others => '-');
constant jens : string (10 downto 7) := "JENS";
begin
-- slv := (1 => '1', 2 => 'J', jens'range => jens(jens'range), others => '1');
slv(jens'range) := "Jens";
slv(jens'range) := jens;
print_info(c2, "c2");
print_info(c3, "c3");
t1 := to_ufixed(c1, t1, round_to_zero, saturate);
print_info(c1, "c1");
print_info(t1, "t1");
t1 := to_ufixed(c1, t1, round_half_up, saturate);
print_info(c1, "c1");
print_info(t1, "t1");
print_info(to_ufixed(c2*c2, 32, 2, none, saturate), "c2*c2");
print_info(to_ufixed(c2*c3, 32, 0, round_half_up, none), "c2*c3");
write (L, slv);
writeline (output, L);
wait;
end process;
---------------------------------------------------------------------
end Behavioral;
@@ -0,0 +1,80 @@
----------------------------------------------------------------------------------
-- Company:
-- Engineer:
--
-- Create Date: 00:28:57 07/10/2006
-- Design Name:
-- Module Name: adder_registered - Behavioral
-- Project Name:
-- Target Devices:
-- Tool versions:
-- Description:
--
-- Dependencies:
--
-- Revision:
-- Revision 0.01 - File Created
-- Additional Comments:
--
----------------------------------------------------------------------------------
library IEEE;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
library ieee_proposed;
use ieee_proposed.fixed_pkg.all;
use std.textio.all; -- Imports the standard textio package.
library work;
---- Uncomment the following library declaration if instantiating
---- any Xilinx primitives in this code.
--library UNISIM;
--use UNISIM.VComponents.all;
entity eval_fixed_ja is
Generic (
nbits : integer := 8;
nbits_int : integer := 0
);
Port
(
srst : in std_logic;
clk : in std_logic;
di1 : in std_logic_vector(nbits-1 downto 0);
di2 : in std_logic_vector(nbits-1 downto 0);
in_valid : in std_logic;
do : out std_logic_vector(nbits-1 downto 0);
out_valid : out std_logic
);
end eval_fixed_ja;
architecture Behavioral of eval_fixed_ja is
signal op1, op2 : sfixed(nbits_int downto -(nbits-1));
signal result : sfixed(2*nbits_int downto -(2*nbits-1));
begin
op1 <= to_sfixed(di1, op1);
op2 <= to_sfixed(di2, op2);
do <= to_slv(resize(result, op1, false, false));
---------------------------------------------------------------------
process(srst, clk, in_valid, di1, di2)
begin
if rising_edge(clk) then
if srst = '1' then
result <= (others => '0');
elsif in_valid = '1' then
result <= op1 * op2;
end if;
out_valid <= in_valid;
end if;
end process;
---------------------------------------------------------------------
end Behavioral;
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,104 @@
--------------------------------------------------------------------------------
-- Company:
-- Engineer:
--
-- Create Date: 20:01:25 05/22/2007
-- Design Name: eval_fixed_ja
-- Module Name: H:/vhdl/projects/eval_fixed_ja/ise/tb_eval_fixed_ja.vhd
-- Project Name: eval_fixed
-- Target Device:
-- Tool versions:
-- Description:
--
-- VHDL Test Bench Created by ISE for module: eval_fixed_ja
--
-- Dependencies:
--
-- Revision:
-- Revision 0.01 - File Created
-- Additional Comments:
--
-- Notes:
-- This testbench has been automatically generated using types std_logic and
-- std_logic_vector for the ports of the unit under test. Xilinx recommends
-- that these types always be used for the top-level I/O of a design in order
-- to guarantee that the testbench will bind correctly to the post-implementation
-- simulation model.
--------------------------------------------------------------------------------
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
USE ieee.std_logic_unsigned.all;
USE ieee.numeric_std.ALL;
ENTITY tb_eval_fixed_ja_vhd IS
END tb_eval_fixed_ja_vhd;
ARCHITECTURE behavior OF tb_eval_fixed_ja_vhd IS
-- Component Declaration for the Unit Under Test (UUT)
COMPONENT eval_fixed_ja
PORT(
srst : IN std_logic;
clk : IN std_logic;
di1 : IN std_logic_vector(7 downto 0);
di2 : IN std_logic_vector(7 downto 0);
in_valid : IN std_logic;
do : OUT std_logic_vector(7 downto 0);
out_valid : OUT std_logic
);
END COMPONENT;
--Inputs
SIGNAL srst : std_logic := '1';
SIGNAL clk : std_logic := '0';
SIGNAL in_valid : std_logic := '0';
SIGNAL di1 : std_logic_vector(7 downto 0) := (others=>'0');
SIGNAL di2 : std_logic_vector(7 downto 0) := (others=>'0');
--Outputs
SIGNAL do : std_logic_vector(7 downto 0);
SIGNAL out_valid : std_logic;
BEGIN
-- Instantiate the Unit Under Test (UUT)
uut: eval_fixed_ja PORT MAP(
srst => srst,
clk => clk,
di1 => di1,
di2 => di2,
in_valid => in_valid,
do => do,
out_valid => out_valid
);
clk_gen : PROCESS
BEGIN
wait for 10 ns;
clk <= not clk;
END PROCESS;
tb : PROCESS
BEGIN
-- Wait 100 ns for global reset to finish
wait for 100 ns;
srst <= '0';
di1 <= X"40";
di2 <= X"20";
wait for 20 ns;
wait until rising_edge(clk);
in_valid <= '1';
wait until rising_edge(clk);
in_valid <= '0';
wait for 20 ns;
-- Place stimulus here
wait; -- will wait forever
END PROCESS;
END;
+512
View File
@@ -0,0 +1,512 @@
-1.992188e+000 0.000000e+000
-1.984375e+000 0.000000e+000
-1.976563e+000 0.000000e+000
-1.968750e+000 0.000000e+000
-1.960938e+000 -9.375000e-001
-1.953125e+000 -9.375000e-001
-1.945313e+000 -9.375000e-001
-1.937500e+000 -9.375000e-001
-1.929688e+000 -9.375000e-001
-1.921875e+000 -9.375000e-001
-1.914063e+000 -9.375000e-001
-1.906250e+000 -9.375000e-001
-1.898438e+000 -9.375000e-001
-1.890625e+000 -9.375000e-001
-1.882813e+000 -9.375000e-001
-1.875000e+000 -9.375000e-001
-1.867188e+000 -9.375000e-001
-1.859375e+000 -9.375000e-001
-1.851563e+000 -9.375000e-001
-1.843750e+000 -9.375000e-001
-1.835938e+000 -9.375000e-001
-1.828125e+000 -9.375000e-001
-1.820313e+000 -9.375000e-001
-1.812500e+000 -9.375000e-001
-1.804688e+000 -9.375000e-001
-1.796875e+000 -9.375000e-001
-1.789063e+000 -9.375000e-001
-1.781250e+000 -9.375000e-001
-1.773438e+000 -9.375000e-001
-1.765625e+000 -9.375000e-001
-1.757813e+000 -9.375000e-001
-1.750000e+000 -9.375000e-001
-1.742188e+000 -9.375000e-001
-1.734375e+000 -9.375000e-001
-1.726563e+000 -9.375000e-001
-1.718750e+000 -9.375000e-001
-1.710938e+000 -9.375000e-001
-1.703125e+000 -9.375000e-001
-1.695313e+000 -9.375000e-001
-1.687500e+000 -9.375000e-001
-1.679688e+000 -9.375000e-001
-1.671875e+000 -9.375000e-001
-1.664063e+000 -9.375000e-001
-1.656250e+000 -9.375000e-001
-1.648438e+000 -9.375000e-001
-1.640625e+000 -9.375000e-001
-1.632813e+000 -9.375000e-001
-1.625000e+000 -9.375000e-001
-1.617188e+000 -9.375000e-001
-1.609375e+000 -9.375000e-001
-1.601563e+000 -9.375000e-001
-1.593750e+000 -9.375000e-001
-1.585938e+000 -9.375000e-001
-1.578125e+000 -9.375000e-001
-1.570313e+000 -9.375000e-001
-1.562500e+000 -9.375000e-001
-1.554688e+000 -9.375000e-001
-1.546875e+000 -9.375000e-001
-1.539063e+000 -9.375000e-001
-1.531250e+000 -9.375000e-001
-1.523438e+000 -9.375000e-001
-1.515625e+000 -9.375000e-001
-1.507813e+000 -9.375000e-001
-1.500000e+000 -9.375000e-001
-1.492188e+000 -9.375000e-001
-1.484375e+000 -9.375000e-001
-1.476563e+000 -9.375000e-001
-1.468750e+000 -9.375000e-001
-1.460938e+000 -9.375000e-001
-1.453125e+000 -9.375000e-001
-1.445313e+000 -9.375000e-001
-1.437500e+000 -9.375000e-001
-1.429688e+000 -9.375000e-001
-1.421875e+000 -9.375000e-001
-1.414063e+000 -9.375000e-001
-1.406250e+000 -9.375000e-001
-1.398438e+000 -9.375000e-001
-1.390625e+000 -9.375000e-001
-1.382813e+000 -9.375000e-001
-1.375000e+000 -9.375000e-001
-1.367188e+000 -9.375000e-001
-1.359375e+000 -9.375000e-001
-1.351563e+000 -9.375000e-001
-1.343750e+000 -9.375000e-001
-1.335938e+000 -9.375000e-001
-1.328125e+000 -9.375000e-001
-1.320313e+000 -9.375000e-001
-1.312500e+000 -9.375000e-001
-1.304688e+000 -9.375000e-001
-1.296875e+000 -9.375000e-001
-1.289063e+000 -9.375000e-001
-1.281250e+000 -9.375000e-001
-1.273438e+000 -9.375000e-001
-1.265625e+000 -9.375000e-001
-1.257813e+000 -9.375000e-001
-1.250000e+000 -9.375000e-001
-1.242188e+000 -9.375000e-001
-1.234375e+000 -9.375000e-001
-1.226563e+000 -9.375000e-001
-1.218750e+000 -9.375000e-001
-1.210938e+000 -9.375000e-001
-1.203125e+000 -9.375000e-001
-1.195313e+000 -9.375000e-001
-1.187500e+000 -9.375000e-001
-1.179688e+000 -9.375000e-001
-1.171875e+000 -9.375000e-001
-1.164063e+000 -9.375000e-001
-1.156250e+000 -9.375000e-001
-1.148438e+000 -9.375000e-001
-1.140625e+000 -9.375000e-001
-1.132813e+000 -9.375000e-001
-1.125000e+000 -9.375000e-001
-1.117188e+000 -9.375000e-001
-1.109375e+000 -9.375000e-001
-1.101563e+000 -9.375000e-001
-1.093750e+000 -9.375000e-001
-1.085938e+000 -9.375000e-001
-1.078125e+000 -9.375000e-001
-1.070313e+000 -9.375000e-001
-1.062500e+000 -9.375000e-001
-1.054688e+000 -9.375000e-001
-1.046875e+000 -9.375000e-001
-1.039063e+000 -9.375000e-001
-1.031250e+000 -9.375000e-001
-1.023438e+000 -9.375000e-001
-1.015625e+000 -9.375000e-001
-1.007813e+000 -9.375000e-001
-1.000000e+000 -9.375000e-001
-9.921875e-001 -9.375000e-001
-9.843750e-001 -9.375000e-001
-9.765625e-001 -9.375000e-001
-9.687500e-001 -9.375000e-001
-9.609375e-001 -9.375000e-001
-9.531250e-001 -9.375000e-001
-9.453125e-001 -9.375000e-001
-9.375000e-001 -9.375000e-001
-9.296875e-001 -9.375000e-001
-9.218750e-001 -9.375000e-001
-9.140625e-001 -9.375000e-001
-9.062500e-001 -9.375000e-001
-8.984375e-001 -8.750000e-001
-8.906250e-001 -8.750000e-001
-8.828125e-001 -8.750000e-001
-8.750000e-001 -8.750000e-001
-8.671875e-001 -8.750000e-001
-8.593750e-001 -8.750000e-001
-8.515625e-001 -8.750000e-001
-8.437500e-001 -8.750000e-001
-8.359375e-001 -8.125000e-001
-8.281250e-001 -8.125000e-001
-8.203125e-001 -8.125000e-001
-8.125000e-001 -8.125000e-001
-8.046875e-001 -8.125000e-001
-7.968750e-001 -8.125000e-001
-7.890625e-001 -8.125000e-001
-7.812500e-001 -8.125000e-001
-7.734375e-001 -7.500000e-001
-7.656250e-001 -7.500000e-001
-7.578125e-001 -7.500000e-001
-7.500000e-001 -7.500000e-001
-7.421875e-001 -7.500000e-001
-7.343750e-001 -7.500000e-001
-7.265625e-001 -7.500000e-001
-7.187500e-001 -7.500000e-001
-7.109375e-001 -6.875000e-001
-7.031250e-001 -6.875000e-001
-6.953125e-001 -6.875000e-001
-6.875000e-001 -6.875000e-001
-6.796875e-001 -6.875000e-001
-6.718750e-001 -6.875000e-001
-6.640625e-001 -6.875000e-001
-6.562500e-001 -6.875000e-001
-6.484375e-001 -6.250000e-001
-6.406250e-001 -6.250000e-001
-6.328125e-001 -6.250000e-001
-6.250000e-001 -6.250000e-001
-6.171875e-001 -6.250000e-001
-6.093750e-001 -6.250000e-001
-6.015625e-001 -6.250000e-001
-5.937500e-001 -6.250000e-001
-5.859375e-001 -5.625000e-001
-5.781250e-001 -5.625000e-001
-5.703125e-001 -5.625000e-001
-5.625000e-001 -5.625000e-001
-5.546875e-001 -5.625000e-001
-5.468750e-001 -5.625000e-001
-5.390625e-001 -5.625000e-001
-5.312500e-001 -5.625000e-001
-5.234375e-001 -5.000000e-001
-5.156250e-001 -5.000000e-001
-5.078125e-001 -5.000000e-001
-5.000000e-001 -5.000000e-001
-4.921875e-001 -5.000000e-001
-4.843750e-001 -5.000000e-001
-4.765625e-001 -5.000000e-001
-4.687500e-001 -5.000000e-001
-4.609375e-001 -4.375000e-001
-4.531250e-001 -4.375000e-001
-4.453125e-001 -4.375000e-001
-4.375000e-001 -4.375000e-001
-4.296875e-001 -4.375000e-001
-4.218750e-001 -4.375000e-001
-4.140625e-001 -4.375000e-001
-4.062500e-001 -4.375000e-001
-3.984375e-001 -3.750000e-001
-3.906250e-001 -3.750000e-001
-3.828125e-001 -3.750000e-001
-3.750000e-001 -3.750000e-001
-3.671875e-001 -3.750000e-001
-3.593750e-001 -3.750000e-001
-3.515625e-001 -3.750000e-001
-3.437500e-001 -3.750000e-001
-3.359375e-001 -3.125000e-001
-3.281250e-001 -3.125000e-001
-3.203125e-001 -3.125000e-001
-3.125000e-001 -3.125000e-001
-3.046875e-001 -3.125000e-001
-2.968750e-001 -3.125000e-001
-2.890625e-001 -3.125000e-001
-2.812500e-001 -3.125000e-001
-2.734375e-001 -2.500000e-001
-2.656250e-001 -2.500000e-001
-2.578125e-001 -2.500000e-001
-2.500000e-001 -2.500000e-001
-2.421875e-001 -2.500000e-001
-2.343750e-001 -2.500000e-001
-2.265625e-001 -2.500000e-001
-2.187500e-001 -2.500000e-001
-2.109375e-001 -1.875000e-001
-2.031250e-001 -1.875000e-001
-1.953125e-001 -1.875000e-001
-1.875000e-001 -1.875000e-001
-1.796875e-001 -1.875000e-001
-1.718750e-001 -1.875000e-001
-1.640625e-001 -1.875000e-001
-1.562500e-001 -1.875000e-001
-1.484375e-001 -1.250000e-001
-1.406250e-001 -1.250000e-001
-1.328125e-001 -1.250000e-001
-1.250000e-001 -1.250000e-001
-1.171875e-001 -1.250000e-001
-1.093750e-001 -1.250000e-001
-1.015625e-001 -1.250000e-001
-9.375000e-002 -1.250000e-001
-8.593750e-002 -6.250000e-002
-7.812500e-002 -6.250000e-002
-7.031250e-002 -6.250000e-002
-6.250000e-002 -6.250000e-002
-5.468750e-002 -6.250000e-002
-4.687500e-002 -6.250000e-002
-3.906250e-002 -6.250000e-002
-3.125000e-002 -6.250000e-002
-2.343750e-002 0.000000e+000
-1.562500e-002 0.000000e+000
-7.812500e-003 0.000000e+000
0.000000e+000 0.000000e+000
7.812500e-003 0.000000e+000
1.562500e-002 0.000000e+000
2.343750e-002 0.000000e+000
3.125000e-002 6.250000e-002
3.906250e-002 6.250000e-002
4.687500e-002 6.250000e-002
5.468750e-002 6.250000e-002
6.250000e-002 6.250000e-002
7.031250e-002 6.250000e-002
7.812500e-002 6.250000e-002
8.593750e-002 6.250000e-002
9.375000e-002 1.250000e-001
1.015625e-001 1.250000e-001
1.093750e-001 1.250000e-001
1.171875e-001 1.250000e-001
1.250000e-001 1.250000e-001
1.328125e-001 1.250000e-001
1.406250e-001 1.250000e-001
1.484375e-001 1.250000e-001
1.562500e-001 1.875000e-001
1.640625e-001 1.875000e-001
1.718750e-001 1.875000e-001
1.796875e-001 1.875000e-001
1.875000e-001 1.875000e-001
1.953125e-001 1.875000e-001
2.031250e-001 1.875000e-001
2.109375e-001 1.875000e-001
2.187500e-001 2.500000e-001
2.265625e-001 2.500000e-001
2.343750e-001 2.500000e-001
2.421875e-001 2.500000e-001
2.500000e-001 2.500000e-001
2.578125e-001 2.500000e-001
2.656250e-001 2.500000e-001
2.734375e-001 2.500000e-001
2.812500e-001 3.125000e-001
2.890625e-001 3.125000e-001
2.968750e-001 3.125000e-001
3.046875e-001 3.125000e-001
3.125000e-001 3.125000e-001
3.203125e-001 3.125000e-001
3.281250e-001 3.125000e-001
3.359375e-001 3.125000e-001
3.437500e-001 3.750000e-001
3.515625e-001 3.750000e-001
3.593750e-001 3.750000e-001
3.671875e-001 3.750000e-001
3.750000e-001 3.750000e-001
3.828125e-001 3.750000e-001
3.906250e-001 3.750000e-001
3.984375e-001 3.750000e-001
4.062500e-001 4.375000e-001
4.140625e-001 4.375000e-001
4.218750e-001 4.375000e-001
4.296875e-001 4.375000e-001
4.375000e-001 4.375000e-001
4.453125e-001 4.375000e-001
4.531250e-001 4.375000e-001
4.609375e-001 4.375000e-001
4.687500e-001 5.000000e-001
4.765625e-001 5.000000e-001
4.843750e-001 5.000000e-001
4.921875e-001 5.000000e-001
5.000000e-001 5.000000e-001
5.078125e-001 5.000000e-001
5.156250e-001 5.000000e-001
5.234375e-001 5.000000e-001
5.312500e-001 5.625000e-001
5.390625e-001 5.625000e-001
5.468750e-001 5.625000e-001
5.546875e-001 5.625000e-001
5.625000e-001 5.625000e-001
5.703125e-001 5.625000e-001
5.781250e-001 5.625000e-001
5.859375e-001 5.625000e-001
5.937500e-001 6.250000e-001
6.015625e-001 6.250000e-001
6.093750e-001 6.250000e-001
6.171875e-001 6.250000e-001
6.250000e-001 6.250000e-001
6.328125e-001 6.250000e-001
6.406250e-001 6.250000e-001
6.484375e-001 6.250000e-001
6.562500e-001 6.875000e-001
6.640625e-001 6.875000e-001
6.718750e-001 6.875000e-001
6.796875e-001 6.875000e-001
6.875000e-001 6.875000e-001
6.953125e-001 6.875000e-001
7.031250e-001 6.875000e-001
7.109375e-001 6.875000e-001
7.187500e-001 7.500000e-001
7.265625e-001 7.500000e-001
7.343750e-001 7.500000e-001
7.421875e-001 7.500000e-001
7.500000e-001 7.500000e-001
7.578125e-001 7.500000e-001
7.656250e-001 7.500000e-001
7.734375e-001 7.500000e-001
7.812500e-001 8.125000e-001
7.890625e-001 8.125000e-001
7.968750e-001 8.125000e-001
8.046875e-001 8.125000e-001
8.125000e-001 8.125000e-001
8.203125e-001 8.125000e-001
8.281250e-001 8.125000e-001
8.359375e-001 8.125000e-001
8.437500e-001 8.750000e-001
8.515625e-001 8.750000e-001
8.593750e-001 8.750000e-001
8.671875e-001 8.750000e-001
8.750000e-001 8.750000e-001
8.828125e-001 8.750000e-001
8.906250e-001 8.750000e-001
8.984375e-001 8.750000e-001
9.062500e-001 9.375000e-001
9.140625e-001 9.375000e-001
9.218750e-001 9.375000e-001
9.296875e-001 9.375000e-001
9.375000e-001 9.375000e-001
9.453125e-001 9.375000e-001
9.531250e-001 9.375000e-001
9.609375e-001 9.375000e-001
9.687500e-001 9.375000e-001
9.765625e-001 9.375000e-001
9.843750e-001 9.375000e-001
9.921875e-001 9.375000e-001
1.000000e+000 9.375000e-001
1.007813e+000 9.375000e-001
1.015625e+000 9.375000e-001
1.023438e+000 9.375000e-001
1.031250e+000 9.375000e-001
1.039063e+000 9.375000e-001
1.046875e+000 9.375000e-001
1.054688e+000 9.375000e-001
1.062500e+000 9.375000e-001
1.070313e+000 9.375000e-001
1.078125e+000 9.375000e-001
1.085938e+000 9.375000e-001
1.093750e+000 9.375000e-001
1.101563e+000 9.375000e-001
1.109375e+000 9.375000e-001
1.117188e+000 9.375000e-001
1.125000e+000 9.375000e-001
1.132813e+000 9.375000e-001
1.140625e+000 9.375000e-001
1.148438e+000 9.375000e-001
1.156250e+000 9.375000e-001
1.164063e+000 9.375000e-001
1.171875e+000 9.375000e-001
1.179688e+000 9.375000e-001
1.187500e+000 9.375000e-001
1.195313e+000 9.375000e-001
1.203125e+000 9.375000e-001
1.210938e+000 9.375000e-001
1.218750e+000 9.375000e-001
1.226563e+000 9.375000e-001
1.234375e+000 9.375000e-001
1.242188e+000 9.375000e-001
1.250000e+000 9.375000e-001
1.257813e+000 9.375000e-001
1.265625e+000 9.375000e-001
1.273438e+000 9.375000e-001
1.281250e+000 9.375000e-001
1.289063e+000 9.375000e-001
1.296875e+000 9.375000e-001
1.304688e+000 9.375000e-001
1.312500e+000 9.375000e-001
1.320313e+000 9.375000e-001
1.328125e+000 9.375000e-001
1.335938e+000 9.375000e-001
1.343750e+000 9.375000e-001
1.351563e+000 9.375000e-001
1.359375e+000 9.375000e-001
1.367188e+000 9.375000e-001
1.375000e+000 9.375000e-001
1.382813e+000 9.375000e-001
1.390625e+000 9.375000e-001
1.398438e+000 9.375000e-001
1.406250e+000 9.375000e-001
1.414063e+000 9.375000e-001
1.421875e+000 9.375000e-001
1.429688e+000 9.375000e-001
1.437500e+000 9.375000e-001
1.445313e+000 9.375000e-001
1.453125e+000 9.375000e-001
1.460938e+000 9.375000e-001
1.468750e+000 9.375000e-001
1.476563e+000 9.375000e-001
1.484375e+000 9.375000e-001
1.492188e+000 9.375000e-001
1.500000e+000 9.375000e-001
1.507813e+000 9.375000e-001
1.515625e+000 9.375000e-001
1.523438e+000 9.375000e-001
1.531250e+000 9.375000e-001
1.539063e+000 9.375000e-001
1.546875e+000 9.375000e-001
1.554688e+000 9.375000e-001
1.562500e+000 9.375000e-001
1.570313e+000 9.375000e-001
1.578125e+000 9.375000e-001
1.585938e+000 9.375000e-001
1.593750e+000 9.375000e-001
1.601563e+000 9.375000e-001
1.609375e+000 9.375000e-001
1.617188e+000 9.375000e-001
1.625000e+000 9.375000e-001
1.632813e+000 9.375000e-001
1.640625e+000 9.375000e-001
1.648438e+000 9.375000e-001
1.656250e+000 9.375000e-001
1.664063e+000 9.375000e-001
1.671875e+000 9.375000e-001
1.679688e+000 9.375000e-001
1.687500e+000 9.375000e-001
1.695313e+000 9.375000e-001
1.703125e+000 9.375000e-001
1.710938e+000 9.375000e-001
1.718750e+000 9.375000e-001
1.726563e+000 9.375000e-001
1.734375e+000 9.375000e-001
1.742188e+000 9.375000e-001
1.750000e+000 9.375000e-001
1.757813e+000 9.375000e-001
1.765625e+000 9.375000e-001
1.773438e+000 9.375000e-001
1.781250e+000 9.375000e-001
1.789063e+000 9.375000e-001
1.796875e+000 9.375000e-001
1.804688e+000 9.375000e-001
1.812500e+000 9.375000e-001
1.820313e+000 9.375000e-001
1.828125e+000 9.375000e-001
1.835938e+000 9.375000e-001
1.843750e+000 9.375000e-001
1.851563e+000 9.375000e-001
1.859375e+000 9.375000e-001
1.867188e+000 9.375000e-001
1.875000e+000 9.375000e-001
1.882813e+000 9.375000e-001
1.890625e+000 9.375000e-001
1.898438e+000 9.375000e-001
1.906250e+000 9.375000e-001
1.914063e+000 9.375000e-001
1.921875e+000 9.375000e-001
1.929688e+000 9.375000e-001
1.937500e+000 9.375000e-001
1.945313e+000 9.375000e-001
1.953125e+000 9.375000e-001
1.960938e+000 9.375000e-001
1.968750e+000 9.375000e-001
1.976563e+000 9.375000e-001
1.984375e+000 9.375000e-001
1.992188e+000 9.375000e-001
0.000000e+000 0.000000e+000
+256
View File
@@ -0,0 +1,256 @@
0.000000e+000 0.000000e+000
7.812500e-003 0.000000e+000
1.562500e-002 0.000000e+000
2.343750e-002 0.000000e+000
3.125000e-002 6.250000e-002
3.906250e-002 6.250000e-002
4.687500e-002 6.250000e-002
5.468750e-002 6.250000e-002
6.250000e-002 6.250000e-002
7.031250e-002 6.250000e-002
7.812500e-002 6.250000e-002
8.593750e-002 6.250000e-002
9.375000e-002 1.250000e-001
1.015625e-001 1.250000e-001
1.093750e-001 1.250000e-001
1.171875e-001 1.250000e-001
1.250000e-001 1.250000e-001
1.328125e-001 1.250000e-001
1.406250e-001 1.250000e-001
1.484375e-001 1.250000e-001
1.562500e-001 1.875000e-001
1.640625e-001 1.875000e-001
1.718750e-001 1.875000e-001
1.796875e-001 1.875000e-001
1.875000e-001 1.875000e-001
1.953125e-001 1.875000e-001
2.031250e-001 1.875000e-001
2.109375e-001 1.875000e-001
2.187500e-001 2.500000e-001
2.265625e-001 2.500000e-001
2.343750e-001 2.500000e-001
2.421875e-001 2.500000e-001
2.500000e-001 2.500000e-001
2.578125e-001 2.500000e-001
2.656250e-001 2.500000e-001
2.734375e-001 2.500000e-001
2.812500e-001 3.125000e-001
2.890625e-001 3.125000e-001
2.968750e-001 3.125000e-001
3.046875e-001 3.125000e-001
3.125000e-001 3.125000e-001
3.203125e-001 3.125000e-001
3.281250e-001 3.125000e-001
3.359375e-001 3.125000e-001
3.437500e-001 3.750000e-001
3.515625e-001 3.750000e-001
3.593750e-001 3.750000e-001
3.671875e-001 3.750000e-001
3.750000e-001 3.750000e-001
3.828125e-001 3.750000e-001
3.906250e-001 3.750000e-001
3.984375e-001 3.750000e-001
4.062500e-001 4.375000e-001
4.140625e-001 4.375000e-001
4.218750e-001 4.375000e-001
4.296875e-001 4.375000e-001
4.375000e-001 4.375000e-001
4.453125e-001 4.375000e-001
4.531250e-001 4.375000e-001
4.609375e-001 4.375000e-001
4.687500e-001 5.000000e-001
4.765625e-001 5.000000e-001
4.843750e-001 5.000000e-001
4.921875e-001 5.000000e-001
5.000000e-001 5.000000e-001
5.078125e-001 5.000000e-001
5.156250e-001 5.000000e-001
5.234375e-001 5.000000e-001
5.312500e-001 5.625000e-001
5.390625e-001 5.625000e-001
5.468750e-001 5.625000e-001
5.546875e-001 5.625000e-001
5.625000e-001 5.625000e-001
5.703125e-001 5.625000e-001
5.781250e-001 5.625000e-001
5.859375e-001 5.625000e-001
5.937500e-001 6.250000e-001
6.015625e-001 6.250000e-001
6.093750e-001 6.250000e-001
6.171875e-001 6.250000e-001
6.250000e-001 6.250000e-001
6.328125e-001 6.250000e-001
6.406250e-001 6.250000e-001
6.484375e-001 6.250000e-001
6.562500e-001 6.875000e-001
6.640625e-001 6.875000e-001
6.718750e-001 6.875000e-001
6.796875e-001 6.875000e-001
6.875000e-001 6.875000e-001
6.953125e-001 6.875000e-001
7.031250e-001 6.875000e-001
7.109375e-001 6.875000e-001
7.187500e-001 7.500000e-001
7.265625e-001 7.500000e-001
7.343750e-001 7.500000e-001
7.421875e-001 7.500000e-001
7.500000e-001 7.500000e-001
7.578125e-001 7.500000e-001
7.656250e-001 7.500000e-001
7.734375e-001 7.500000e-001
7.812500e-001 8.125000e-001
7.890625e-001 8.125000e-001
7.968750e-001 8.125000e-001
8.046875e-001 8.125000e-001
8.125000e-001 8.125000e-001
8.203125e-001 8.125000e-001
8.281250e-001 8.125000e-001
8.359375e-001 8.125000e-001
8.437500e-001 8.750000e-001
8.515625e-001 8.750000e-001
8.593750e-001 8.750000e-001
8.671875e-001 8.750000e-001
8.750000e-001 8.750000e-001
8.828125e-001 8.750000e-001
8.906250e-001 8.750000e-001
8.984375e-001 8.750000e-001
9.062500e-001 9.375000e-001
9.140625e-001 9.375000e-001
9.218750e-001 9.375000e-001
9.296875e-001 9.375000e-001
9.375000e-001 9.375000e-001
9.453125e-001 9.375000e-001
9.531250e-001 9.375000e-001
9.609375e-001 9.375000e-001
9.687500e-001 9.375000e-001
9.765625e-001 9.375000e-001
9.843750e-001 9.375000e-001
9.921875e-001 9.375000e-001
1.000000e+000 9.375000e-001
1.007813e+000 9.375000e-001
1.015625e+000 9.375000e-001
1.023438e+000 9.375000e-001
1.031250e+000 9.375000e-001
1.039063e+000 9.375000e-001
1.046875e+000 9.375000e-001
1.054688e+000 9.375000e-001
1.062500e+000 9.375000e-001
1.070313e+000 9.375000e-001
1.078125e+000 9.375000e-001
1.085938e+000 9.375000e-001
1.093750e+000 9.375000e-001
1.101563e+000 9.375000e-001
1.109375e+000 9.375000e-001
1.117188e+000 9.375000e-001
1.125000e+000 9.375000e-001
1.132813e+000 9.375000e-001
1.140625e+000 9.375000e-001
1.148438e+000 9.375000e-001
1.156250e+000 9.375000e-001
1.164063e+000 9.375000e-001
1.171875e+000 9.375000e-001
1.179688e+000 9.375000e-001
1.187500e+000 9.375000e-001
1.195313e+000 9.375000e-001
1.203125e+000 9.375000e-001
1.210938e+000 9.375000e-001
1.218750e+000 9.375000e-001
1.226563e+000 9.375000e-001
1.234375e+000 9.375000e-001
1.242188e+000 9.375000e-001
1.250000e+000 9.375000e-001
1.257813e+000 9.375000e-001
1.265625e+000 9.375000e-001
1.273438e+000 9.375000e-001
1.281250e+000 9.375000e-001
1.289063e+000 9.375000e-001
1.296875e+000 9.375000e-001
1.304688e+000 9.375000e-001
1.312500e+000 9.375000e-001
1.320313e+000 9.375000e-001
1.328125e+000 9.375000e-001
1.335938e+000 9.375000e-001
1.343750e+000 9.375000e-001
1.351563e+000 9.375000e-001
1.359375e+000 9.375000e-001
1.367188e+000 9.375000e-001
1.375000e+000 9.375000e-001
1.382813e+000 9.375000e-001
1.390625e+000 9.375000e-001
1.398438e+000 9.375000e-001
1.406250e+000 9.375000e-001
1.414063e+000 9.375000e-001
1.421875e+000 9.375000e-001
1.429688e+000 9.375000e-001
1.437500e+000 9.375000e-001
1.445313e+000 9.375000e-001
1.453125e+000 9.375000e-001
1.460938e+000 9.375000e-001
1.468750e+000 9.375000e-001
1.476563e+000 9.375000e-001
1.484375e+000 9.375000e-001
1.492188e+000 9.375000e-001
1.500000e+000 9.375000e-001
1.507813e+000 9.375000e-001
1.515625e+000 9.375000e-001
1.523438e+000 9.375000e-001
1.531250e+000 9.375000e-001
1.539063e+000 9.375000e-001
1.546875e+000 9.375000e-001
1.554688e+000 9.375000e-001
1.562500e+000 9.375000e-001
1.570313e+000 9.375000e-001
1.578125e+000 9.375000e-001
1.585938e+000 9.375000e-001
1.593750e+000 9.375000e-001
1.601563e+000 9.375000e-001
1.609375e+000 9.375000e-001
1.617188e+000 9.375000e-001
1.625000e+000 9.375000e-001
1.632813e+000 9.375000e-001
1.640625e+000 9.375000e-001
1.648438e+000 9.375000e-001
1.656250e+000 9.375000e-001
1.664063e+000 9.375000e-001
1.671875e+000 9.375000e-001
1.679688e+000 9.375000e-001
1.687500e+000 9.375000e-001
1.695313e+000 9.375000e-001
1.703125e+000 9.375000e-001
1.710938e+000 9.375000e-001
1.718750e+000 9.375000e-001
1.726563e+000 9.375000e-001
1.734375e+000 9.375000e-001
1.742188e+000 9.375000e-001
1.750000e+000 9.375000e-001
1.757813e+000 9.375000e-001
1.765625e+000 9.375000e-001
1.773438e+000 9.375000e-001
1.781250e+000 9.375000e-001
1.789063e+000 9.375000e-001
1.796875e+000 9.375000e-001
1.804688e+000 9.375000e-001
1.812500e+000 9.375000e-001
1.820313e+000 9.375000e-001
1.828125e+000 9.375000e-001
1.835938e+000 9.375000e-001
1.843750e+000 9.375000e-001
1.851563e+000 9.375000e-001
1.859375e+000 9.375000e-001
1.867188e+000 9.375000e-001
1.875000e+000 9.375000e-001
1.882813e+000 9.375000e-001
1.890625e+000 9.375000e-001
1.898438e+000 9.375000e-001
1.906250e+000 9.375000e-001
1.914063e+000 9.375000e-001
1.921875e+000 9.375000e-001
1.929688e+000 9.375000e-001
1.937500e+000 9.375000e-001
1.945313e+000 9.375000e-001
1.953125e+000 9.375000e-001
1.960938e+000 9.375000e-001
1.968750e+000 9.375000e-001
1.976563e+000 9.375000e-001
1.984375e+000 9.375000e-001
1.992188e+000 9.375000e-001
@@ -0,0 +1,12 @@
vlib work
vcom -explicit -93 "../../lib/src/fixed_ja/fixed_ja.vhd"
vcom -explicit -93 "../../lib/src/fixed_ja/fixed_ja_body.vhd"
vcom -explicit -93 "../../lib/src/PCK_FIO-2002.7/PCK_FIO_1993.vhd"
vcom -explicit -93 "../../lib/src/PCK_FIO-2002.7/PCK_FIO_1993_BODY.vhd"
vcom -explicit -93 "src/tb_eval_fixed_ja.vhd"
vsim -t 1ps -lib work tb_eval_fixed_ja
#do {wave.do}
view wave
view structure
view signals
run 1000ns
+14
View File
@@ -0,0 +1,14 @@
% Read data
[xu,yu] = TEXTREAD('sum_test_u.txt');
[xs,ys] = TEXTREAD('sum_test_s.txt');
close all;
plot(0:length(xu)-1, xu, 0:length(yu)-1, yu);
grid;
figure;
plot(0:length(xs)-1, xs, 0:length(ys)-1, ys);
grid;
Binary file not shown.
@@ -0,0 +1,43 @@
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.NUMERIC_STD.ALL;
package fifo_ctrl_pkg is
-- Constants
-- Types
-- Functions
function bin2gray(xb : unsigned) return unsigned;
function gray2bin(xg : unsigned) return unsigned;
end fifo_ctrl_pkg;
package body fifo_ctrl_pkg is
function bin2gray(xb : unsigned) return unsigned is
variable xg : unsigned(xb'left downto xb'right);
begin
xg(xg'left) := xb(xb'left);
for i in 1 to xb'left loop
xg(xg'left-i) := xb(xb'left-i+1) xor xb(xb'left-i);
end loop;
return xg;
end bin2gray;
function gray2bin(xg : unsigned) return unsigned is
variable xb : unsigned(xg'left downto xg'right);
begin
xb(xb'left) := xg(xg'left);
for i in 1 to xg'left loop
xb(xb'left-i) := xb(xb'left-i+1) xor xg(xg'left-i);
end loop;
return xb;
end gray2bin;
end fifo_ctrl_pkg;
+1
View File
@@ -0,0 +1 @@
work
+3
View File
@@ -0,0 +1,3 @@
vhdl work "fifo_ctrl_pkg.vhd"
vhdl work "../../lib/FIFO/src/gray_counter.vhd"
vhdl work "top.vhd"
+60
View File
@@ -0,0 +1,60 @@
----------------------------------------------------------------------------------
-- Company:
-- Engineer:
--
-- Create Date: 15:55:59 09/18/2007
-- Design Name:
-- Module Name: top - Behavioral
-- Project Name:
-- Target Devices:
-- Tool versions:
-- Description:
--
-- Dependencies:
--
-- Revision:
-- Revision 0.01 - File Created
-- Additional Comments:
--
----------------------------------------------------------------------------------
library IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.NUMERIC_STD.ALL;
---- Uncomment the following library declaration if instantiating
---- any Xilinx primitives in this code.
--library UNISIM;
--use UNISIM.VComponents.all;
LIBRARY WORK;
USE WORK.FIFO_CTRL_PKG.ALL;
entity top is
Port ( rst : in STD_LOGIC;
clk : in STD_LOGIC;
ce : in STD_LOGIC;
gcnt : out unsigned (13 downto 0);
bcnt : out unsigned (13 downto 0);
gnxt : out unsigned (13 downto 0);
bnxt : out unsigned (13 downto 0)
);
end top;
architecture Behavioral of top is
begin
inst_gray_counter : entity work.gray_counter
generic map (width => 14)
port map (
rst => rst,
clk => clk,
ce => ce,
bcnt => bcnt,
bnxt => bnxt,
gcnt => gcnt,
gnxt => gnxt
);
end Behavioral;
+59
View File
@@ -0,0 +1,59 @@
set -tmpdir "./xst/projnav.tmp"
set -xsthdpdir "./xst"
run
-ifn top.prj
-ifmt mixed
-ofn top
-ofmt NGC
-p xc4vsx35-10-ff668
-top top
-opt_mode Speed
-opt_level 1
-power NO
-iuc NO
-lso top.lso
-keep_hierarchy NO
-rtlview Yes
-glob_opt AllClockNets
-read_cores YES
-write_timing_constraints NO
-cross_clock_analysis NO
-hierarchy_separator /
-bus_delimiter <>
-case maintain
-slice_utilization_ratio 100
-bram_utilization_ratio 100
-dsp_utilization_ratio 100
-verilog2001 YES
-fsm_extract YES -fsm_encoding Auto
-safe_implementation No
-fsm_style lut
-ram_extract Yes
-ram_style Auto
-rom_extract Yes
-mux_style Auto
-decoder_extract YES
-priority_extract YES
-shreg_extract YES
-shift_extract YES
-xor_collapse YES
-rom_style Auto
-auto_bram_packing NO
-mux_extract YES
-resource_sharing YES
-async_to_sync NO
-use_dsp48 auto
-iobuf YES
-max_fanout 500
-bufg 32
-bufr 24
-register_duplication YES
-register_balancing No
-slice_packing YES
-optimize_primitives NO
-use_clock_enable Auto
-use_sync_set Auto
-use_sync_reset Auto
-iob auto
-equivalent_register_removal YES
-slice_utilization_ratio_maxmargin 5
+3
View File
@@ -0,0 +1,3 @@
vhdl work "W:\vhdl\projects\eval_gray_counter\fifo_ctrl_pkg.vhd"
vhdl work "W:\vhdl\lib\FIFO\src\gray_counter.vhd"
vhdl work "W:\vhdl\projects\eval_gray_counter\top.vhd"
+1
View File
@@ -0,0 +1 @@
vhdl work "d_ff.vhd"
Binary file not shown.
@@ -0,0 +1 @@
work
@@ -0,0 +1,2 @@
vhdl work "d_ff.vhd"
vhdl work "eval_synch_top.vhd"
@@ -0,0 +1,14 @@
## NOTE: Do not edit this file.
## Autogenerated by ProjNav (creatfdo.tcl) on Sat Oct 08 13:45:11 Westeuropäische Sommerzeit 2005
##
vlib work
vcom -93 -explicit d_ff.vhd
vcom -93 -explicit eval_synch_top.vhd
vcom -93 -explicit tb_eval_synch.vhd
vsim -t 1ps -lib work tb_eval_synch_vhd
do {tb_eval_synch_vhd.udo}
view wave
add wave *
view structure
view signals
run 1000ns
@@ -0,0 +1,4 @@
-- ProjNav VHDL simulation template: tb_eval_synch_vhd.udo
-- You may edit this file after the line that starts with
-- '-- START' to customize your simulation
-- START user-defined simulation commands
+53
View File
@@ -0,0 +1,53 @@
--------------------------------------------------------------------------------
-- Company:
-- Engineer:
--
-- Create Date: 13:19:14 10/08/05
-- Design Name:
-- Module Name: d_ff - Behavioral
-- Project Name:
-- Target Device:
-- Tool versions:
-- Description:
--
-- Dependencies:
--
-- Revision:
-- Revision 0.01 - File Created
-- Additional Comments:
--
--------------------------------------------------------------------------------
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
---- Uncomment the following library declaration if instantiating
---- any Xilinx primitives in this code.
--library UNISIM;
--use UNISIM.VComponents.all;
entity d_ff is
Generic (
tpd : time := 1 ns
);
Port ( rst : in std_logic;
clk : in std_logic;
din : in std_logic;
dout : out std_logic);
end d_ff;
architecture Behavioral of d_ff is
begin
d_ff_proc : process(rst, clk, din)
begin
if (rst = '1') then
dout <= '0' after tpd;
elsif rising_edge(clk) then
dout <= din after tpd;
end if;
end process;
end Behavioral;
+71
View File
@@ -0,0 +1,71 @@
--------------------------------------------------------------------------------
-- Company:
-- Engineer:
--
-- Create Date: 12:33:39 10/08/05
-- Design Name:
-- Module Name: eval_synch_top - Behavioral
-- Project Name:
-- Target Device:
-- Tool versions:
-- Description:
--
-- Dependencies:
--
-- Revision:
-- Revision 0.01 - File Created
-- Additional Comments:
--
--------------------------------------------------------------------------------
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
---- Uncomment the following library declaration if instantiating
---- any Xilinx primitives in this code.
--library UNISIM;
--use UNISIM.VComponents.all;
entity eval_synch_top is
Generic (N : integer := 8);
Port ( rst : in std_logic;
clk : in std_logic;
din : in std_logic;
dout : out std_logic_vector(0 to N-1));
end eval_synch_top;
architecture Behavioral of eval_synch_top is
COMPONENT d_ff
GENERIC(tpd : time);
PORT(
rst : IN std_logic;
clk : IN std_logic;
din : IN std_logic;
dout : OUT std_logic
);
END COMPONENT;
-------------------------------------------------
signal d_i : std_logic_vector(0 to N);
begin
d_i(0) <= din;
dout <= d_i(1 to N);
inst_shift_reg : for i in 1 to N generate
Inst_d_ff: d_ff
GENERIC MAP(tpd => 2.5 ns)
PORT MAP(
rst => rst,
clk => clk,
din => d_i(i-1),
dout => d_i(i)
);
end generate;
end Behavioral;
+106
View File
@@ -0,0 +1,106 @@
--------------------------------------------------------------------------------
-- Company:
-- Engineer:
--
-- Create Date: 13:42:54 10/08/2005
-- Design Name: eval_synch_top
-- Module Name: tb_eval_synch.vhd
-- Project Name: eval_sync
-- Target Device:
-- Tool versions:
-- Description:
--
-- VHDL Test Bench Created by ISE for module: eval_synch_top
--
-- Dependencies:
--
-- Revision:
-- Revision 0.01 - File Created
-- Additional Comments:
--
-- Notes:
-- This testbench has been automatically generated using types std_logic and
-- std_logic_vector for the ports of the unit under test. Xilinx recommends
-- that these types always be used for the top-level I/O of a design in order
-- to guarantee that the testbench will bind correctly to the post-implementation
-- simulation model.
--------------------------------------------------------------------------------
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
USE ieee.std_logic_unsigned.all;
USE ieee.numeric_std.ALL;
ENTITY tb_eval_synch_vhd IS
END tb_eval_synch_vhd;
ARCHITECTURE behavior OF tb_eval_synch_vhd IS
-- Component Declaration for the Unit Under Test (UUT)
COMPONENT eval_synch_top
PORT(
rst : IN std_logic;
clk : IN std_logic;
din : IN std_logic;
dout : OUT std_logic_vector(0 to 7)
);
END COMPONENT;
--Constants
constant PERIOD : time := 10 ns;
--Inputs
SIGNAL rst : std_logic := '1';
SIGNAL clk : std_logic := '0';
SIGNAL din : std_logic := '0';
--Outputs
SIGNAL dout : std_logic_vector(0 to 7);
BEGIN
-- Instantiate the Unit Under Test (UUT)
uut: eval_synch_top PORT MAP(
rst => rst,
clk => clk,
din => din,
dout => dout
);
tb_clk : PROCESS
BEGIN
clk <= not clk;
wait for PERIOD/2;
END PROCESS;
tb : PROCESS
BEGIN
-- Wait 100 ns for global reset to finish
wait for 2*PERIOD;
rst <= '0';
wait for 1.0*PERIOD + 0 ns;
din <= '1';
wait for PERIOD;
din <= '0';
wait for PERIOD;
din <= '1';
wait for PERIOD;
din <= '1';
wait for PERIOD;
din <= '0';
-- Wait 100 ns for global reset to finish
wait for 100 ns;
-- Place stimulus here
wait; -- will wait forever
END PROCESS;
END;
@@ -0,0 +1 @@
work
@@ -0,0 +1 @@
vhdl work main_top.vhdl
@@ -0,0 +1,8 @@
INST "clki" TNM = "TNM_clk";
NET "clki" PERIOD = 20 ns LOW 50 %;
INST "di" TNM = "testgrp_in";
INST "do" TNM = "testgrp_out";
TIMEGRP "testgrp_in" OFFSET = IN 10 ns BEFORE "clki" ;
TIMEGRP "testgrp_out" OFFSET = OUT 25 ns AFTER "clki" ;
#OFFSET = OUT 2 ns BEFORE "clk" TIMEGRP "TNM_clk" ;
@@ -0,0 +1,92 @@
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
-- Uncomment the following lines to use the declarations that are
-- provided for instantiating Xilinx primitive components.
--library UNISIM;
--use UNISIM.VComponents.all;
entity main_top is
Port ( res : in std_logic;
clki : in std_logic;
clko : out std_logic;
di : in std_logic;
do : out std_logic);
end main_top;
architecture Behavioral of main_top is
type state_type is (idle, active, release);
signal state, nextstate : state_type;
signal clk : std_logic;
shared variable test : std_logic;
component BUFG
port (I: in std_logic; O: out std_logic);
end component;
--**Insert the following after the 'begin' keyword**
begin
--U1: BUFG port map (I => clki, O => clk);
clk <= clki;
process (res, clk, di, state)
begin
if (res = '1') then
clko <= '0';
else
clko <= '1';
case state is
when idle =>
if (di = '1') then
nextstate <= active;
else
nextstate <= idle;
end if;
when active =>
if (di = '1') then
nextstate <= active;
else
nextstate <= idle;
end if;
when release =>
nextstate <= idle;
end case;
end if;
end process;
process (res, clk, state)
begin
if (res = '1') then
do <= '0';
else
do <= '0';
case state is
when active =>
do <= '1';
when others =>
end case;
end if;
end process;
process (res, clk)
begin
if (res = '1') then
state <= idle;
elsif clk'event and clk = '1' then
state <= nextstate;
end if;
end process;
end Behavioral;
@@ -0,0 +1,13 @@
## NOTE: Do not edit this file.
## Autogenerated by ProjNav (creatfdo.tcl) on Tue Jun 08 23:46:14 Westeuropäische Sommerzeit 2004
##
vlib work
vcom -93 -explicit main_top.vhdl
vcom -93 -explicit main_top_tb.vhd
vsim -t 1ps -lib work main_top_main_top_tb_vhd_tb
do main_top_main_top_tb_vhd_tb.udo
view wave
add wave *
view structure
view signals
run 1000ns
@@ -0,0 +1,15 @@
## NOTE: Do not edit this file.
## Auto generated by Project Navigator for VHDL Post-PAR Simulation
##
vlib work
## Compile Post-PAR Model for Module main_top
vcom -87 -explicit main_top_timesim.vhd
vcom -93 -explicit main_top_tb.vhd
vsim -t 1ps -sdfmax /UUT=main_top_timesim.sdf -lib work main_top_main_top_tb_vhd_tb
do main_top_main_top_tb_vhd_tb.udo
view wave
add wave *
view structure
view signals
run 1000ns
## End
@@ -0,0 +1,4 @@
-- ProjNav VHDL simulation template: main_top_main_top_tb_vhd_tb.udo
-- You may edit this file after the line that starts with
-- '-- START' to customize your simulation
-- START user-defined simulation commands
@@ -0,0 +1,74 @@
-- VHDL Test Bench Created from source file main_top.vhd -- 22:41:27 06/08/2004
--
-- Notes:
-- This testbench has been automatically generated using types std_logic and
-- std_logic_vector for the ports of the unit under test. Xilinx recommends
-- that these types always be used for the top-level I/O of a design in order
-- to guarantee that the testbench will bind correctly to the post-implementation
-- simulation model.
--
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
USE ieee.numeric_std.ALL;
ENTITY main_top_main_top_tb_vhd_tb IS
END main_top_main_top_tb_vhd_tb;
ARCHITECTURE behavior OF main_top_main_top_tb_vhd_tb IS
COMPONENT main_top
PORT(
res : IN std_logic;
clki : IN std_logic;
di : IN std_logic;
clko : OUT std_logic;
do : OUT std_logic
);
END COMPONENT;
constant ClockPeriod : Time := 20 ns;
SIGNAL res : std_logic := '1';
SIGNAL clki : std_logic;
SIGNAL clko : std_logic;
SIGNAL di : std_logic := '0';
SIGNAL do : std_logic;
BEGIN
uut: main_top PORT MAP(
res => res,
clki => clki,
clko => clko,
di => di,
do => do
);
clkgen: process
begin
clki <= '1';
loop
wait for (ClockPeriod / 2);
clki <= not clki;
end loop;
end process;
-- *** Test Bench - User Defined Section ***
tb : PROCESS
BEGIN
res <= '1';
wait for 5*ClockPeriod;
res <= '0';
wait for 5*ClockPeriod;
di <= '1';
wait for 14.5*ClockPeriod;
di <= '0';
wait; -- will wait forever
END PROCESS;
-- *** End Test Bench - User Defined Section ***
END;
@@ -0,0 +1,432 @@
-- Xilinx Vhdl netlist produced by netgen application (version G.30)
-- Command : -intstyle ise -s 6 -pcf main_top.pcf -ngm main_top.ngm -rpw 100 -tpw 0 -ar Structure -xon true -w -ofmt vhdl -sim main_top.ncd main_top_timesim.vhd
-- Input file : main_top.ncd
-- Output file : main_top_timesim.vhd
-- Design name : main_top
-- # of Entities : 1
-- Xilinx : D:/Xilinx
-- Device : 2v250cs144-6 (PRODUCTION 1.118 2004-03-12, STEPPING 1)
-- This vhdl netlist is a simulation model and uses simulation
-- primitives which may not represent the true implementation of the
-- device, however the netlist is functionally correct and should not
-- be modified. This file cannot be synthesized and should only be used
-- with supported simulation tools.
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
library SIMPRIM;
use SIMPRIM.VCOMPONENTS.ALL;
use SIMPRIM.VPACKAGE.ALL;
entity main_top is
port (
clko : out STD_LOGIC;
do : out STD_LOGIC;
res : in STD_LOGIC := 'X';
clki : in STD_LOGIC := 'X';
di : in STD_LOGIC := 'X'
);
end main_top;
architecture Structure of main_top is
signal di_IBUF : STD_LOGIC;
signal do_OBUF : STD_LOGIC;
signal clki_IBUFG : STD_LOGIC;
signal clko_OBUF : STD_LOGIC;
signal res_BUFGP_IBUFG : STD_LOGIC;
signal GLOBAL_LOGIC1 : STD_LOGIC;
signal res_BUFGP : STD_LOGIC;
signal GLOBAL_LOGIC1_0 : STD_LOGIC;
signal GSR : STD_LOGIC;
signal GTS : STD_LOGIC;
signal di_INBUF : STD_LOGIC;
signal do_ENABLE : STD_LOGIC;
signal do_GTS_OR_T : STD_LOGIC;
signal do_O : STD_LOGIC;
signal clki_INBUF : STD_LOGIC;
signal clko_ENABLE : STD_LOGIC;
signal clko_GTS_OR_T : STD_LOGIC;
signal clko_O : STD_LOGIC;
signal res_INBUF : STD_LOGIC;
signal U1_S_INVNOT : STD_LOGIC;
signal res_BUFGP_BUFG_S_INVNOT : STD_LOGIC;
signal nextstate_1_DXMUX : STD_LOGIC;
signal nextstate_1_F : STD_LOGIC;
signal nextstate_1_DYMUX : STD_LOGIC;
signal nextstate_1_G : STD_LOGIC;
signal nextstate_1_CLKINV : STD_LOGIC;
signal state_1_DXMUX : STD_LOGIC;
signal state_1_DYMUX : STD_LOGIC;
signal state_1_SRFFMUX : STD_LOGIC;
signal state_1_CLKINV : STD_LOGIC;
signal do_OBUF_G : STD_LOGIC;
signal nextstate_1_FFY_SET : STD_LOGIC;
signal nextstate_1_FFX_RST : STD_LOGIC;
signal state_1_FFY_SET : STD_LOGIC;
signal state_1_FFX_RST : STD_LOGIC;
signal GND : STD_LOGIC;
signal VCC : STD_LOGIC;
signal NlwInverterSignal_nextstate_0_CLK : STD_LOGIC;
signal NlwInverterSignal_nextstate_1_CLK : STD_LOGIC;
signal state : STD_LOGIC_VECTOR ( 1 downto 0 );
signal Q_n0003 : STD_LOGIC_VECTOR ( 1 downto 0 );
signal nextstate : STD_LOGIC_VECTOR ( 1 downto 0 );
begin
di_IBUF_0 : X_BUF_PP
generic map(
PATHPULSE => 605 ps
)
port map (
I => di,
O => di_INBUF
);
do_OBUF_1 : X_TRI_PP
generic map(
PATHPULSE => 605 ps
)
port map (
I => do_O,
CTL => do_ENABLE,
O => do
);
do_ENABLEINV : X_INV
port map (
I => do_GTS_OR_T,
O => do_ENABLE
);
do_GTS_OR_T_2 : X_BUF_PP
generic map(
PATHPULSE => 605 ps
)
port map (
I => GTS,
O => do_GTS_OR_T
);
clki_IBUFG_3 : X_BUF_PP
generic map(
PATHPULSE => 605 ps
)
port map (
I => clki,
O => clki_INBUF
);
clko_OBUF_4 : X_TRI_PP
generic map(
PATHPULSE => 605 ps
)
port map (
I => clko_O,
CTL => clko_ENABLE,
O => clko
);
clko_ENABLEINV : X_INV
port map (
I => clko_GTS_OR_T,
O => clko_ENABLE
);
clko_GTS_OR_T_5 : X_BUF_PP
generic map(
PATHPULSE => 605 ps
)
port map (
I => GTS,
O => clko_GTS_OR_T
);
res_BUFGP_IBUFG_6 : X_BUF_PP
generic map(
PATHPULSE => 605 ps
)
port map (
I => res,
O => res_INBUF
);
U1 : X_BUFGMUX
port map (
I0 => clki_IBUFG,
I1 => GND,
S => U1_S_INVNOT,
O => clko_OBUF,
GSR => GSR
);
U1_SINV : X_INV
port map (
I => GLOBAL_LOGIC1,
O => U1_S_INVNOT
);
res_BUFGP_BUFG : X_BUFGMUX
port map (
I0 => res_BUFGP_IBUFG,
I1 => GND,
S => res_BUFGP_BUFG_S_INVNOT,
O => res_BUFGP,
GSR => GSR
);
res_BUFGP_BUFG_SINV : X_INV
port map (
I => GLOBAL_LOGIC1_0,
O => res_BUFGP_BUFG_S_INVNOT
);
nextstate_1_DXMUX_7 : X_BUF_PP
generic map(
PATHPULSE => 605 ps
)
port map (
I => Q_n0003(1),
O => nextstate_1_DXMUX
);
nextstate_1_XUSED : X_BUF_PP
generic map(
PATHPULSE => 605 ps
)
port map (
I => nextstate_1_F,
O => Q_n0003(1)
);
nextstate_1_DYMUX_8 : X_BUF_PP
generic map(
PATHPULSE => 605 ps
)
port map (
I => Q_n0003(0),
O => nextstate_1_DYMUX
);
nextstate_1_YUSED : X_BUF_PP
generic map(
PATHPULSE => 605 ps
)
port map (
I => nextstate_1_G,
O => Q_n0003(0)
);
nextstate_1_CLKINV_9 : X_BUF_PP
generic map(
PATHPULSE => 605 ps
)
port map (
I => res_BUFGP,
O => nextstate_1_CLKINV
);
state_1_DXMUX_10 : X_BUF_PP
generic map(
PATHPULSE => 605 ps
)
port map (
I => nextstate(1),
O => state_1_DXMUX
);
state_1_DYMUX_11 : X_BUF_PP
generic map(
PATHPULSE => 605 ps
)
port map (
I => nextstate(0),
O => state_1_DYMUX
);
state_1_SRFFMUX_12 : X_BUF_PP
generic map(
PATHPULSE => 605 ps
)
port map (
I => res_BUFGP,
O => state_1_SRFFMUX
);
state_1_CLKINV_13 : X_BUF_PP
generic map(
PATHPULSE => 605 ps
)
port map (
I => clko_OBUF,
O => state_1_CLKINV
);
do_OBUF_YUSED : X_BUF_PP
generic map(
PATHPULSE => 605 ps
)
port map (
I => do_OBUF_G,
O => do_OBUF
);
Q_n0003_0_1 : X_LUT4
generic map(
INIT => X"5544"
)
port map (
ADR0 => di_IBUF,
ADR1 => state(1),
ADR2 => VCC,
ADR3 => state(0),
O => nextstate_1_G
);
nextstate_0 : X_LATCHE
generic map(
INIT => '1'
)
port map (
I => nextstate_1_DYMUX,
GE => VCC,
CLK => NlwInverterSignal_nextstate_0_CLK,
SET => nextstate_1_FFY_SET,
RST => GND,
O => nextstate(0)
);
nextstate_1_FFY_SETOR : X_BUF_PP
generic map(
PATHPULSE => 605 ps
)
port map (
I => GSR,
O => nextstate_1_FFY_SET
);
Q_n0003_1_1 : X_LUT4
generic map(
INIT => X"AA88"
)
port map (
ADR0 => di_IBUF,
ADR1 => state(1),
ADR2 => VCC,
ADR3 => state(0),
O => nextstate_1_F
);
nextstate_1 : X_LATCHE
generic map(
INIT => '0'
)
port map (
I => nextstate_1_DXMUX,
GE => VCC,
CLK => NlwInverterSignal_nextstate_1_CLK,
SET => GND,
RST => nextstate_1_FFX_RST,
O => nextstate(1)
);
nextstate_1_FFX_RSTOR : X_BUF_PP
generic map(
PATHPULSE => 605 ps
)
port map (
I => GSR,
O => nextstate_1_FFX_RST
);
state_0 : X_FF
generic map(
INIT => '1'
)
port map (
I => state_1_DYMUX,
CE => VCC,
CLK => state_1_CLKINV,
SET => state_1_FFY_SET,
RST => GND,
O => state(0)
);
state_1_FFY_SETOR : X_OR2
port map (
I0 => GSR,
I1 => state_1_SRFFMUX,
O => state_1_FFY_SET
);
Q_n00061 : X_LUT4
generic map(
INIT => X"4444"
)
port map (
ADR0 => res_BUFGP,
ADR1 => state(1),
ADR2 => VCC,
ADR3 => VCC,
O => do_OBUF_G
);
state_1 : X_FF
generic map(
INIT => '0'
)
port map (
I => state_1_DXMUX,
CE => VCC,
CLK => state_1_CLKINV,
SET => GND,
RST => state_1_FFX_RST,
O => state(1)
);
state_1_FFX_RSTOR : X_OR2
port map (
I0 => state_1_SRFFMUX,
I1 => GSR,
O => state_1_FFX_RST
);
PWR_VCC_0_LOGICAL_ONE : X_ONE
port map (
O => GLOBAL_LOGIC1
);
PWR_VCC_1_LOGICAL_ONE : X_ONE
port map (
O => GLOBAL_LOGIC1_0
);
di_IFF_IMUX : X_BUF_PP
generic map(
PATHPULSE => 605 ps
)
port map (
I => di_INBUF,
O => di_IBUF
);
do_OUTPUT_OFF_OMUX : X_BUF_PP
generic map(
PATHPULSE => 605 ps
)
port map (
I => do_OBUF,
O => do_O
);
clki_IFF_IMUX : X_BUF_PP
generic map(
PATHPULSE => 605 ps
)
port map (
I => clki_INBUF,
O => clki_IBUFG
);
clko_OUTPUT_OFF_OMUX : X_BUF_PP
generic map(
PATHPULSE => 605 ps
)
port map (
I => clko_OBUF,
O => clko_O
);
res_IFF_IMUX : X_BUF_PP
generic map(
PATHPULSE => 605 ps
)
port map (
I => res_INBUF,
O => res_BUFGP_IBUFG
);
NlwBlock_main_top_GND : X_ZERO
port map (
O => GND
);
NlwBlock_main_top_VCC : X_ONE
port map (
O => VCC
);
NlwInverterBlock_nextstate_0_CLK : X_INV
port map (
I => nextstate_1_CLKINV,
O => NlwInverterSignal_nextstate_0_CLK
);
NlwInverterBlock_nextstate_1_CLK : X_INV
port map (
I => nextstate_1_CLKINV,
O => NlwInverterSignal_nextstate_1_CLK
);
NlwBlockROC : X_ROC
generic map (ROC_WIDTH => 100 ns)
port map (O => GSR);
NlwBlockTOC : X_TOC
port map (O => GTS);
end Structure;
@@ -0,0 +1 @@
work main_top.vhdl
@@ -0,0 +1 @@
work main_top.vhdl
+1
View File
@@ -0,0 +1 @@
work
+1
View File
@@ -0,0 +1 @@
vhdl work vconfig.vhdl
+13
View File
@@ -0,0 +1,13 @@
## NOTE: Do not edit this file.
## Autogenerated by ProjNav (creatfdo.tcl) on Wed Jun 02 00:12:48 Westeuropäische Sommerzeit 2004
##
vlib work
vcom -93 -explicit vconfig.vhdl
vcom -93 -explicit eval2clk_tb.vhd
vsim -t 1ps -lib work eval2clk_tb
do eval2clk_tb.udo
view wave
add wave *
view structure
view signals
run 2000ns
+15
View File
@@ -0,0 +1,15 @@
## NOTE: Do not edit this file.
## Auto generated by Project Navigator for VHDL Post-PAR Simulation
##
vlib work
## Compile Post-PAR Model for Module eval2clk
vcom -87 -explicit eval2clk_timesim.vhd
vcom -93 -explicit eval2clk_tb.vhd
vsim -t 1ps -sdfmax /UUT=eval2clk_timesim.sdf -lib work eval2clk_tb
do eval2clk_tb.udo
view wave
add wave *
view structure
view signals
run 2000ns
## End
+4
View File
@@ -0,0 +1,4 @@
-- ProjNav VHDL simulation template: eval2clk_tb.udo
-- You may edit this file after the line that starts with
-- '-- START' to customize your simulation
-- START user-defined simulation commands
+67
View File
@@ -0,0 +1,67 @@
-- VHDL Test Bench Created from source file vconfig.vhd -- 20:20:01 05/01/2004
--
-- Notes:
-- This testbench has been automatically generated using types std_logic and
-- std_logic_vector for the ports of the unit under test. Xilinx recommends
-- that these types always be used for the top-level I/O of a design in order
-- to guarantee that the testbench will bind correctly to the post-implementation
-- simulation model.
--
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
USE ieee.numeric_std.ALL;
ENTITY eval2clk_tb IS
END eval2clk_tb;
ARCHITECTURE behavior OF eval2clk_tb IS
COMPONENT eval2clk
PORT(
RES : IN std_logic;
CLK : IN std_logic;
SCLK : INOUT std_logic;
dummy_out : INOUT std_logic
);
END COMPONENT;
SIGNAL RES : std_logic := '1';
SIGNAL CLK : std_logic := '0';
SIGNAL SCLK : std_logic;
SIGNAL dummy_out : std_logic := '0';
constant ClockPeriod : Time := 16.667 ns;
BEGIN
uut: eval2clk PORT MAP(
RES => RES,
CLK => CLK,
SCLK => SCLK,
dummy_out => dummy_out
);
busclock: process
begin
CLK <= '1';
loop
wait for (ClockPeriod / 2);
CLK <= not CLK;
end loop;
end process;
-- *** Test Bench - User Defined Section ***
tb : PROCESS
BEGIN
wait for 20*ClockPeriod;
RES <= '0';
wait; -- will wait forever
END PROCESS;
-- *** End Test Bench - User Defined Section ***
END;
File diff suppressed because it is too large Load Diff
+1
View File
@@ -0,0 +1 @@
work vconfig.vhdl
+62
View File
@@ -0,0 +1,62 @@
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
-- Uncomment the following lines to use the declarations that are
-- provided for instantiating Xilinx primitive components.
--library UNISIM;
--use UNISIM.VComponents.all;
entity eval2clk is
Port ( RES : in std_logic;
CLK : in std_logic;
SCLK : inout std_logic;
dummy_out : inout std_logic);
end eval2clk;
architecture Behavioral of eval2clk is
signal count, scount : integer range 0 to 63;
signal SCLK1 : std_logic;
begin
process (RES, SCLK1)
begin
if (RES = '1') then
dummy_out <= '1';
scount <= 2;
elsif SCLK1='1' and SCLK1'event then
if (scount = 0) then
scount <= 2;
dummy_out <= not dummy_out;
else
scount <= scount - 1;
end if;
end if;
end process;
process (RES, CLK)
begin
if (RES = '1') then
SCLK1 <= '1';
COUNT <= 4;
elsif CLK='1' and CLK'event then
if (COUNT = 0) then
COUNT <= 4;
SCLK1 <= not SCLK1;
else
COUNT <= COUNT - 1;
end if;
end if;
end process;
SCLK <= RES;
end Behavioral;
+67
View File
@@ -0,0 +1,67 @@
-- VHDL Test Bench Created from source file vconfig.vhd -- 20:20:01 05/01/2004
--
-- Notes:
-- This testbench has been automatically generated using types std_logic and
-- std_logic_vector for the ports of the unit under test. Xilinx recommends
-- that these types always be used for the top-level I/O of a design in order
-- to guarantee that the testbench will bind correctly to the post-implementation
-- simulation model.
--
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
USE ieee.numeric_std.ALL;
ENTITY eval2clk_tb IS
END eval2clk_tb;
ARCHITECTURE behavior OF eval2clk_tb IS
COMPONENT eval2clk
PORT(
RES : IN std_logic;
CLK : IN std_logic;
SCLK : INOUT std_logic;
dummy_out : OUT std_logic
);
END COMPONENT;
SIGNAL RES : std_logic := '1';
SIGNAL CLK : std_logic := '0';
SIGNAL SCLK : std_logic;
SIGNAL dummy_out : std_logic := '0';
constant ClockPeriod : Time := 16.667 ns;
BEGIN
uut: eval2clk PORT MAP(
RES => RES,
CLK => CLK,
SCLK => SCLK,
dummy_out => dummy_out
);
busclock: process
begin
CLK <= '1';
loop
wait for (ClockPeriod / 2);
CLK <= not CLK;
end loop;
end process;
-- *** Test Bench - User Defined Section ***
tb : PROCESS
BEGIN
wait for 20*ClockPeriod;
RES <= '0';
wait; -- will wait forever
END PROCESS;
-- *** End Test Bench - User Defined Section ***
END;
+34
View File
@@ -0,0 +1,34 @@
-w
-g DebugBitstream:No
-g Binary:no
-g CRC:Enable
-g ConfigRate:4
-g CclkPin:PullUp
-g M0Pin:PullUp
-g M1Pin:PullUp
-g M2Pin:PullUp
-g ProgPin:PullUp
-g DonePin:PullUp
-g InitPin:Pullup
-g CsPin:Pullup
-g DinPin:Pullup
-g BusyPin:Pullup
-g RdWrPin:Pullup
-g TckPin:PullUp
-g TdiPin:PullUp
-g TdoPin:PullUp
-g TmsPin:PullUp
-g UnusedPin:PullDown
-g UserID:0xFFFFFFFF
-g DCMShutDown:Disable
-g DCIUpdateMode:AsRequired
-g StartUpClk:JtagClk
-g DONE_cycle:4
-g GTS_cycle:5
-g GWE_cycle:6
-g LCK_cycle:NoWait
-g Security:None
-g DonePipe:No
-g DriveDone:No
-g Encrypt:No
Binary file not shown.
+1
View File
@@ -0,0 +1 @@
work
+2
View File
@@ -0,0 +1,2 @@
vhdl work "E:/work/XilinxISE/Common/oneshot.vhd"
vhdl work "hpi_reg_top.vhd"
+34
View File
@@ -0,0 +1,34 @@
-w
-g DebugBitstream:No
-g Binary:no
-g CRC:Enable
-g ConfigRate:4
-g CclkPin:PullUp
-g M0Pin:PullUp
-g M1Pin:PullUp
-g M2Pin:PullUp
-g ProgPin:PullUp
-g DonePin:PullUp
-g InitPin:Pullup
-g CsPin:Pullup
-g DinPin:Pullup
-g BusyPin:Pullup
-g RdWrPin:Pullup
-g TckPin:PullUp
-g TdiPin:PullUp
-g TdoPin:PullUp
-g TmsPin:PullUp
-g UnusedPin:PullDown
-g UserID:0xFFFFFFFF
-g DCMShutDown:Disable
-g DCIUpdateMode:AsRequired
-g StartUpClk:JtagClk
-g DONE_cycle:4
-g GTS_cycle:5
-g GWE_cycle:6
-g LCK_cycle:NoWait
-g Security:None
-g DonePipe:No
-g DriveDone:No
-g Encrypt:No

Some files were not shown because too many files have changed in this diff Show More