我是 VHDL 的新手,正在做家庭作业。
我有一个使用通用的非常简单的时钟分频器。(这是一个计数器/分隔符。)
-- the actual divider will be 2.1e6 or so (25Mhz down to 15hz)
run_divider : clk_divider
--pragma synthesis off
generic map(clkmax => 4) -- simulation
--pragma synthesis on
generic map(clkmax => 50000) -- synthesis
port map( clk_in => mclk,
reset => rst,
clk_out => divider_out );
我在 VHDL 中部分使用了#ifdef 的等效项来进行模拟/综合分离?使用上面的编译指示。但是,这仅适用于综合,但在模拟中是语法错误。
除了使用外部工具(建议的另一个答案是 M4、C 预处理器)之外,还有没有更好的方法来为合成和模拟提供单独的代码?当我在综合和仿真之间切换时,我不想担心这些常数。
如何使用 VHDL 将 24MHz 和 12MHz 时钟转换为 8MHz 时钟的答案?告诉我计数器/分频器不是最佳解决方案,但它对我的作业来说足够简单:-)
我的完整分隔符代码在这里: https ://github.com/linuxlizard/vhdl/blob/master/divider.vhdl
谢谢!