EvgenyNik 0 June 3, 2008 Posted June 3, 2008 · Report post Alternativa, навскидку, это должно быть нечто такое: В данном случае это (при правильном назначении входов-выходов) конструкция для вывода внутренней шины наружу из системы. Я её использую вместо стандартных портов PIO NIOSa, т.к. получается быстрее и проще в плане программы. Соответственно и в обратную сторону можно развернуть. LIBRARY ieee; USE ieee.std_logic_1164.all; LIBRARY work; ENTITY BRIDGE IS port ( CLK : IN STD_LOGIC; CHIPSELECT : IN STD_LOGIC; WRITE : IN STD_LOGIC; READ : IN STD_LOGIC; ADDRESS : IN STD_LOGIC_VECTOR(15 downto 0); RDDATA : IN STD_LOGIC_VECTOR(31 downto 0); WRITEDATA : IN STD_LOGIC_VECTOR(31 downto 0); CLOCK : OUT STD_LOGIC; CS : OUT STD_LOGIC; WR : OUT STD_LOGIC; RD : OUT STD_LOGIC; ADDR : OUT STD_LOGIC_VECTOR(15 downto 0); READDATA : OUT STD_LOGIC_VECTOR(31 downto 0); WRDATA : OUT STD_LOGIC_VECTOR(31 downto 0) ); END BRIDGE; ARCHITECTURE bdf_type OF BRIDGE IS BEGIN CLOCK <= CLK; WRDATA <= WRITEDATA; READDATA <= RDDATA; CS <= CHIPSELECT; WR <= WRITE; RD <= READ; ADDR <= ADDRESS; END; Quote Share this post Link to post Share on other sites More sharing options...
Alternativa 0 June 3, 2008 Posted June 3, 2008 · Report post Евгений Николаев, спасибо. Я попробовала написать свой мастер. В SOPC я добавила еще, как все тут говорили, PIO. Я разместила мастера в памяти по адресам с 0x0 до 0xFFFF, а PIO - с 0x10000 до 0x10003. И получила ошибку ""pio.s1" (0x10000..0x10003) outside range (0x0..0xFFFF)". Если покомбинировать с адресами мастера и порта, то получаем ошибку выхода из диапазона или адреса модулей перекрывают друг друга. Можно ли где-то задать диапазон допустимых адресов, чтоб было не с 0 до FFFF, а шире? Quote Share this post Link to post Share on other sites More sharing options...