EDA与VHDL知识点总结与期末考试试卷及答案
要求设计师具有硬件语言编程能力,但是编程能力需要长时间的培养。
到了20世纪90年代,一些EDA公司相继推出了一批图形化的设计输入工具。这些输入工具允许设计师用他们最方便并熟悉的设计方式(如框图、状态图、真值表和逻辑方程)建立设计文件,然后由EDA工具自动生成综合所需的硬件描述语言文件。图形化的描述方式具有简单直观、容易掌握的优点,是未来主要的发展趋势。
(2)描述方式高效化和统一化
C/C++语言是软件工程师在开发商业软件时的标准语言,也是使用最为广泛的高级语言。许多公司已经提出了不少方案,尝试在C语言的基础上设计下一代硬件描述语言。随着算法描述抽象层次的提高,使用C/C++语言设计系统的优势将更加明显,设计者可以快速而简洁地构建功能函数,通过标准库和函数调用技术,创建更庞大、更复杂和更高速的系统。但是,目前的C/C++语言描述方式与硬件描述语言之间还有一段距离,还有待于更多EDA软件厂家和可编程逻辑器件公司的支持。随着EDA技术的不断成熟,软件和硬件的概念将日益模糊,使用单一的高级语言直接设计整个系统将是一个统一化的发展趋势。
(a) 用if语句。 (b) 用case 语句。 (c) 用when else 语句。 Library ieee;
Use ieee.std_logic_1164.all;
Entity mymux is
Port ( sel : in std_logic_vector(1 downto 0); -- 选择信号输入 Ain, Bin : in std_logic_vector(1 downto 0); -- 数据输入 Cout : out std_logic_vector(1 downto 0) );
End mymux;
Architecture one of mymux is
Begin
Process (sel, ain, bin)
Begin
If sel = “00” then cout <= ain and bin;
Elsif sel = “01” then cout <= ain xor bin;
Elsif sel = “10” then cout <= not ain;
Else cout <= not bin;
End if;
End process;
End one;
Architecture two of mymux is
Begin
Process (sel, ain, bin)
Begin
Case sel is
when “00” => cout <= ain and bin;
when “01” => cout <= ain xor bin;
when “10” => cout <= not ain;
when others => cout <= not bin;
End case;