第3节 FPGA设计基本原则(2)
硬件原则
- FPGA逻辑设计所采用的硬件描述语言与软件语言(如C,C++等)是有本质区别的;
- 在使用硬件描述语言进行FPGA设计时,不应该片面追求代码的整洁,简短。
- 正确的编码方法:首先要对所需实现的硬件电路的结构与连接有十分清晰的理解和构想,然后再用适当的HDL语句表达出来即可。
例: If-then-else和case语句

- if sel=”00”, then
p_encoder_out <= in0;
elsif sel = “01” then
p_encoder_out <= in1;
elsif sel = “10’ then
p_encoder_out <= in2;
elsif sel = “11” then
p_encoder_out <= in3;
end if;

上述电路是带有优先级的电路; 电路面积和延时较大。
case SEL is
when 00 => mux_out<= in0;
when 01 => mux_out <= in1;
when 10 => mux_out <= in2;
when others => mux_out <= in3;
end case;

上述电路设计紧凑,延时较小。
- 可用多个 if 描述不带优先级的电路;
- 随着综合工具能力增强,可以优化掉不必要的优先级结构。
<<上一节 下一节>>