可编程ASIC设计及应用-核心语法与基础电路设计-课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《可编程ASIC设计及应用-核心语法与基础电路设计-课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 可编程 ASIC 设计 应用 核心 语法 基础 电路设计 课件
- 资源描述:
-
1、可编程ASIC核心语法与基础电路设计核心语法与基础电路设计学时分配:学时分配:4电子科技大学进度 1.绪论。2.设计流程。3.模块化硬件与进程模型。4.信号传输模型。5.核心语法与基础电路设计。6.状态机设计。7.可靠设计与高速设计。8.可编程逻辑器件。9.数字信号处理的fpga实现。10.数字系统的RTL设计。电子科技大学程序结构 Library;-库,包等的说明 Entity;-实体说明 Architecture;-结构体描述电子科技大学程序例子abcLibrary ieee;Use ieee.std_logic_1164.all;Entity u1 isPort(a:in std_log
2、ic;b:in std_logic;c:out std_logic);End u1;Architecture behv of u1 isBegin c=a and b;End behv;u1电子科技大学程序例子abcLibrary ieee;Use ieee.std_logic_1164.all;Entity u1 isPort(a:in std_logic;b:in std_logic;c:out std_logic);End u1;Architecture behv of u1 isBegin c=a and b;End behv;u1表示使用表示使用 ieee库。这是最库。这是最常用的库
3、说明,绝大多数常用的库说明,绝大多数的的VHDL代码都使用这个代码都使用这个库。库。电子科技大学程序例子abcLibrary ieee;Use ieee.std_logic_1164.all;Entity u1 isPort(a:in std_logic;b:in std_logic;c:out std_logic);End u1;Architecture behv of u1 isBegin c “0000”)成立成立;对于后者,有对于后者,有(“1001”“0000”)成立成立;电子科技大学程序例子abcLibrary ieee;Use ieee.std_logic_1164.all;En
4、tity u_and2 isPort(a:in std_logic;b:in std_logic;c:out std_logic);End u_and2;Architecture behv of u_and2 isBegin c=a and b;End behv;u1声明元件的实体。声明元件的实体。语法:语法:Entity is.End;电子科技大学程序例子abcLibrary ieee;Use ieee.std_logic_1164.all;Entity u_and2 isPort(a:in std_logic;b:in std_logic;c:out std_logic);End u_an
5、d2;Architecture behv of u_and2 isBegin c=a and b;End behv;u1元件的外部端口。语法:端口名:信号方向 数据类型;注意最后一个端口注意最后一个端口说明语句不要加分说明语句不要加分号!号!电子科技大学程序例子abcLibrary ieee;Use ieee.std_logic_1164.all;Entity u_and2 isPort(a:in std_logic;b:in std_logic;c:out std_logic);End u_and2;Architecture behv of u_and2 isBegin c=a and b;
6、End behv;u1元件的结构体说明。元件的结构体说明。语法:语法:Architecture of isBeginEnd;电子科技大学程序例子abcLibrary ieee;Use ieee.std_logic_1164.all;Entity u_and2 isPort(a:in std_logic;b:in std_logic;c:out std_logic);End u_and2;Architecture behv of u_and2 isBegin c=a and b;End behv;u1结构体描述。结构体描述。绝大多数情况下由绝大多数情况下由process构构成;成;一条一条“光秃
7、光秃”的信号赋值实的信号赋值实际上就是一个际上就是一个process,其敏其敏感信号为右边所有信号。感信号为右边所有信号。电子科技大学程序例子abcLibrary ieee;Use ieee.std_logic_1164.all;Entity u_and2 isPort(a:in std_logic;b:in std_logic;c:out std_logic);End u_and2;Architecture behv of u_and2 isBegin c=a and b;End behv;u1电子科技大学关于信号方向INININOUTBUFFERINOUTOUT电子科技大学VHDL常用数据
8、类型 Std_logic,std_logic_vector;Integer。电子科技大学常用的语法常用的语法1:if条件判断条件判断 IF 条件条件THEN 顺序处理语句;顺序处理语句;ELSE 顺序处理语句;顺序处理语句;END IF;注意,注意,if语句只能用语句只能用在在process,函数,函数,子过程之中!子过程之中!电子科技大学If的例子 Process(a)Begin if(a=1)then b=0;else b b b b1b2b3,即当即当b0、b1同为同为0时,输出编码为时,输出编码为00。换言之,当。换言之,当b00时,其余时,其余3个输入任意值该编码器的输出个输入任意值
9、该编码器的输出均为均为”00“。因为因为CASE语句没有对输入为任语句没有对输入为任意的表示法,故不能使用下面的语句:意的表示法,故不能使用下面的语句:即:即:WHEN“XX01“=y=“01”是错误的。是错误的。所以要正确描述输入之间的这种优先级关系就所以要正确描述输入之间的这种优先级关系就应选用应选用IF语句。程序如下:语句。程序如下:LIBRARY IEEE;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_1164.ALL;电子科技大学 ENTITY encoder ISENTITY encoder IS PORT
10、(input:IN STD_LOGIC_VECTOR(3 DOWNTO 0);PORT (input:IN STD_LOGIC_VECTOR(3 DOWNTO 0);y:OUT STD_LOGIC_VECTOR(1 DOWNTO 0);)y:OUT STD_LOGIC_VECTOR(1 DOWNTO 0);)END encoder;END encoder;ARCHITECTURE ARCHITECTURE rtlrtl OF encoder IS OF encoder ISBEGINBEGIN PROCESS(input)PROCESS(input)BEGIN BEGIN IF(input(0
11、)=0)then y=“00”:;IF(input(0)=0)then y=“00”:;ELSIF(input(1)=0)then y=“01”;ELSIF(input(1)=0)then y=“01”;ELSIF(input(2)=0)then y=“10”;ELSIF(input(2)=0)then y=“10”;ELSE y=“11”;ELSE y=“11”;END IF;END IF;END PROCESS;END PROCESS;END END rtlrtl;电子科技大学 在在IF语句中首先判断的是语句中首先判断的是input(0),其次是其次是input(1)这正好体现了这正好体现
12、了input(0)的优的优先级最高,只要先级最高,只要input(0)0就优先对它就优先对它编码。编码。电子科技大学常用语法3:时钟沿判断 上升沿:If(clkevent and clk=1)then 或者 if(rising_edge(clk)then 下降沿:if(clkevent and clk=0)then 或者 if(falling_edge(clk)then 电子科技大学时钟沿的例子 Process(clk)Begin if(clkevent and clk=1)then dout din1,b=din2,c=dout);din1din2doutabc电子科技大学其他内容 Vhdl
13、的数据类型的数据类型 Vhdl的运算的运算(逻辑运算,算术逻辑运算,算术 运算,关系运算,并置运算运算,关系运算,并置运算)Vhdl的信号类属性的信号类属性 等等。等等。电子科技大学基础电路设计 描述风格;描述风格;基础组合电路设计;基础组合电路设计;二选一电路,三八译码器,缓冲器,加二选一电路,三八译码器,缓冲器,加法器。法器。基础时序电路设计:基础时序电路设计:寄存器寄存器 计数器计数器电子科技大学基础组合电路设计电子科技大学例1:二选一电路设计 LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY MUX2to1 IS PORT(S:IN STD
14、_LOGIC;Zero:IN STD_LOGIC;One:IN STD_LOGIC;Y:OUT STD_LOGIC);ZeroOneSY电子科技大学 ARCHITECTURE behavior OF MUX2to1 IS Begin Process(S,Zero,One)Begin -下一页讲述 End process END behavior;ZeroOneSY电子科技大学方法1:直接逻辑运算 Process(S,Zero,One)Begin Y=(not S and Zero)or(S and One);End process;ZeroOneSY电子科技大学方法2:if语句 Process
15、(S,Zero,One)Begin if(S=0)then Y=Zero;else Y Y Y Y Y Y Y Y Y Y Y=“01111111”;END CASE;ELSE Y=“11111111”;END IF;END PROCESS;END behavior;注意不要漏掉此句电子科技大学例3 三态门三态门电路三态门电路电子科技大学 LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY rei_gate IS PORT(din,en:IN STD_LOGIC;dout:OUT STD_LOGIC););END tri_gate;ARCHITECT
16、URE tri_gate OF tri_gate IS BEGIN tri_gate1:PROCESS(din,en)BEGINIF(en=1)THEN dout=din;ELSE dout=Z;END IF;END PROCESS;END tri_gate;电子科技大学例4:四位全加器设计dinadinbdoutcincoutDina和和dinb为两路为两路4 bit的输入,的输入,cin为进位输入;为进位输入;Dout为为4bit的输出,的输出,cout为进位输出。为进位输出。444电子科技大学 则描述为:则描述为:Architecture behav of u_FullAdder is
17、Signal atemp,btemp,tempout:std_logic_vector(4 downto 0);Begin Process(cin,dina,dinb,atemp,btemp,tempout).End behav;电子科技大学 Process(cin,dina,dinb,atemp,btemp,tempout)Begin atemp=0&dina;btemp=0&dinb;tempout=cin+atemp+btemp;dout=tempout(3 downto 0);cout=tempout(4);End process;电子科技大学代码评析 该代码用该代码用5bit半加运算
18、来完成半加运算来完成4bit全加,全加,在代码上非常简洁。在代码上非常简洁。由综合器自己选择元件库中现成的加法由综合器自己选择元件库中现成的加法部件来实现加法运算,设计者不必关心部件来实现加法运算,设计者不必关心其内部电路细节。其内部电路细节。但是其弱点是,综合器会用但是其弱点是,综合器会用5bit加法器来加法器来实现,容易造成资源消耗过大。实现,容易造成资源消耗过大。电子科技大学改进方法 使用1bit全加器构建abdcincoutFullAdder1b电子科技大学1bit全加器 Process(a,b,cin)Begin d=a xor b xor cin;cout=(a and cin)o
19、r(b and cin)or(a and b);End process;电子科技大学4bit全加器abdcincoutabdcincoutabdcincoutabdcincouttemp1temp2temp3a(3)a(2)a(1)a(0)b(3)b(2)b(1)b(0)cind(3)d(2)d(1)d(0)cout电子科技大学代码实现 总框架:总框架:Entity FullAdder4b is.End FullAdder4b;Architecture struct of FullAdder4b is Signal temp1,temp2,temp3:std_logic_vector(3 do
20、wnto 0);Begin -此处代码下一页说明此处代码下一页说明.End struct;Port(a :in std_logic_vector(3 downto 0);b :in std_logic_vector(3 downto 0);cin :in std_logic;d :out std_logic_vector(3 downto 0);cout:out std_logic;);电子科技大学代码实现 总框架:总框架:Entity FullAdder4b is.End FullAdder4b;Architecture struct of FullAdder4b is Signal tem
21、p1,temp2,temp3:std_logic_vector(3 downto 0);Begin -此处代码下一页说明此处代码下一页说明.End struct;电子科技大学 U0:FullAdder1b port map(a(0),b(0),cin,d(0),temp1);U1:FullAdder1b port map(a(1),b(1),temp1,d(0),temp2);U2:FullAdder1b port map(a(2),b(2),temp2,d(0),temp3);U3:FullAdder1b port map(a(3),b(3),temp3,d(0),cout );电子科技大学
22、 由上可见,硬件描述语言配合了完善的综合工由上可见,硬件描述语言配合了完善的综合工具后,可以使得设计者从烦琐的电路细节中解具后,可以使得设计者从烦琐的电路细节中解放出来,专心于系统的功能架构;放出来,专心于系统的功能架构;但是由于综合工具智能化程度的局限性,有时但是由于综合工具智能化程度的局限性,有时综合工具综合出来的电路并不一定是最优的,综合工具综合出来的电路并不一定是最优的,这就需要设计者在适当的时候在较低的层次上这就需要设计者在适当的时候在较低的层次上进行描述,指导综合工具综合出性能或面积优进行描述,指导综合工具综合出性能或面积优化的代码。化的代码。电子科技大学对比两种加法器描述方法对比
23、两种加法器描述方法 前一种方法便于使用并行进位逻辑,而后一种前一种方法便于使用并行进位逻辑,而后一种方法是串行进位,所以前者速度一般要比后者方法是串行进位,所以前者速度一般要比后者快;快;但是在位宽比较大的时候,并行进位的资源消但是在位宽比较大的时候,并行进位的资源消耗会快速上升。耗会快速上升。实验发现,实验发现,4bit的并行加法器和串行加法器的的并行加法器和串行加法器的资源消耗差不多,因此工程应用中,宽资源消耗差不多,因此工程应用中,宽bit的加的加法器经常采用法器经常采用4bit的并行加法器级联而成。的并行加法器级联而成。电子科技大学易犯错误电子科技大学实例分析 假设,要描述一个与门电路
24、:有很多种描述方法。&aby电子科技大学方法1:直接信号赋值 在结构体内,很直观地直接进行赋值:Architecture behav of And2 is Begin y=a and b;End behav;电子科技大学方法2:进程直接信号赋值 这种方法直接等效于方法1。注意要将a和b都加入敏感信号表。Architecture behav of And2 is Begin process(a,b)begin y=a and b;end process;End behav;电子科技大学方法3:进程if条件赋值 经过分析发现,实际上经过分析发现,实际上y大部分情况下为大部分情况下为0,只,只有有a
展开阅读全文