这 f
LASH
370i 家族 和
Warp2
11
附录 一个. inregcnt
-- 这 bufoe 端口 编排 参数 是:
-- bufoe 端口 编排(信号 going 至 这 输入 的 这 tristateable 缓存区,
-- tristate 控制 信号,
-- 这 输出 信号 那 是 这 entity 输出 管脚,
-- 这 反馈 信号 从 这 entity 输入/输出 管脚)
-- 在 这个 例子 这 last entry 是 “open” meaning 非 反馈.
使用 工作.bv_math.所有; -- 需要 为 inc_bv();
使用 工作.rtlpkg.所有; -- 需要 为 bufoe
entity inregcnt 是
端口 (clk, clkin, 重置, 加载, outen: 在 bit;
计数: inout x01z_vector(0 至 3));
终止 inregcnt;
architecture 行为 的 inregcnt 是
类型 bufrec 是 -- record 为 bufoe
RECORD -- 输入 和 反馈
cnt: 位_vector(0 至 3);
dat: 位_vector(0 至 3);
终止 record;
信号 温度: bufrec;
信号 regin: 位_vector(0 至 3);-- 为 registering 输入 承载 数据
信号 reset1, reset2:位; -- 为 registering 这 重置 输入
常量 countersize: integer := 3;
BEGIN
g1: 为 i 在 0 至 countersize 发生
bx: bufoe 端口 编排(温度.cnt(i), outen, 计数(i), temp.dat(i));
终止 发生;
proc1: 处理
BEGIN
wait 直到 (clk = ’1’);
如果 reset2 = ’1’ 然后 -- 使用 这 翻倍 注册 信号
温度.cnt <= “0000";
elsif 加载 = ’1’ 然后
温度.cnt <= regin; -- 使用 这 单独的 注册 信号
ELSE
温度.cnt <= inc_bv(温度.cnt); -- increment 位 vector
终止 如果;
终止 处理;
-- proc2 单独的 寄存器 这 加载 运作 和 翻倍 寄存器 这 重置 -- oper-
ation. 便条 这 二 clkin’s 是 需要 为 这 翻倍 寄存器.
proc2: 处理
BEGIN
wait 直到 (clkin = ’1’);
regin <= 温度.dat; --单独的 寄存器 为 数据 加载
reset1 <= 重置; --单独的 寄存器 这 重置 信号
reset2 <= reset1;--翻倍 寄存器 这 重置 信号
终止 处理;
终止 行为;