lvd wrote:Но, видимо, (подсознательно) хочется хвастаться.
Да и мне приятно позырить на прекрасную схемотехнику;-)
lvd wrote: У тебя в цыцлоне скоко блоков M4K имецо свободных щя?
jdigreze wrote:сам знаешь хде, товарисч Герой,
lvd wrote:У него есть замечательный выход - молчать в тряпочку. Но, видимо, (подсознательно) хочется хвастаться. Ну а раз так, то и критику получите)
KOE wrote:Все свободны, пока ничо не задействовал.
KOE wrote:lvd так проникся в глубины моего подсознания, что мне уже страшно с ним живьем общаться. Вдруг он как-то воздействует???
lvd wrote:РОМ (синхронный) лучше делать мегавизард плугином из меню, сразу указать файл иницилизации. А рам можно самому написать, например mem512b.v из сорцов НГС. квакус должен автоматом отмапить в блоки памяти.
lvd wrote:Дык, а ты думал.
KOE wrote:Я и на вхдле такое делол, квардуз массивы сам распихивает по блокам.
KOE wrote:От ить какой нигадяй лвд: водку не пьет, все контролирует, в подсознание залезает. ужоснах.
lvd wrote:А ты не ипанёшься ли 2 кило фонтрома массивами вбивать?
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
USE ieee.numeric_std.ALL;
ENTITY ram IS
GENERIC
(
ADDRESS_WIDTH : integer := 12;
DATA_WIDTH : integer := 16
);
PORT
(
clock : IN std_logic;
data : IN std_logic_vector(DATA_WIDTH - 1 DOWNTO 0);
write_address : IN std_logic_vector(ADDRESS_WIDTH - 1 DOWNTO 0);
read_address : IN std_logic_vector(ADDRESS_WIDTH - 1 DOWNTO 0);
we : IN std_logic;
q : OUT std_logic_vector(DATA_WIDTH - 1 DOWNTO 0)
);
END ram;
ARCHITECTURE rtl OF ram IS
TYPE RAM IS ARRAY(0 TO 2 ** ADDRESS_WIDTH - 1) OF std_logic_vector(DATA_WIDTH - 1 DOWNTO 0);
SIGNAL ram_block : RAM;
BEGIN
PROCESS (clock)
BEGIN
IF (clock'event AND clock = '1') THEN
IF (we = '0') THEN
ram_block(to_integer(unsigned(write_address))) <= data;
END IF;
q <= ram_block(to_integer(unsigned(read_address)));
END IF;
END PROCESS;
END rtl;
KOE wrote:Нет, не ипанусь.
module mem512b(
rdaddr, // read address
wraddr, // write address
datain, // write data
dataout, // read data
we, // write enable
clk
);
input [8:0] rdaddr;
input [8:0] wraddr;
input [7:0] datain;
output [7:0] dataout; reg [7:0] dataout;
input we;
input clk;
reg [7:0] mem[0:511]; // memory block
always @(posedge clk)
begin
dataout <= mem[rdaddr]; // reading data
if( we==1 ) // writing data
begin
mem[wraddr] <= datain;
end
end
endmodule
lvd wrote:Я про фонт-ROM говорил. А раму я и сам писать умею
KOE wrote:Зачем мне фонт-ром и что это такое? Я делаю раму так, как мне удобно и закачиваю в нее фонт армом, из файла на сдкарте, также, как и ZX-ромы.
Users browsing this forum: No registered users and 1 guest