版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1.1 程序的结构 library、entity、port1.2 设计的表达 architecture、signal1.3 结构表达与运算表达 1.4 数字系统的进程表达 process第一章 VHDL对电路设计的基本描述VHDL与数字集成电路设计程序的结构表达与运算表达第一章VHDL对电路设计的基本描述VHDL进程语句的格式进程名称:process(敏感量表) 变量设置 begin 顺序运算语句(软件程序); end process;1.4 数字系统的进程表达 process 程序的结构表达与运算表达第一章VHDL对电路设计的基本描述VHDL进程的结构特点1.4 数字系统的进程表达 proc
2、ess 程序的结构表达与运算表达第一章VHDL对电路设计的基本描述VHDL进程运算的特点 将若干运算语句的汇总为一条并行语句,方便于程序设计理解和仿真控制管理,适合对系统进行行为描述; 内部运算使用软件程序表达,不含硬件细节,可以实现复杂系统的仿真,但与综合通常没有直接对应关系;可用于表达与硬件完全无关的抽象运算,适合描述虚拟测试环境及软硬件协同过程。 1.4 数字系统的进程表达 process 程序的结构表达与运算表达第一章VHDL对电路设计的基本描述VHDL进程运算的特点:敏感信号设置 敏感信号用于控制进程的仿真执行; 利用敏感表可以对进程进行局部变量参与的仿真调试,提高仿真效率; 当敏感
3、表中信号少于进程中使用的信号时,仿真结果与实际电路表现会有所不同;通常要求两者一致。 敏感信号设置对电路综合不产生影响。1.4 数字系统的进程表达 process 程序的结构表达与运算表达第一章VHDL对电路设计的基本描述VHDLprocess (a,b,c) begin d = a and b; f = c or d;end process ; process (a,b,c,d) begin d = a and b; f = c or d;end process ; 进程运算的特点:敏感信号设置1.4 数字系统的进程表达 process 程序的结构表达与运算表达第一章VHDL对电路设计的基本
4、描述VHDL进程运算的特点:敏感信号设置1.4 数字系统的进程表达 process 程序的结构表达与运算表达第一章VHDL对电路设计的基本描述VHDL进程中的数据对象和运算关系信号signal: 硬件连接概念,不能在进程中定义;负责界面信息交流;变量variable: 表达软件数据,不能在进程外存在;负责运算细节。1.4 数字系统的进程表达 process 程序的结构表达与运算表达第一章VHDL对电路设计的基本描述VHDL进程的仿真运算特点1.4 数字系统的进程表达 process 程序的结构表达与运算表达第一章VHDL对电路设计的基本描述VHDL并行赋值与顺序赋值1.4 数字系统的进程表达
5、process 程序的结构表达与运算表达第一章VHDL对电路设计的基本描述VHDL进程内的信号特点 进程语句内信号状态保持不变(硬件特点),但信号存储值可以随时变动(软件特点); 进程内可以使用信号状态,但不能使用信号存储值; 进程内允许同一信号出现在同一赋值号两边、允许对信号赋常数值; 进程内允许对同一信号进行多次赋值,但只有最后一次赋值才有意义;1.4 数字系统的进程表达 process 程序的结构表达与运算表达第一章VHDL对电路设计的基本描述VHDL进程内的变量特点 进程语句内变量以存储值表现; 变量值可以在进程中使用,也可以通过变量赋值语句改变; 变量表达软件数据,不一定具有硬件意义
6、; 进程内的变量值不可能存在于进程之外,当进程结束时(end),变量值必定消失; 对于需要与信号对应的变量值,一定要在进程结束前赋值给信号值。1.4 数字系统的进程表达 process 程序的结构表达与运算表达第一章VHDL对电路设计的基本描述VHDL process(a) -a=0001 variable c: signed(3 downto 0); begin c:=signed(a); x=c; -x=0001 c:=c+1;y=c; -y=0010 c:=c+1;z=c; -z=0011 c:=c+1;x=c; -x=0100 end process; end beh;进程中的顺序赋值
7、:变量赋值1.4 数字系统的进程表达 process 程序的结构表达与运算表达第一章VHDL对电路设计的基本描述VHDL-signal c=0000process(a) begin -a=0001c=signed(a); x=c; c=c+1;y=c; c=c+1;z=c;c=c+1;x=c;end process; 进程中的顺序赋值:信号赋值1.4 数字系统的进程表达 process 程序的结构表达与运算表达第一章VHDL对电路设计的基本描述VHDL 进程本身是一条并行语句,代表一个硬件模块,通过信号赋值为特定外部信号提供驱动; 进程内部语句全为软件语句,不具备硬件细节,不具有综合约束意义;
8、 进程的综合通过进出进程的信号表现的输入输出关系体现。进程的综合1.4 数字系统的进程表达 process 程序的结构表达与运算表达第一章VHDL对电路设计的基本描述VHDL进程内的变量特点 进程中的变量除了可以用于表达信号运算值外,还可以用于表达文件处理中的抽象概念,用于虚拟测试环境的描述或表达软硬件协同设计的概念; 例如,在采用textio资源库进行设计时,可以将变量设置为数据行line,这种表达可以非常方便地将硬件信号与软件数据进行交互传递:1.4 数字系统的进程表达 process 程序的结构表达与运算表达第一章VHDL对电路设计的基本描述VHDL进程对抽象数据的使用在资源库中对软件文
9、件进行设置:内含若干数据行file excite: text is in “excite”; -指定输入文件file results: text is out “results”; -指定输出文件在进程中设置变量表达数据行:内含若干独立数据variable li,lo:line; -使用变量表达抽象概念:数据行1.4 数字系统的进程表达 process 程序的结构表达与运算表达第一章VHDL对电路设计的基本描述VHDLreadline(excite,li); -从输入文件中读入一行数据到liread(li,clk); -从行li中读入数据赋值给信号clkread(li,ex); -从行li中读
10、入数据赋值给信号exwrite(lo,now,left,8); -将当前时间写入行lowrite(lo,resp); -将信号resp写入行lowriteline(results,lo); -将行lo写入到输出文件中进程对抽象数据的使用使用特殊的函数进行变量或信号的赋值:顺序读出或写入1.4 数字系统的进程表达 process 程序的结构表达与运算表达第一章VHDL对电路设计的基本描述VHDL进程语句的对比:always (敏感条件)begin 顺序语句end1.4 数字系统的进程表达 process process(敏感量表) 变量设置 begin 顺序语句; end process;VHD
11、LVerilog HDL程序的结构表达与运算表达第一章VHDL对电路设计的基本描述VHDL进程语句的对比:module port设置 wire设置always外赋值 reg设置always中赋值always (敏感条件)begin 顺序语句end 1.4 数字系统的进程表达 process entity port设置architeture signal设置process(敏感量表) variable设置 begin 顺序语句;end process;VHDLVerilog HDL程序的结构表达与运算表达第一章VHDL对电路设计的基本描述VHDL赋值语句的对比:连续赋值语句 always (敏感
12、条件)begin 非阻塞赋值语句 阻塞赋值语句end1.4 数字系统的进程表达 process architeture signal赋值语句process(敏感量表) begin 信号赋值语句 变量赋值语句end process;VHDLVerilog HDL程序的结构表达与运算表达第一章VHDL对电路设计的基本描述VHDL连续赋值:独立的并行语句,为信号赋值 assign y = f (a,b,c);非阻塞赋值:always内的赋值,具有信号赋值特点,所有赋值在子程序结束时才实现 y = f (a,b,c); 阻塞赋值: always内的赋值,具有变量赋值特点,根据语句排列顺序及时实现 y
13、= f(a,b,c);1.4 数字系统的进程表达 process 赋值语句的对比:程序的结构表达与运算表达第一章VHDL对电路设计的基本描述VHDLVHDL: 使用signal和variable将硬件连接与数据存储概念明确区分,而对信号赋值的控制性则采用进程外的并行赋值和进程内的顺序赋值进行区分;Verilog HDL: 使用wire和reg将直接赋值对象与受控赋值对象区分开,而对reg则采用always内的非阻塞赋值和阻塞赋值区分其是否具有硬件连接意义;为避免驱动冲突,应谨慎使用非阻塞赋值。1.4 数字系统的进程表达 process 赋值语句的对比:程序的结构表达与运算表达第一章VHDL对电
14、路设计的基本描述VHDL 由于进程内部采用软件编程,则可以将软件语言中各种运算控制方式引入到运算的表达中: 条件分支:二分支控制 选择分支:多选择控制 循环控制:有限循环、条件循环 wait控制:条件、延时 寄存器控制:边沿检测控制进程中对运算的控制1.4 数字系统的进程表达 process 程序的结构表达与运算表达第一章VHDL对电路设计的基本描述VHDLif 布尔表达式1 then 顺序语句1 elsif 布尔表达式2 then 顺序语句2elsif 布尔表达式n then 顺序语句nelse 顺序语句(n+1)end if;条件判断语句:if-then-else 语句1.4 数字系统的进
15、程表达 process 程序的结构表达与运算表达第一章VHDL对电路设计的基本描述VHDL条件判断语句:if-then-else 语句1.4 数字系统的进程表达 process 程序的结构表达与运算表达第一章VHDL对电路设计的基本描述VHDL 每组then_else在运算流程中形成一个二分支路由判断,功能类似条件赋值语句when_else; 这种分支架构可以重叠进行,形成运算网络架构,也可以对运算进行优先排序; 当某个then表达对信号的赋值,缺少else的对应时,则表达对该信号进行寄存,可以综合形成寄存器。 条件判断语句特点1.4 数字系统的进程表达 process 程序的结构表达与运算表
16、达第一章VHDL对电路设计的基本描述VHDL例:优先编码器的表达architecture rtl of priority is begin process (a) begin if a(7)=1 then y=111; elsif a(6)=1 then y=110; elsif a(5)=1 then y=101; elsif a(4)=1 then y=100; elsif a(3)=1 then y=011; elsif a(2)=1 then y=010; elsif a(1)=1 then y=001; else y 顺序语句1;when 选择值2 = 顺序语句2;when othe
17、rs = 顺序语句3;end case;选择分支语句:case 语句1.4 数字系统的进程表达 process 程序的结构表达与运算表达第一章VHDL对电路设计的基本描述VHDL例:7段译码器architecture rtl of seg7 is begin process (a) begincase a is when 0000 =yyyy= 0000000; end case; end process; end rtl;1.4 数字系统的进程表达 process 程序的结构表达与运算表达第一章VHDL对电路设计的基本描述VHDL 采用真值表形式,直观表达输入状态与输出状态间一一对应关系,也
18、类似于多路选择器,功能类似于选择赋值语句with_select; 可以利用每个选择对应的顺序语句加入复杂的运算过程; 某些选择值可以对应null以表达不进行运算,对应真值表中的无关项; 最后一个选择一定要为when others,避免出现未作定义的漏选。选择分支语句的特点1.4 数字系统的进程表达 process 程序的结构表达与运算表达第一章VHDL对电路设计的基本描述VHDL循环语句:loop 语句 循环语句是典型的功能描述语句,用于表达某一运算功能的多次使用;在仿真中使用循环语句能够提高代码效率,但循环语句的综合通常会导致电路结构重复,复杂性急剧增加。 VHDL中的循环语句可分为:有限循
19、环、条件循环、无条件循环。1.4 数字系统的进程表达 process 程序的结构表达与运算表达第一章VHDL对电路设计的基本描述VHDL有限循环语句:for_loop 语句for 循环变量 in 范围 loop 顺序语句;end loop 编号; 循环变量为整数类型,不需要说明;范围的数据类型也必须为整数; 循环变量从范围最左边的值开始;每进行一次循环,指标右移1位;直到全部循环完毕;1.4 数字系统的进程表达 process 程序的结构表达与运算表达第一章VHDL对电路设计的基本描述VHDLwhile 布尔表达式 loop 顺序语句;end loop 编号;不指定循环次数;每次循环前检测布尔
20、表达式的值;当布尔表达式为真时,执行循环;为假时退出循环;在循环体内,应有语句能够改变布尔表达式中变量的值,避免无限循环。条件循环语句:while_loop 语句1.4 数字系统的进程表达 process 程序的结构表达与运算表达第一章VHDL对电路设计的基本描述VHDLloop 顺序语句;end loop 编号;内部设置有跳出循环的语句(next,exit);只要不满足跳出条件,就会一直循环下去;无条件循环语句:loop 语句1.4 数字系统的进程表达 process 程序的结构表达与运算表达第一章VHDL对电路设计的基本描述VHDLnext 编号 when 布尔表达式;执行到此语句时,检测
21、布尔表达式,若为true,则转为执行编号所表示的语句(跳出本循环);若为false,则继续进行循环;若没有编号,则当布尔表达式为true时,直接跳出本次循环,开始下一次循环;无条件循环语句:loop 语句1.4 数字系统的进程表达 process 程序的结构表达与运算表达第一章VHDL对电路设计的基本描述VHDLexit 编号when 布尔表达式;执行到此语句时,检测布尔表达式,若为true,则转为执行编号所表示的语句;若为false,则继续进行循环;若没有编号,则当布尔表达式为true时,直接跳出循环,执行循环之后的下一条语句;本语句可以作为中止loop的语句;无条件循环语句:loop 语句
22、1.4 数字系统的进程表达 process 程序的结构表达与运算表达第一章VHDL对电路设计的基本描述VHDLloop 语句的应用实例对数组信号进行初始化type matrix2 is array(0 to 1023,7 downto 0) of std_logic;variable w1:matrix2;-for i in 0 to 1023 loop for j in 7 downto 0 loop w(i,j) := 0; end loop;end loop;1.4 数字系统的进程表达 process 程序的结构表达与运算表达第一章VHDL对电路设计的基本描述VHDLloop 语句的应用
23、实例并入串出的64位移位寄存器设计process(clk,load) begin if load=0 then q=din; dout=0; elsif clkevent and clk=1 then for i in 1 to 63 loop q(i)=q(i-1); end loop; dout=q(63); end if; end process;1.4 数字系统的进程表达 process 程序的结构表达与运算表达第一章VHDL对电路设计的基本描述VHDL 进程中可以采用wait语句控制进程的执行;当进程中含有wait语句时,将根据wait语句的条件判断来决定进程是否继续执行; 在进程中
24、,如果使用了wait语句,就不能使用敏感表;在不含敏感表的进程中,至少应该包含一条wait语句;进程中的控制语句:wait 语句1.4 数字系统的进程表达 process 程序的结构表达与运算表达第一章VHDL对电路设计的基本描述VHDL进程中的控制语句:wait 语句wait on 信号,信号; 等待所列举信号中任何一个发生变化,再进行进程的执行;所起作用与进程的敏感信号表相同;1.4 数字系统的进程表达 process 程序的结构表达与运算表达第一章VHDL对电路设计的基本描述VHDLwait until 布尔表达式; 利用表达式建立隐含的敏感信号表;当任何一个涉及的信号发生变化时,就自动
25、检测布尔表达式是否为真;如果为真,则执行进程语句;如果为假,则不执行进程;此语句通常会综合为寄存器;进程中的控制语句:wait 语句1.4 数字系统的进程表达 process 程序的结构表达与运算表达第一章VHDL对电路设计的基本描述VHDLwait for 时间表达式; 等待由时间常量或变量组成的表达式所表达的时间到达,再执行该进程;等待期间的各种信号变化不会导致进程执行;该语句通常会导致进程周期性执行; wait for语句不能综合;通常在仿真的testbench编制时使用;进程中的控制语句:wait 语句1.4 数字系统的进程表达 process 程序的结构表达与运算表达第一章VHDL对
26、电路设计的基本描述VHDLentity clock is port ( clk: buffer bit); end clock;architecture beh of clock isbegin process begin clk=not clk; wait for 10 ns;end process; end beh;例:时钟信号发生器1.4 数字系统的进程表达 process 程序的结构表达与运算表达第一章VHDL对电路设计的基本描述VHDLVHDL中的寄存器控制描述process(clk) -只能在受时钟控制的进程中表达begin if clkevent and clk=1 -对时钟上升沿进行检测 then q= f (a,b,c); -受控的信号赋值语句 end if; -未对else进行描述,隐含信号保持 end process;1.4 数字系统的进程表达 process 程序的结构表达与运算表达第一章VHDL对电路设计的基本描述VHDLVHDL中的寄存器描述特点 寄存器描述表达的是器件的控制行为,具有仿真意义,为了提高仿真效率,表达寄存器的进程敏
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 经济法计算题题目及答案
- 医共体工作制度
- 集美疾控面试题目及答案
- 四心谈话问答题目及答案
- 养老院老人心理咨询师晋升制度
- 养老院老人入住签字制度
- 养老院老人康复设施维修人员职业发展规划制度
- 幼教绘画面试题目及答案
- 养老院老年人活动组织制度
- 大人的思考题目及答案
- 2025年上交所金融笔试题目及答案
- 服务外包人员保密管理制度(3篇)
- 2026中国电信四川公用信息产业有限责任公司社会成熟人才招聘备考题库及答案详解(夺冠系列)
- 成都高新区桂溪街道公办幼儿园招聘编外人员考试备考题库及答案解析
- 2025年医院病历管理操作规范
- 汽车后市场培训课件
- 2026云南保山电力股份有限公司校园招聘50人笔试备考题库及答案解析
- GB 4053.2-2025固定式金属梯及平台安全要求第2部分:斜梯
- 2026届上海市长宁区市级名校高一上数学期末学业质量监测模拟试题含解析
- 2026年烟草公司笔试综合试题及考点实操指引含答案
- 九年级寒假期末总结课件
评论
0/150
提交评论