这 f
LASH
370i 家族 和
Warp2
15
附录 e. uselatch2
--这个 文件 显示 这 使用 的 这 triout 组件 至 执行 这
--输出 使能 函数.
--组件 triout
-- 端口 (
-- x: 在 位; -- 输入 至 缓存区
-- oe: 在 位; -- 输出 使能
-- y: 输出 位); -- 输出
--终止 组件
--这 oe 控制 是 一个 函数 的 这 专心致志的 输入 和 是 获得
--控制.
使用 工作.rtlpkg.所有; --至 instantiate triout 组件
entity uselatch2 是
端口 (clk1, clk2, 在_oe1, 在_oe2: 在 bit;
inputa, inputb: 在 位_vector(0 至 1);
outa,outb: inout x01z_vector(0 至 7));
终止 uselatch2;
architecture 行为 的 uselatch2 是
信号 signala, signalb: 位_vector(0 至 1);
信号 sig_en1, sig_en2, sig_en3, sig_en4: bit;
BEGIN
g1: 为 i 在 0 至 1 发生
bx1: triout 端口 编排(signala(i), sig_en1, outa(i));
bx2: triout 端口 编排(signala(i), sig_en2, outa(i+2));
bx3: triout 端口 编排(signala(i), sig_en3, outa(i+4));
bx4: triout 端口 编排(signala(i), sig_en4, outa(i+6));
bx5: triout 端口 编排(signalb(i), sig_en1, outa(i));
bx6: triout 端口 编排(signalb(i), sig_en2, outa(i+2));
bx7: triout 端口 编排(signalb(i), sig_en3, outa(i+4));
bx8: triout 端口 编排(signalb(i), sig_en4, outa(i+6));
终止 发生;
--这 时钟 latches 这 数据 当 高 和 是 combinatorial 当 低
oecontrol: 处理
BEGIN
如果 clk1= ’0’ 然后
sig_en1 <= 不(在_oe2) 和 不(在_oe1);
sig_en2 <= 不(在_oe2) 和 在_oe1;
sig_en3 <= 在_oe2 和 不(在_oe1);
sig_en4 <= 在_oe2 和 在_oe1;
ELSE
sig_en1 <= sig_en1;
sig_en2 <= sig_en2;
sig_en3 <= sig_en3;
sig_en4 <= sig_en4;
终止 如果;
终止 处理;
获得: 处理