元件例化
- 格式:doc
- 大小:26.00 KB
- 文档页数:3
元器件例化语句1. 元器件例化语句就像是魔法咒语一样,能让电路设计变得超简单!比如说,我要设计一个计数器电路,使用D触发器的例化语句,就像把一个个小魔法零件组装起来,“DFF_inst : DFF port map ( clk => clk, d => data, q => count );”,看,一个简单的计数器就有雏形啦。
2. 元器件例化语句啊,那可是电路世界里的万能钥匙。
就像你玩积木,每个不同形状的积木(元器件)都有它特定的拼接方式(例化语句)。
像在做一个简单的数字时钟电路时,用七段数码管的例化语句“SEG_DISP_inst : SEG_DISP port map ( num => time_val, seg =>seg_out );”,就如同把代表时间的数字准确地放在了该放的位置。
3. 元器件例化语句,你可别小瞧它,这可是电路设计师的秘密武器呢。
想象一下,你是个大厨,元器件是食材,例化语句就是你独特的烹饪手法。
例如我在构建一个音频放大电路,三极管的例化语句“TRANS_inst : TRANS port map ( base => input_signal, collector => output_signal );”就像恰到好处地调味,让声音放大得恰到好处。
4. 嘿,元器件例化语句真的很有趣!它就像给每个电子元器件安排一个专属座位一样。
我做一个LED闪烁电路的时候,LED的例化语句“LED_inst : LED port map ( anode => power, cathode => control_signal );”就像告诉LED,你就坐这儿,然后按照我的规则闪起来。
5. 元器件例化语句简直就是电路里的“排兵布阵”之法。
你看,在设计一个逻辑门电路的时候,与门的例化语句“AND_GATE_inst :AND_GATE port map ( input1 => a, input2 => b, output => result );”,这就如同在战场上把士兵(输入信号)安排到正确的位置(与门的输入端口),然后得到预期的战斗结果(输出信号)。
FPGA试题1.⼀个项⽬的输⼊输出端⼝是定义在 A 。
A. 实体中B. 结构体中C. 任何位置D. 进程体2. 描述项⽬具有逻辑功能的是 B 。
A. 实体B. 结构体C. 配置D. 进程3.关于1987标准的VHDL语⾔中,标识符描述正确的是 B 。
A. 下划线可以连⽤B. 下划线不能连⽤C. 不能使⽤下划线D. 可以使⽤任何字符4.VHDL语⾔中变量定义的位置是 D ;VHDL语⾔中信号定义的位置是 D 。
A. 实体中中任何位置B. 实体中特定位置C. 结构体中任何位置D. 结构体中特定位置5.变量和信号的描述正确的是 A 。
A. 变量赋值号是:=B. 信号赋值号是:=C. 变量赋值号是<=D. ⼆者没有区别6.变量和信号的描述正确的是 B 。
A. 变量可以带出进程B. 信号可以带出进程C. 信号不能带出进程D. ⼆者没有区别6.关于VHDL数据类型,正确的是 D 。
A. 数据类型不同不能进⾏运算B. 数据类型相同才能进⾏运算C. 数据类型相同或相符就可以运算D. 运算与数据类型⽆关7.关于VHDL数据类型,正确的是 B 。
A. ⽤户不能定义⼦类型B. ⽤户可以定义⼦类型C. ⽤户可以定义任何类型的数据D. 前⾯三个答案都是错误的8.可以不必声明⽽直接引⽤的数据类型是 C 。
A. STD_LOGICB. STD_LOGIC_VECTORC. BITD. 前⾯三个答案都是错误的9.使⽤STD_LOGIG_1164使⽤的数据类型时 B 。
A.可以直接调⽤B.必须在库和包集合中声明C.必须在实体中声明D. 必须在结构体中声明10.VHDL运算符优先级的说法正确的是 C 。
A. 逻辑运算的优先级最⾼B. 关系运算的优先级最⾼C. 逻辑运算的优先级最低D. 关系运算的优先级最低11.VHDL中顺序语句放置位置说法正确的是 D 。
A.可以放在进程语句中B. 可以放在⼦程序中C. 不能放在任意位置D. 前⾯的说法都正确12.不属于顺序语句的是 B 。
EDA技术题库一.填空题1. Verilog的基本设计单元是模块.它是由两部分组成,一部分描述接口;另一部分描述逻辑功能,即定义输入是如何影响输出的.2。
用assign描述的语句我们一般称之为组合逻辑,并且它们是属于并行语句,即于语句的书写次序无关.而用always描述的语句我们一般称之为组合逻辑或时序逻辑,并且它们是属于串行语句,即于语句的书写有关。
3.在case语句中至少要有一条default语句。
4. 已知x=4'b1001,y=4'0110,则x的4位补码为4’b1111,而y的4位的补码为4'b0110 。
5. 两个进程之间是并行语句。
而在Always中的语句则是顺序语句。
6.综合是将高层次上描述的电子系统转换为低层次上描述的电子系统,以便于系统的具体硬件实现。
综合器是能自动将高层次的表述(系统级、行为级)转化为低层次的表述(门级、结构级)的计算机程序7. 设计输入的方式有原理图、硬件描述语言、状态图以及波形图。
8.按照仿真的电路描述级别的不同,HDL仿真器可以完成:系统级仿真,行为级仿真,RTL 级仿真,门级(时序)仿真。
按照仿真是否考虑硬件延时分类,可以分为:功能仿真和时序仿真。
仿真器可分为基于元件(逻辑门)仿真器和基于HDL语言的仿真器9. IP核是知识产权核或知识产权模块,在EDA技术中具有十分重要的地位。
半导体产业的IP定义为用于ASIC或FPGA中的预先设计好的电路功能模块。
IP分为软IP、固IP和硬IP.10.可编程逻辑器件PLD是一种通过用户编程或配置实现所需逻辑功能的逻辑器件,也就是说用户可以根据自己的需求,通过EDA开发技术对其硬件结构和工作方式进行重构,重新设计其逻辑功能11.两种可编程逻辑结构是基于与—或阵列可编程结构(乘积项逻辑可编程结构)、基于SRAM 查找表的可编程逻辑结构12。
PLD按集成度分类:简单PLD、复杂PLD;按结构分类:基于“与—或”阵列结构的器件、基于查找表结构的器件;从编程工艺上分类:熔丝型、反熔丝型、EPROM型、EEPROM 型、SRAM型、Flash型13。
元件例化语句元件例化就是引入一种连接关系,将预先设计好的设计实体定义为一个元件,然后利用特定的语句将此元件与当前的设计实体中的指定端口相连接,从而为当前设计实体引入一个新的低一级的设计层次。
在这里,当前设计实体相当于一个较大的电路系统,所定义的例化元件相当于一个要插在这个电路系统板上的芯片,而当前设计实体中指定的端口则相当于这块电路板上准备接受此芯片的一个插座。
元件例化是使VHDL 设计实体构成自上而下层次化设计的一种重要途径。
在一个结构体中调用子程序,包括并行过程的调用非常类似于元件例化,因为通过调用,为当前系统增加了一个类似于元件的功能模块。
但这种调用是在同一层次内进行的,并没有因此而增加新的电路层次,这类似于在原电路系统增加了一个电容或一个电阻。
元件例化是可以多层次的,在一个设计实体中被调用安插的元件本身也可以是一个低层次的当前设计实体,因而可以调用其它的元件,以便构成更低层次的电路模块。
因此,元件例化就意味着在当前结构体内定义了一个新的设计层次,这个设计层次的总称叫元件,但它可以以不同的形式出现。
如上所说,这个元件可以是已设计好的一个VHDL 设计实体,可以是来自FPGA 元件库中的元件,它们可能是以别的硬件描述语言,如Verylog 设计的实体。
元件还可以是软的IP 核,或者是FPGA 中的嵌入式硬IP 核。
元件例化语句由两部分组成,前一部分是对一个现成的设计实体定义为一个元件,第二部分则是此元件与当前设计实体中的连接说明,它们的语句格式如下:(1)元件定义语语句COMPONENT 元件名GENERIC (类属表);PORT (端口名表);END COMPONENT 文件名;(2)元件例化语句例化名:元件名 PORT MAP( [端口名 =>] 连接端口名,...) ;以上两部分语句在元件例化中都是必须存在的。
第一部分语句是元件定义语句,相当于对一个现成的设计实体进行封装,使其只留出对外的接口界面。
1. 说明端口模式INOUT 和BUFFER 有何异同点:INOUT :双向端口;BUFFER :输出并向内部反馈。
2.3. 一个相对完整的VHDL 程序应包含哪些组成部分:一个相对完整的VHDL 程序应包含库、程序包、实体、结构体和配置,其中,库、实体、结构体是最基本和不可缺少的部分。
4.简述元件例化语句的作用,组成及格式:把已经设计好的设计实体称为一个元件或一个模块,它可以被高层次的设计引用。
引用时就会用到元件声明和元件例化语句。
二者缺一不可。
1)元件声明COMPONENT 元件实体名PORT (元件端口信息);END COMPONENT ;2)元件例化例化名:元件名 PORT MAP (端口列表)5.什么叫‘综合’及一般综合应包含那些过程:综合过程就是将电路的高级语言描述转换成低级的,可与FPGA/CPLD 器件结构相映射的网表文件。
一般综合应包含以下过程:语法检查和设计规则检查、网络表提取、逻辑优化和综合。
6.简述MAX+PLUS Ⅱ的设计流程:MAX+PLUS Ⅱ的设计过程包括设计项目的建立与设计的输入、设计编译、设计校验(仿真和定时分析)、器件编程四个步骤。
设计输入:可以采用原理图输入、HDL 语言描述、及波形输入等几种方式。
设计编译:先根据设计要求设定编译参数和编译策略,如器件的选择、逻辑综合方式的选择等。
然后根据设定的参数和策略对设计项目进行网表提取、逻辑综合和器件适配,并产生报告文件、延时信息文件及编程文件,供分析仿真和编程使用。
设计校验(项目仿真):包括功能仿真、时序仿真和定时分析,可以利用软件的仿真功能来验证设计项目的逻辑功能是否正确。
器件编程与验证:用经过仿真确认后的编程文件通过编程器(Programmer )将设计下载到实际芯片中,最后测试芯片在系统中的实际运行性能。
7. 指出下面图形中节点的类型.ctrl 输入 clk 输入 state 隐含 Q[3..0]输出:8. 简述在系统编程:在系统可编程特性(ISP )是指不需要使用编程器,只需要通过计算机接口和编程电缆,直接在用户自己设计的目标系统中或线路板上,为重新构造设计逻辑而对器件进行编程或反复编程的能力。
EDA实验(三)CLK作是测频控制时钟频率固定为1HZ。
Fsin是待测信号。
1、1)、测频控制器工作功能仿真波形:2)、测频控制器工作时序仿真波形:2、1)、4位频率计工作功能仿真波形4位频率计功能仿真分析:由功能仿真波形可以看出其低12位为000100000101,每四个一组转化后为105,经译码器后读得105。
待测周期为9.52ms,待测频率计算得105(1/0.00952)。
输入数据与测得数据一致。
2)、4位频率计工作时序波形:3、1)、8位频率计工作功能仿真波形:2)、8位频率计工作时序仿真波形:8位频率计功能时序仿真分析:同理由时序仿真波形可以看出其低12位为000100000101,其于全部为0,每四个一组转化后为105,经译码器后读得105。
其待测周期为9.52ms,待测频率计算得105(1/0.00952)。
输入数据与测得数据一致。
且时序仿真波形与功能仿真波形相比出现了毛刺。
一、4位十进制计数器的VHDL代码:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt10 isport (clk,clr,ena:in std_logic;cq:out std_logic_vector(3 downto 0);carry_out:out std_logic);end cnt10;architecture behav of cnt10 isbeginprocess(clk,clr,ena)variable cqi:std_logic_vector(3 downto 0);beginif clr='1' then cqi:=(others=>'0');elsif clk'event and clk='0' thenif ena='1' thenif cqi<9 then cqi:=cqi+1;else cqi:=(others=>'0');end if;end if;end if;if cqi=9 then carry_out<='1';else carry_out<='0';end if;cq<=cqi;end process;end behav;二、4位锁存器VHDL语言:library ieee;use ieee.std_logic_1164.all;entity reg4b isport(load : in std_logic;din : in std_logic_vector(3 downto 0);dout: out std_logic_vector(3 downto 0));end;architecture art of reg4b isbeginprocess(load,din)beginif(load'event and load = '1')thendout<=din;end if;end process;end art;三、测频控制器的VHDL语言:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity testctl isport( clk : std_logic;tsten,clr_cnt,load : out std_logic);end;architecture art of testctl issignal clk_div2 : std_logic;beginload<=not clk_div2;tsten <=clk_div2;p1:process(clk)beginif clk'event and clk='1' thenclk_div2<=not clk_div2;end if;end process;p2:process(clk,clk_div2)beginif clk='0'and clk_div2='0' thenclr_cnt<='1';elseclr_cnt<='0';end if;end process;end art;四、4位十进制频率计的顶层文件:library ieee;use ieee.std_logic_1164.all;entity cui4 isport(fsin,clk:in std_logic;dout:out std_logic_vector(16 downto 0));end;architecture art of cui4 iscomponent cnt10port( clk,clr,ena:in std_logic;cq:out std_logic_vector(3 downto 0);carry_out:out std_logic);end component;component reg4bport (load:in std_logic;din:in std_logic_vector(3 downto 0);dout:out std_logic_vector(3 downto 0));end component;component testctlport ( clk:in std_logic;tsten,clr_cnt,load:out std_logic);end component;signal ena:std_logic;signal clr:std_logic;signal load:std_logic;signal carry0:std_logic;signal carry1:std_logic;signal carry2:std_logic;signal clr_cnt:std_logic;signal tsten :std_logic;signal a,b: std_logic;signal cq0,cq1,cq2,cq3:std_logic_vector(3 downto 0);beginu0:testctl port map(clk=>clk,tsten=>a,clr_cnt=>b,load=>load);u1:cnt10 port map(clk=>fsin,clr=>b,ena=>a,cq=>cq0,carry_out=>carry0); u2:reg4b port map(load,cq0,dout(3 downto 0));u3:cnt10 port map(clk=>carry0,clr=>b,ena=>a,cq=>cq1,carry_out=>carry1);u4:reg4b port map(load,cq1,dout(7 downto 4));u5:cnt10 port map(clk=>carry1,clr=>b,ena=>a,cq=>cq2,carry_out=>carry2); u6:reg4b port map(load,cq2,dout(11 downto 8));u7:cnt10 port map(clk=>carry2,clr=>b,ena=>a,cq=>cq3,carry_out=>dout(16)); u8:reg4b port map(load,cq3,dout(15 downto 12));end art;五、8位十进制频率计的顶层文件:library ieee;use ieee.std_logic_1164.all;entity cui8 isport(fsin,clk:in std_logic;dout:out std_logic_vector(32 downto 0));end;architecture art of cui8 iscomponent cnt10port( clk,clr,ena:in std_logic;cq:out std_logic_vector(3 downto 0);carry_out:out std_logic);end component;component reg4bport (load:in std_logic;din:in std_logic_vector(3 downto 0);dout:out std_logic_vector(3 downto 0));end component;component testctlport ( clk:in std_logic;tsten,clr_cnt,load:out std_logic);end component;signal ena:std_logic;signal clr:std_logic;signal load:std_logic;signal carry0:std_logic;signal carry1:std_logic;signal carry2:std_logic;signal carry3:std_logic;signal carry4:std_logic;signal carry5:std_logic;signal carry6:std_logic;signal clr_cnt:std_logic;signal tsten :std_logic;signal a,b: std_logic;signal cq0,cq1,cq2,cq3,cq4,cq5,cq6,cq7:std_logic_vector(3 downto 0);beginu0:testctl port map(clk=>clk,tsten=>a,clr_cnt=>b,load=>load);u1:cnt10 port map(clk=>fsin,clr=>b,ena=>a,cq=>cq0,carry_out=>carry0);u2:reg4b port map(load,cq0,dout(3 downto 0));u3:cnt10 port map(clk=>carry0,clr=>b,ena=>a,cq=>cq1,carry_out=>carry1);u4:reg4b port map(load,cq1,dout(7 downto 4));u5:cnt10 port map(clk=>carry1,clr=>b,ena=>a,cq=>cq2,carry_out=>carry2);u6:reg4b port map(load,cq2,dout(11 downto 8));u7:cnt10 port map(clk=>carry2,clr=>b,ena=>a,cq=>cq3,carry_out=>carry3);u8:reg4b port map(load,cq3,dout(15 downto 12));u9:cnt10 port map(clk=>carry3,clr=>b,ena=>a,cq=>cq4,carry_out=>carry4);u10:reg4b port map(load,cq4,dout(19 downto 16));u11:cnt10 port map(clk=>carry4,clr=>b,ena=>a,cq=>cq5,carry_out=>carry5); u12:reg4b port map(load,cq5,dout(23 downto 20));u13:cnt10 port map(clk=>carry5,clr=>b,ena=>a,cq=>cq6,carry_out=>carry6); u14:reg4b port map(load,cq6,dout(27 downto 24));u15:cnt10 port map(clk=>carry6,clr=>b,ena=>a,cq=>cq7,carry_out=>dout(32)); u16:reg4b port map(load,cq7,dout(31 downto 28));end art;。
元件例化语句
元件例化就是引入一种连接关系,将预先设计好的设计实体定义为一个元件,然后利用
特定的语句将此元件与当前的设计实体中的指定端口相连接,从而为当前设计实体引入一个
新的低一级的设计层次。
在这里,当前设计实体相当于一个较大的电路系统,所定义的例化
元件相当于一个要插在这个电路系统板上的芯片,而当前设计实体中指定的端口则相当于这
块电路板上准备接受此芯片的一个插座。
元件例化是使VHDL 设计实体构成自上而下层次化
设计的一种重要途径。
在一个结构体中调用子程序,包括并行过程的调用非常类似于元件例化,因为通过调用,
为当前系统增加了一个类似于元件的功能模块。
但这种调用是在同一层次内进行的,并没有
因此而增加新的电路层次,这类似于在原电路系统增加了一个电容或一个电阻。
元件例化是可以多层次的,在一个设计实体中被调用安插的元件本身也可以是一个低层
次的当前设计实体,因而可以调用其它的元件,以便构成更低层次的电路模块。
因此,元件
例化就意味着在当前结构体内定义了一个新的设计层次,这个设计层次的总称叫元件,但它
可以以不同的形式出现。
如上所说,这个元件可以是已设计好的一个VHDL 设计实体,可以
是来自FPGA 元件库中的元件,它们可能是以别的硬件描述语言,如Verylog 设计的实体。
元件还可以是软的IP 核,或者是FPGA 中的嵌入式硬IP 核。
元件例化语句由两部分组成,前一部分是对一个现成的设计实体定义为一个元件,第二
部分则是此元件与当前设计实体中的连接说明,它们的语句格式如下:
(1)元件定义语语句
COMPONENT 元件名
GENERIC (类属表);
PORT (端口名表);
END COMPONENT 文件名;
(2)元件例化语句
例化名:元件名 PORT MAP( [端口名 =>] 连接端口名,...) ;
以上两部分语句在元件例化中都是必须存在的。
第一部分语句是元件定义语句,
相当于
对一个现成的设计实体进行封装,使其只留出对外的接口界面。
就像一个集成芯片只留几个
引脚在外一样,它的类属表可列出端口的数据类型和参数,端口名表可列出对外通信的各端
口名。
元件例化的第二部分语句即为元件例化语句,其中的例化名是必须存在的,它类似于
标在当前系统(电路板)中的一个插座名,而元件名则是准备在此插座上插入的、已定义好的
元件名。
PORT MAP 是端口映射的意思,其中的端口名是在元件定义语句中的端口名表中已
定义好的元件端口的名字,连接端口名则是当前系统与准备接入的元件对应端口相连的通信
端口,相当于插座上各插针的引脚名。
元件例化语句中所定义的元件的端口名与当前系统的连接端口名的接口表达有两种方
式,一种是名字关联方式。
在这种关联方式下,例化元件的端口名和关联(连接)符号“=>”
两者都是必须存在的。
这时,端口名与连接端口名的对应形式在PORT MAP 句中的位置可以
是任意的。
另一种是位置关联方式。
若使用这种方式,端口名和关联连接符号都可省去,在PORT MAP
子句中,只要列出当前系统中的连接端口名就行了,但要求连接端口名的排列方式与所需例
化的元件端口定义中的端口名一一对应。
例子:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY ND2 IS
PORT(A,B:IN STD_LOGIC;
C:OUT STD_LOGIC);
END ENTITY ND2;
ARCHITECTURE ARTND2 OF ND2 IS
BEGIN
C<=A NAND B;
END ARCHITECTURE ARTND2;
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY ORD41 IS
PORT(A1,B1,C1,D1:IN STD_LOGIC;
Z1:OUT STD_LOGIC);
END ENTITY ORD41;
ARCHITECTURE ARTORD41 OF ORD41 IS
COMPONENT ND2 IS
PORT(A,B:IN STD_LOGIC;
C:OUT STD_LOGIC);
END COMPONENT ND2;
SIGNAL S1,S2:STD_LOGIC;
BEGIN
U1:ND2 PORT MAP (A1,B1,
S1); --位置关联方式
U2:ND2 PORT MAP (A=>C1,C=>S2,B=>D1); --名字关联方式
U3:ND2 PORT MAP (S1,S2,
C=>Z1); --混合关联方式
END ARCHITECTURE ARTORD41;。