📄 pingp.tdf
字号:
SUBDESIGN pingp
(
--data source inputs
wr_data[7..0] : INPUT; --from sample data
wr_addr[14..0] : INPUT;
wr_clk : INPUT; --from sample clock(pclk)
dfv,ndfv : INPUT;
rd_addr[14..0] : INPUT; --data and address pins
--rams interface
rama_wr, ramb_wr : OUTPUT;
rama_data[7..0] : BIDIR;
ramb_data[7..0] : BIDIR;
rama_addr[14..0] : OUTPUT;
ramb_addr[14..0] : OUTPUT;
rama_oe, ramb_oe : OUTPUT;
rd_data[7..0] : OUTPUT;
)
VARIABLE
data_outa[7..0] : TRI;
data_outb[7..0] : TRI;
oea : NODE;
oeb : NODE;
BEGIN
oea = dfv; -- if dfv is high, rama write, ramb read
data_outa[].oe = oea;
data_outa[].in = wr_data[];
rama_data[] = data_outa[].out;
oeb = ndfv;
data_outb[].oe = oeb;
data_outb[].in = wr_data[];
ramb_data[] = data_outb[].out;
IF(dfv) THEN
rama_addr[] = wr_addr[];
rama_wr = !wr_clk;
ramb_addr[] = rd_addr[];
ramb_wr = VCC;
rd_data[] = ramb_data[];
ELSE
rama_addr[] = rd_addr[];
rama_wr = VCC;
ramb_addr[] = wr_addr[];
ramb_wr = !wr_clk;
rd_data[] = rama_data[];
END IF;
rama_oe = dfv;
ramb_oe = ndfv;
END;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -