共2条 1/1
1
跳转至
页
FPGA节省资源设计的一个例子(vhdl)
fpga的结构化特点导致近似的设计会产生交大差别的MAPING(综合之后)之结果, 因此,设计时应充分学习FPGA之结构,才可以充分利用资源。 现举例如下: 设计方法1: library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity counter is port ( inti : in std_logic; clock : in std_logic; reset : in std_logic; bout : out std_logic_vector(4 downto 0)); end counter; architecture behavior of counter is signal counter : std_logic_vector(4 downto 0); begin counter_machine:process(clock) begin if clock'event and clock='1' then if inti='0' then counter<="00001"; ***************** elsif reset='1' then if counter=19 then counter<=(others=>'0'); else counter<=counter+1; end if; else counter<=(others=>'0'); end if; end if; end process; bout<=counter; end behavior; 设计方法2 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity counter is port ( inti : in std_logic; clock : in std_logic; reset : in std_logic; bout : out std_logic_vector(4 downto 0)); end counter; architecture behavior of counter is signal counter : std_logic_vector(4 downto 0); begin counter_machine:process(clock) begin if clock'event and clock='1' then if inti='0' then counter<="00000"; ***************** elsif reset='1' then if counter=19 then counter<=(others=>'0'); else counter<=counter+1; end if; else counter<=(others=>'0'); end if; end if; end process; bout<=counter; end behavior; 对于设计1,由于init和reset的counter置位是不同的,所以额外的LE完成 组合逻辑。 而对于设计2, 由于inti和reset可以用LE中的LUT和cascade_in和cascade_out实现计数器 的加,用programable register实现计数器的状态,所以资源利用率是比较 高的。 二者的速度几乎没有差别。 好了,该干活了。
关键词: 节省 资源 设计 一个 例子
共2条 1/1
1
跳转至
页
回复
有奖活动 | |
---|---|
2024齐鲁国际银龄产业博览会 | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
【有奖活动】智能可穿戴设备AR/VR如何引领科技新潮流! | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 |