VHDL在微处理器组件设计中的应用与实践
1. 基本时序电路编码:触发器和锁存器
1.1 锁存器和触发器的编码风格
在微处理器组件中,锁存器的使用相对较少。但需要注意的是,一个“不完整”的IF语句(即假路径中没有赋值的IF语句)会推断出一个锁存器。设计触发器时,需要使用S’EVENT属性或RISING_EDGE()函数。采用门级设计锁存器和触发器,工具通常无法识别,也不能映射到嵌入式锁存器/触发器资源。
1.2 触发器示例代码
以下是一个具有高电平有效异步复位(ar)和低电平有效同步置位(ss)的正边沿触发触发器的示例代码:
PROCESS (ar, clk)
BEGIN
IF ar = '1' THEN
q <= '0';
ELSIF RISING_EDGE(clk) THEN
IF ss = '0' THEN
q <= '1';
ELSE
q <= d;
END IF;
END IF;
END PROCESS;
1.3 计数器设计
计数器与触发器密切相关,可使用T触发器异步设计,但更推荐同步计数器。同步计数器使用触发器数组(即寄存器)的增量,只需要一个时钟网络。计数器可能需要一些额外功能,如使能、置位、复位、数据加载、模运算或上下切换。下面是一个微处理器中程序计数器(pc)的示例代码,它是一个带有异步复位和立即数据加载输入(用于跳转操作)的同步计数器:
超级会员免费看
订阅专栏 解锁全文
41

被折叠的 条评论
为什么被折叠?



