Rewrote SPI PHY -> Flash ROM works now
This commit is contained in:
parent
b48571db24
commit
c649c073ce
@ -42,6 +42,7 @@ architecture RTL of bench_flashrom_wb is
|
||||
s <= '0';
|
||||
waitclk;
|
||||
end procedure strobe;
|
||||
signal slave_rx_data : std_logic_vector(7 downto 0);
|
||||
begin
|
||||
DataFlash_inst : entity work.DataFlash
|
||||
generic map(
|
||||
@ -101,6 +102,7 @@ begin
|
||||
wb_in.STB <= '1';
|
||||
wb_in.WE <= '0';
|
||||
wait until wb_out.ACK = '1';
|
||||
waitclk;
|
||||
wb_in.CYC <= '0';
|
||||
wb_in.STB <= '0';
|
||||
waitnclk(DEL);
|
||||
@ -113,7 +115,7 @@ begin
|
||||
waitclk;
|
||||
wb_in.CYC <= '0';
|
||||
wb_in.STB <= '0';
|
||||
waitnclk(22); --waitnclk(22); -- Time after read to write needs to be longer
|
||||
waitnclk(DEL); --waitnclk(22); -- Time after read to write needs to be longer (was bug)
|
||||
|
||||
wb_in.ADR <= std_logic_vector(to_unsigned(4, 32));
|
||||
wb_in.DAT <= x"deadbeef";
|
||||
@ -220,4 +222,18 @@ begin
|
||||
wait;
|
||||
end process test;
|
||||
|
||||
slave_rx : process is
|
||||
variable data : std_logic_vector(7 downto 0);
|
||||
begin
|
||||
wait until spi_cs_n = '0';
|
||||
|
||||
while true loop
|
||||
for i in 7 downto 0 loop
|
||||
wait until spi_sck = '1';
|
||||
data(i) := spi_si;
|
||||
end loop;
|
||||
slave_rx_data <= data;
|
||||
end loop;
|
||||
end process slave_rx;
|
||||
|
||||
end architecture RTL;
|
||||
|
@ -54,33 +54,37 @@ architecture RTL of flashrom_controller is
|
||||
|
||||
signal words_sent : integer range 0 to 511;
|
||||
signal spif_data_out_dummy_bits : integer range 0 to max_dummy_bits;
|
||||
signal spif_transmission_active : std_logic;
|
||||
signal command_is_latched : boolean;
|
||||
begin
|
||||
spi_wp_n <= '1';
|
||||
|
||||
flashrom_spi_inst : entity work.flashrom_spi
|
||||
fancy_spi_master_inst : entity work.fancy_spi_master
|
||||
generic map(
|
||||
clk_divider => 4,
|
||||
max_word_length => spif_max_word_length,
|
||||
max_dummy_bits => max_dummy_bits)
|
||||
TX_WIDTH_MAX => spif_max_word_length,
|
||||
RX_WIDTH_MAX => spif_max_word_length,
|
||||
RX_IGNORE_MAX => max_dummy_bits + 400,
|
||||
SPI_CPOL => '0',
|
||||
SPI_CPHA => '0',
|
||||
CKDIV => 8,
|
||||
CS_INACTIVE_DELAY => 400
|
||||
)
|
||||
port map(
|
||||
clk => clk,
|
||||
rst => rst,
|
||||
clr => clr,
|
||||
spi_si => spi_si,
|
||||
spi_so => spi_so,
|
||||
spi_sck => spi_sck,
|
||||
tx_width => spif_data_in_length,
|
||||
tx_enable => spif_data_in_valid,
|
||||
tx_data => spif_data_in,
|
||||
tx_next => spif_data_next,
|
||||
rx_width => spif_data_out_length,
|
||||
rx_valid => spif_data_out_valid,
|
||||
rx_data => spif_data_out,
|
||||
rx_ignore => spif_data_out_dummy_bits,
|
||||
spi_clk => spi_sck,
|
||||
spi_cs_n => spi_cs_n,
|
||||
data_in_valid => spif_data_in_valid,
|
||||
data_in => spif_data_in,
|
||||
data_in_length => spif_data_in_length,
|
||||
data_next => spif_data_next,
|
||||
data_out => spif_data_out,
|
||||
data_out_valid => spif_data_out_valid,
|
||||
data_out_length => spif_data_out_length,
|
||||
data_out_dummy_bits => spif_data_out_dummy_bits,
|
||||
transmission_active => spif_transmission_active);
|
||||
spi_mosi => spi_si,
|
||||
spi_miso => spi_so
|
||||
);
|
||||
|
||||
flashrom_controller_p : process(clk, rst) is
|
||||
variable write_cnt : integer range 0 to bootup_delay;
|
||||
@ -190,7 +194,7 @@ begin
|
||||
delay_cnt := delay_cnt + 1;
|
||||
end if;
|
||||
when LOADPAGE =>
|
||||
run_command_single(32, 8, 40, 259, FLASHROM_COMMAND_CONT_ARRAY_READ & page);
|
||||
run_command_single(32, 8, 40, 258, FLASHROM_COMMAND_CONT_ARRAY_READ & page);
|
||||
if spif_data_next = '1' or command_is_latched then
|
||||
command_is_latched <= true;
|
||||
spif_data_in_length <= 8;
|
||||
@ -200,7 +204,7 @@ begin
|
||||
report "Load page done." severity note;
|
||||
end if;
|
||||
when WRITEPAGE =>
|
||||
run_command_single(32, 8, 34, 257, FLASHROM_COMMAND_WRITE_THROUGH_1 & page);
|
||||
run_command_single(32, 8, 40, 257, FLASHROM_COMMAND_WRITE_THROUGH_1 & page);
|
||||
if spif_data_next = '1' or command_is_latched then
|
||||
command_is_latched <= true;
|
||||
spif_data_in_length <= 8;
|
||||
|
@ -1,177 +0,0 @@
|
||||
library ieee;
|
||||
use ieee.std_logic_1164.all;
|
||||
use ieee.numeric_std.all;
|
||||
|
||||
entity flashrom_spi is
|
||||
generic(
|
||||
clk_divider : integer range 2 to 9999 := 2;
|
||||
max_word_length : integer := 32;
|
||||
max_dummy_bits : integer := 8;
|
||||
cs_inactive_cycles : integer := 10
|
||||
);
|
||||
port(
|
||||
clk : in std_logic;
|
||||
rst : in std_logic;
|
||||
clr : in std_logic;
|
||||
|
||||
-- SPI flash hardware signals
|
||||
spi_si : out std_logic; -- SPI serial in
|
||||
spi_so : in std_logic; -- SPI serial out
|
||||
spi_sck : out std_logic; -- SPI clock
|
||||
spi_cs_n : out std_logic; -- SPI chip select
|
||||
|
||||
-- Logic interface
|
||||
data_in_valid : in std_logic; -- Data to Flash ROM
|
||||
data_in : in std_logic_vector(max_word_length - 1 downto 0);
|
||||
data_in_length : in integer range 0 to max_word_length;
|
||||
data_next : out std_logic;
|
||||
data_out : out std_logic_vector(max_word_length - 1 downto 0);
|
||||
data_out_valid : out std_logic; -- Data from Flash ROM
|
||||
data_out_length : in integer range 0 to max_word_length;
|
||||
data_out_dummy_bits : in integer range 0 to max_dummy_bits;
|
||||
transmission_active : out std_logic
|
||||
);
|
||||
end entity flashrom_spi;
|
||||
|
||||
architecture RTL of flashrom_spi is
|
||||
type txstate_t is (IDLE, TX);
|
||||
signal state : txstate_t;
|
||||
signal ckDiv : integer range 0 to clk_divider - 2;
|
||||
signal shiftreg : std_logic_vector(max_word_length - 1 downto 0);
|
||||
signal bitCounter : integer range 0 to max_word_length - 1;
|
||||
signal bitCounterIn : integer range 0 to max_word_length + max_dummy_bits - 1; -- TODO: Actually this must count until the higher of the two
|
||||
signal data_in_length_i : integer range 0 to max_word_length;
|
||||
signal data_out_length_i : integer range 0 to max_word_length;
|
||||
signal delayCycle : std_logic;
|
||||
signal oneBitRead : std_logic;
|
||||
signal pseudoEdge : boolean;
|
||||
signal dummy_passed : boolean;
|
||||
signal prevent_retrig : boolean;
|
||||
signal cs_inactive_cnt : integer range 0 to cs_inactive_cycles;
|
||||
begin
|
||||
toSpi : process(clk, rst) is
|
||||
procedure default_state is
|
||||
begin
|
||||
data_next <= '0';
|
||||
data_out_valid <= '0';
|
||||
pseudoEdge <= false;
|
||||
cs_inactive_cnt <= 0;
|
||||
end procedure default_state;
|
||||
|
||||
procedure reset_state is
|
||||
begin
|
||||
state <= IDLE;
|
||||
spi_sck <= '0';
|
||||
shiftreg <= (others => '0');
|
||||
bitCounter <= 0;
|
||||
bitCounterIn <= 0;
|
||||
data_out <= (others => '0');
|
||||
delayCycle <= '0';
|
||||
oneBitRead <= '0';
|
||||
dummy_passed <= false;
|
||||
default_state;
|
||||
end procedure reset_state;
|
||||
begin
|
||||
if rst = '1' then
|
||||
reset_state;
|
||||
elsif rising_edge(clk) then
|
||||
default_state;
|
||||
if clr = '1' then
|
||||
reset_state;
|
||||
else
|
||||
case state is
|
||||
when IDLE =>
|
||||
cs_inactive_cnt <= cs_inactive_cnt;
|
||||
prevent_retrig <= false;
|
||||
delayCycle <= '0';
|
||||
spi_sck <= '0';
|
||||
oneBitRead <= '0';
|
||||
dummy_passed <= false;
|
||||
data_out <= (others => '0');
|
||||
if ckDiv = clk_divider - 2 then -- ensures cs inactive time between transactions
|
||||
if cs_inactive_cnt = cs_inactive_cycles then
|
||||
if data_in_valid = '1' then
|
||||
ckDiv <= 0;
|
||||
state <= TX;
|
||||
bitCounter <= 0;
|
||||
bitCounterIn <= 0;
|
||||
data_in_length_i <= 0;
|
||||
pseudoEdge <= true;
|
||||
end if;
|
||||
else
|
||||
ckDiv <= 0;
|
||||
cs_inactive_cnt <= cs_inactive_cnt + 1;
|
||||
end if;
|
||||
else
|
||||
ckDiv <= ckDiv + 1;
|
||||
end if;
|
||||
when TX =>
|
||||
if data_in_valid = '0' then
|
||||
prevent_retrig <= true;
|
||||
end if;
|
||||
if ckDiv = clk_divider - 2 or pseudoEdge then
|
||||
ckDiv <= 0;
|
||||
if not pseudoEdge then
|
||||
spi_sck <= not spi_sck;
|
||||
end if;
|
||||
if spi_sck = '0' and bitCounter = data_in_length_i and data_in_valid = '0' then
|
||||
-- Prevent last clock cycle (make it a "passive" one)
|
||||
spi_sck <= '0';
|
||||
pseudoEdge <= true;
|
||||
end if;
|
||||
if spi_sck = '1' or pseudoEdge then -- falling edge -> provide data
|
||||
if bitCounter = data_in_length_i then
|
||||
bitCounter <= 0;
|
||||
if data_in_valid = '1' and not prevent_retrig then
|
||||
shiftreg <= data_in;
|
||||
data_in_length_i <= data_in_length - 1;
|
||||
data_out_length_i <= data_out_length - 1;
|
||||
data_next <= '1';
|
||||
else
|
||||
delayCycle <= '1';
|
||||
pseudoEdge <= true;
|
||||
end if;
|
||||
else
|
||||
bitCounter <= bitCounter + 1;
|
||||
shiftreg <= shiftreg(shiftreg'high - 1 downto 0) & '0';
|
||||
end if;
|
||||
--else -- spi_sck = '1' (falling edge)
|
||||
data_out <= data_out(data_out'high - 1 downto 0) & spi_so;
|
||||
|
||||
if bitCounterIn = 0 then
|
||||
if dummy_passed then
|
||||
data_out_valid <= '1';
|
||||
end if;
|
||||
end if;
|
||||
if not dummy_passed then
|
||||
if bitCounterIn = data_out_dummy_bits then
|
||||
dummy_passed <= true;
|
||||
bitCounterIn <= 1;
|
||||
else
|
||||
bitCounterIn <= bitCounterIn + 1;
|
||||
end if;
|
||||
else
|
||||
if bitCounterIn = data_out_length_i then
|
||||
bitCounterIn <= 0;
|
||||
else
|
||||
bitCounterIn <= bitCounterIn + 1;
|
||||
end if;
|
||||
if delayCycle = '1' then
|
||||
spi_sck <= '0';
|
||||
state <= IDLE;
|
||||
ckDiv <= 0;
|
||||
end if;
|
||||
end if;
|
||||
end if;
|
||||
else
|
||||
ckDiv <= ckDiv + 1;
|
||||
end if;
|
||||
end case;
|
||||
end if;
|
||||
end if;
|
||||
end process toSpi;
|
||||
spi_si <= shiftreg(shiftreg'high);
|
||||
spi_cs_n <= '0' when state = TX else '1';
|
||||
|
||||
transmission_active <= '1' when state = TX else '0';
|
||||
end architecture RTL;
|
@ -1,141 +0,0 @@
|
||||
library ieee;
|
||||
use ieee.std_logic_1164.all;
|
||||
use ieee.numeric_std.all;
|
||||
|
||||
entity flashrom_spi is
|
||||
generic(
|
||||
clk_divider : integer range 2 to 9999 := 2;
|
||||
max_word_length : integer := 32;
|
||||
max_dummy_bits : integer := 8
|
||||
);
|
||||
port(
|
||||
clk : in std_logic;
|
||||
rst : in std_logic;
|
||||
clr : in std_logic;
|
||||
|
||||
-- SPI flash hardware signals
|
||||
spi_si : out std_logic; -- SPI serial in
|
||||
spi_so : in std_logic; -- SPI serial out
|
||||
spi_sck : out std_logic; -- Create clock using PLL, then supply to chip and this module
|
||||
spi_cs_n : out std_logic; -- SPI chip select
|
||||
|
||||
-- Logic interface
|
||||
data_in_valid : in std_logic;
|
||||
data_in : in std_logic_vector(max_word_length - 1 downto 0);
|
||||
data_in_length : in integer range 0 to max_word_length;
|
||||
data_next : out std_logic;
|
||||
data_out : out std_logic_vector(max_word_length - 1 downto 0);
|
||||
data_out_valid : out std_logic;
|
||||
data_out_length : in integer range 0 to max_word_length;
|
||||
data_out_dummy_bits : in integer range 0 to max_dummy_bits;
|
||||
transmission_active : out std_logic
|
||||
);
|
||||
end entity flashrom_spi;
|
||||
|
||||
architecture RTL of flashrom_spi is
|
||||
type txstate_t is (IDLE, TX);
|
||||
signal state : txstate_t;
|
||||
signal ckDiv : integer range 0 to clk_divider - 2;
|
||||
signal shiftreg : std_logic_vector(max_word_length - 1 downto 0);
|
||||
signal bitCounter : integer range 0 to max_word_length - 1;
|
||||
signal bitCounterIn : integer range 0 to max_word_length + max_dummy_bits - 1;
|
||||
signal data_in_length_i : integer range 0 to max_word_length;
|
||||
signal data_out_length_i : integer range 0 to max_word_length;
|
||||
signal delayCycle : std_logic;
|
||||
signal oneBitRead : std_logic;
|
||||
signal dummy_passed : boolean;
|
||||
begin
|
||||
toSpi : process(clk, rst) is
|
||||
procedure default_state is
|
||||
begin
|
||||
data_next <= '0';
|
||||
data_out_valid <= '0';
|
||||
end procedure default_state;
|
||||
|
||||
procedure reset_state is
|
||||
begin
|
||||
state <= IDLE;
|
||||
spi_sck <= '0';
|
||||
shiftreg <= (others => '0');
|
||||
bitCounter <= 0;
|
||||
bitCounterIn <= 0;
|
||||
data_out <= (others => '0');
|
||||
delayCycle <= '0';
|
||||
oneBitRead <= '0';
|
||||
dummy_passed <= false;
|
||||
default_state;
|
||||
end procedure reset_state;
|
||||
begin
|
||||
if rst = '1' then
|
||||
reset_state;
|
||||
elsif rising_edge(clk) then
|
||||
default_state;
|
||||
if clr = '1' then
|
||||
reset_state;
|
||||
else
|
||||
case state is
|
||||
when IDLE =>
|
||||
delayCycle <= '0';
|
||||
spi_sck <= '0';
|
||||
oneBitRead <= '0';
|
||||
dummy_passed <= false;
|
||||
data_out <= (others => '0');
|
||||
if data_in_valid = '1' then
|
||||
state <= TX;
|
||||
bitCounter <= 0;
|
||||
bitCounterIn <= 0;
|
||||
data_in_length_i <= 0;
|
||||
end if;
|
||||
when TX =>
|
||||
if ckDiv = clk_divider - 2 then
|
||||
spi_sck <= not spi_sck;
|
||||
if spi_sck = '0' then -- rising edge
|
||||
if bitCounter = data_in_length_i then
|
||||
bitCounter <= 0;
|
||||
if data_in_valid = '1' then
|
||||
shiftreg <= data_in;
|
||||
data_in_length_i <= data_in_length - 1;
|
||||
data_out_length_i <= data_out_length - 1;
|
||||
data_next <= '1';
|
||||
else
|
||||
delayCycle <= '1';
|
||||
end if;
|
||||
else
|
||||
bitCounter <= bitCounter + 1;
|
||||
shiftreg <= shiftreg(shiftreg'high - 1 downto 0) & '0';
|
||||
end if;
|
||||
else -- spi_sck = '1' (falling edge)
|
||||
data_out <= data_out(data_out'high - 1 downto 0) & spi_so;
|
||||
oneBitRead <= '1';
|
||||
if bitCounterIn = 0 then
|
||||
if dummy_passed then
|
||||
data_out_valid <= '1';
|
||||
end if;
|
||||
end if;
|
||||
if not dummy_passed and bitCounterIn = data_out_dummy_bits then
|
||||
dummy_passed <= true;
|
||||
bitCounterIn <= 1;
|
||||
else
|
||||
if bitCounterIn = data_out_length_i then
|
||||
bitCounterIn <= 0;
|
||||
else
|
||||
bitCounterIn <= bitCounterIn + 1;
|
||||
end if;
|
||||
if delayCycle = '1' then
|
||||
spi_sck <= '0';
|
||||
state <= IDLE;
|
||||
end if;
|
||||
end if;
|
||||
end if;
|
||||
else
|
||||
ckDiv <= ckDiv + 1;
|
||||
end if;
|
||||
end case;
|
||||
end if;
|
||||
end if;
|
||||
end process toSpi;
|
||||
spi_si <= shiftreg(shiftreg'high);
|
||||
spi_cs_n <= '0' when state = TX else '1';
|
||||
|
||||
transmission_active <= '1' when state = TX else '0';
|
||||
end architecture RTL;
|
@ -200,4 +200,7 @@ begin
|
||||
|
||||
cache_addr <= wb_in.ADR(7 downto 0) when (state = IDLE and cache_we = '0') else std_logic_vector(cache_control_addr);
|
||||
wb_out.DAT <= cache_dOut;
|
||||
|
||||
status_update_stb <= '0';
|
||||
|
||||
end architecture rtl;
|
||||
|
@ -315,6 +315,19 @@ set_global_assignment -name PARTITION_COLOR 16764057 -section_id Top
|
||||
|
||||
|
||||
set_instance_assignment -name IO_STANDARD "1.5 V" -to rst_hw
|
||||
set_global_assignment -name VHDL_INPUT_VERSION VHDL_2008
|
||||
set_global_assignment -name VHDL_SHOW_LMF_MAPPING_MESSAGES OFF
|
||||
set_location_assignment PIN_U10 -to flash_cs_n
|
||||
set_location_assignment PIN_T9 -to flash_reset_n
|
||||
set_location_assignment PIN_N16 -to flash_sck
|
||||
set_location_assignment PIN_M16 -to flash_si
|
||||
set_location_assignment PIN_M18 -to flash_so
|
||||
set_location_assignment PIN_N19 -to flash_wp_n
|
||||
set_instance_assignment -name PARTITION_HIERARCHY root_partition -to | -section_id Top
|
||||
set_global_assignment -name VHDL_FILE ../cores/generic/fancy_spi_master.vhd
|
||||
set_global_assignment -name VHDL_FILE "../cores/flashrom-wb/flashrom_wb.vhd"
|
||||
set_global_assignment -name VHDL_FILE "../cores/flashrom-wb/flashrom_pkg.vhd"
|
||||
set_global_assignment -name VHDL_FILE "../cores/flashrom-wb/flashrom_controller.vhd"
|
||||
set_global_assignment -name SDC_FILE "mor1kx-bemicrocv.out.sdc"
|
||||
set_global_assignment -name VERILOG_FILE "../ip/mor1kx-mor1kx_v4/rtl/verilog/mor1kx_wb_mux_espresso.v" -library mor1kx
|
||||
set_global_assignment -name VERILOG_FILE "../ip/mor1kx-mor1kx_v4/rtl/verilog/mor1kx_wb_mux_cappuccino.v" -library mor1kx
|
||||
@ -368,4 +381,3 @@ set_global_assignment -name VHDL_FILE ../design/top.vhd
|
||||
set_global_assignment -name VHDL_FILE ../ip/intercon/rtl/wishbone_package.vhd -library ip
|
||||
set_global_assignment -name VHDL_FILE ../ip/intercon/rtl/crossbar_v3.vhd -library ip
|
||||
set_global_assignment -name QIP_FILE ../ip/altera/ddr3.qip
|
||||
set_instance_assignment -name PARTITION_HIERARCHY root_partition -to | -section_id Top
|
Binary file not shown.
@ -69,8 +69,44 @@ add wave -noupdate -expand -group flashrom-ctrlr /bench_flashrom_wb/flashrom_wb_
|
||||
add wave -noupdate -expand -group flashrom-ctrlr /bench_flashrom_wb/flashrom_wb_inst/flashrom_controller_inst/max_dummy_bits
|
||||
add wave -noupdate -expand -group flashrom-ctrlr /bench_flashrom_wb/flashrom_wb_inst/flashrom_controller_inst/bootup_delay
|
||||
add wave -noupdate -expand -group flashrom-ctrlr /bench_flashrom_wb/flashrom_wb_inst/flashrom_controller_inst/status_reg_poll_delay
|
||||
add wave -noupdate -expand -group phy /bench_flashrom_wb/flashrom_wb_inst/flashrom_controller_inst/fancy_spi_master_inst/TX_WIDTH_MAX
|
||||
add wave -noupdate -expand -group phy /bench_flashrom_wb/flashrom_wb_inst/flashrom_controller_inst/fancy_spi_master_inst/RX_WIDTH_MAX
|
||||
add wave -noupdate -expand -group phy /bench_flashrom_wb/flashrom_wb_inst/flashrom_controller_inst/fancy_spi_master_inst/RX_IGNORE_MAX
|
||||
add wave -noupdate -expand -group phy /bench_flashrom_wb/flashrom_wb_inst/flashrom_controller_inst/fancy_spi_master_inst/SPI_CPOL
|
||||
add wave -noupdate -expand -group phy /bench_flashrom_wb/flashrom_wb_inst/flashrom_controller_inst/fancy_spi_master_inst/SPI_CPHA
|
||||
add wave -noupdate -expand -group phy /bench_flashrom_wb/flashrom_wb_inst/flashrom_controller_inst/fancy_spi_master_inst/CKDIV
|
||||
add wave -noupdate -expand -group phy /bench_flashrom_wb/flashrom_wb_inst/flashrom_controller_inst/fancy_spi_master_inst/CS_INACTIVE_DELAY
|
||||
add wave -noupdate -expand -group phy /bench_flashrom_wb/flashrom_wb_inst/flashrom_controller_inst/fancy_spi_master_inst/clk
|
||||
add wave -noupdate -expand -group phy /bench_flashrom_wb/flashrom_wb_inst/flashrom_controller_inst/fancy_spi_master_inst/rst
|
||||
add wave -noupdate -expand -group phy /bench_flashrom_wb/flashrom_wb_inst/flashrom_controller_inst/fancy_spi_master_inst/clr
|
||||
add wave -noupdate -expand -group phy /bench_flashrom_wb/flashrom_wb_inst/flashrom_controller_inst/fancy_spi_master_inst/tx_width
|
||||
add wave -noupdate -expand -group phy /bench_flashrom_wb/flashrom_wb_inst/flashrom_controller_inst/fancy_spi_master_inst/tx_enable
|
||||
add wave -noupdate -expand -group phy /bench_flashrom_wb/flashrom_wb_inst/flashrom_controller_inst/fancy_spi_master_inst/tx_data
|
||||
add wave -noupdate -expand -group phy /bench_flashrom_wb/flashrom_wb_inst/flashrom_controller_inst/fancy_spi_master_inst/tx_next
|
||||
add wave -noupdate -expand -group phy /bench_flashrom_wb/flashrom_wb_inst/flashrom_controller_inst/fancy_spi_master_inst/rx_width
|
||||
add wave -noupdate -expand -group phy /bench_flashrom_wb/flashrom_wb_inst/flashrom_controller_inst/fancy_spi_master_inst/rx_valid
|
||||
add wave -noupdate -expand -group phy /bench_flashrom_wb/flashrom_wb_inst/flashrom_controller_inst/fancy_spi_master_inst/rx_data
|
||||
add wave -noupdate -expand -group phy /bench_flashrom_wb/flashrom_wb_inst/flashrom_controller_inst/fancy_spi_master_inst/rx_ignore
|
||||
add wave -noupdate -expand -group phy /bench_flashrom_wb/flashrom_wb_inst/flashrom_controller_inst/fancy_spi_master_inst/spi_clk
|
||||
add wave -noupdate -expand -group phy /bench_flashrom_wb/flashrom_wb_inst/flashrom_controller_inst/fancy_spi_master_inst/spi_cs_n
|
||||
add wave -noupdate -expand -group phy /bench_flashrom_wb/flashrom_wb_inst/flashrom_controller_inst/fancy_spi_master_inst/spi_mosi
|
||||
add wave -noupdate -expand -group phy /bench_flashrom_wb/flashrom_wb_inst/flashrom_controller_inst/fancy_spi_master_inst/spi_miso
|
||||
add wave -noupdate -expand -group phy /bench_flashrom_wb/flashrom_wb_inst/flashrom_controller_inst/fancy_spi_master_inst/spi_clk_en
|
||||
add wave -noupdate -expand -group phy /bench_flashrom_wb/flashrom_wb_inst/flashrom_controller_inst/fancy_spi_master_inst/spi_clk_i
|
||||
add wave -noupdate -expand -group phy /bench_flashrom_wb/flashrom_wb_inst/flashrom_controller_inst/fancy_spi_master_inst/ckdiv_cnt
|
||||
add wave -noupdate -expand -group phy /bench_flashrom_wb/flashrom_wb_inst/flashrom_controller_inst/fancy_spi_master_inst/spi_clk_event
|
||||
add wave -noupdate -expand -group phy /bench_flashrom_wb/flashrom_wb_inst/flashrom_controller_inst/fancy_spi_master_inst/state
|
||||
add wave -noupdate -expand -group phy /bench_flashrom_wb/flashrom_wb_inst/flashrom_controller_inst/fancy_spi_master_inst/tx_width_i
|
||||
add wave -noupdate -expand -group phy /bench_flashrom_wb/flashrom_wb_inst/flashrom_controller_inst/fancy_spi_master_inst/shiftreg_out
|
||||
add wave -noupdate -expand -group phy /bench_flashrom_wb/flashrom_wb_inst/flashrom_controller_inst/fancy_spi_master_inst/shiftreg_in
|
||||
add wave -noupdate -expand -group phy /bench_flashrom_wb/flashrom_wb_inst/flashrom_controller_inst/fancy_spi_master_inst/bit_cnt_tx
|
||||
add wave -noupdate -expand -group phy /bench_flashrom_wb/flashrom_wb_inst/flashrom_controller_inst/fancy_spi_master_inst/bit_cnt_rx
|
||||
add wave -noupdate -expand -group phy /bench_flashrom_wb/flashrom_wb_inst/flashrom_controller_inst/fancy_spi_master_inst/rx_past_ignore
|
||||
add wave -noupdate -expand -group phy /bench_flashrom_wb/flashrom_wb_inst/flashrom_controller_inst/fancy_spi_master_inst/rx_width_i
|
||||
add wave -noupdate -expand -group phy /bench_flashrom_wb/flashrom_wb_inst/flashrom_controller_inst/fancy_spi_master_inst/active_cycles
|
||||
add wave -noupdate /bench_flashrom_wb/slave_rx_data
|
||||
TreeUpdate [SetDefaultTree]
|
||||
WaveRestoreCursors {{Cursor 1} {182209 ns} 0}
|
||||
WaveRestoreCursors {{Cursor 1} {39914 ns} 0}
|
||||
quietly wave cursor active 1
|
||||
configure wave -namecolwidth 173
|
||||
configure wave -valuecolwidth 100
|
||||
@ -86,4 +122,4 @@ configure wave -griddelta 40
|
||||
configure wave -timeline 0
|
||||
configure wave -timelineunits ns
|
||||
update
|
||||
WaveRestoreZoom {168208 ns} {199740 ns}
|
||||
WaveRestoreZoom {39740 ns} {41430 ns}
|
||||
|
Loading…
Reference in New Issue
Block a user