EDA技术实用教程深入学习VHDL.pptx
《EDA技术实用教程深入学习VHDL.pptx》由会员分享,可在线阅读,更多相关《EDA技术实用教程深入学习VHDL.pptx(61页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、2023/3/23 P.1VHDL 与图形化输入比较与图形化输入比较易于修改功能强大可移植性更强第1页/共61页2023/3/23 P.2图形化输入 vs VHDL图形化更所见即所得VHDL 则是告诉系统要什麽功能,而编译器给出相应的硬件第2页/共61页2023/3/23 P.3学习学习 VHDL 要学习要学习组合逻辑 Combinatorial Logic时序逻辑 Sequential Logic并行语句 Concurrent Statement顺序语句 Process Statement第3页/共61页2023/3/23 P.4组合逻辑组合逻辑Combinatorial LogicComb
2、inatorial Logic if 输出是由输入决定的逻辑函数如译码器 decoders,多路开关multiplexers和加法器 adders输出随输入立即变换第4页/共61页2023/3/23 P.5时序逻辑时序逻辑Sequential Logic时序逻辑Sequential Logic输出是输入和电路原状态共同决定的函数包含寄存器如状态机.State Machine,计数器 Counters,移位寄存器Shift Register,控制器Controllers输出取决于输入和现态Register is used to hold the previous value第5页/共61页202
3、3/3/23 P.6并行语句并行语句Concurrent Statement同时并发执行与书写前后无关并行语句是:输出仅取决于输入Entity test1 IsPort(a,b:in bit;c,d:out bit);end test1;architecture test1_body of test1 isbeginc=a and b;d=a or b;end test1_body;Entity test1 IsPort(a,b:in bit;c,d:out bit);end test1;architecture test1_body of test1 isbegind=a or b;c=a
4、and b;end test1_body;并发执行与书写顺序无关输出取决于输入而没有任何条件限制第6页/共61页2023/3/23 P.7相同C=A and BD=A OR Bc=a and b;d=a or b;d=a or b;c=a and b;第7页/共61页2023/3/23 P.8Process Statement进程描述进程描述所有进程 Process 并发执行在进程描述Process中,代码按序执行进程描述是:输出取决于输入和敏感信号,共同控制事件发生。第8页/共61页2023/3/23 P.9Entity test1 isPort(clk,d1,d2:in bit;q1,q2
5、:out bit);end test1;architecture test1_body of test1 isbeginProcess(clk,d1)beginif(clkevent and clk=1)thenq1=d1;end if;end process;Process(clk,d2)beginif(clkevent and clk=1)thenq2=d2;end if;end process;end test1_body;Entity test1 isPort(clk,d1,d2:in bit;q1,q2:out bit);end test1;architecture test1_bo
6、dy of test1 isbeginProcess(clk,d2)beginif(clkevent and clk=1)thenq2=d2;end if;end process;Process(clk,d1)beginif(clkevent and clk=1)thenq1=d1;end if;end process;end test1_body;两个PROCESS并发执行在PROCESS中代码顺序执行在条件限制下输出取决于输入第9页/共61页2023/3/23 P.10两个PROCESS并发执行第10页/共61页2023/3/23 P.11How to.?组合逻辑Combinational
7、 Logic能被下面语句实现 并行赋值语句Concurrent Signal Assigment Statements单纯描述组合逻辑的Process 语句,没有任何时钟边延的约束第11页/共61页2023/3/23 P.12并行语句并行语句设计组合逻辑设计组合逻辑第12页/共61页2023/3/23 P.13并行语句并行语句Concurrent Statements分类(1)信号赋值语句Signal Assigments(2)条件赋值语句 Conditional Signal Assigments(3)选择赋值语句Selected Signal Assigments第13页/共61页2023
8、/3/23 P.14(1)信号赋值语句信号赋值语句Signal Assigment 并行运行Entity test1 isport(a,b,e:in bit;c,d:out bit);end test1;architecture test1_body of test1 isbeginc=a and b;d=e;end test1_body;第14页/共61页2023/3/23 P.15支持的逻辑支持的逻辑ANDNANDORNORXORNOTmore.第15页/共61页2023/3/23 P.16我要我要 5输入与门输入与门Entity test1 isport(a,b,c,d,e:in bit
9、;f:out bit);end test1;architecture test1_body of test1 isbeginf=a and b and c and d and e;end test1_body;第16页/共61页2023/3/23 P.17(2)条件赋值语句条件赋值语句Conditional Signal Assigments当条件成立时赋值例如选多路开关 2 to 1 multiplexerEntity test1 isport(in1,in2,sel:in bit;d:out bit);end test1;architecture test1_body of test1 i
10、sbegind=in1 when sel=0 else in2;end test1_body;第17页/共61页2023/3/23 P.18要更多要更多-4 选选1 多路开关多路开关Entity test1 isport(in1,in2,in3,in4:in bit;sel1,sel2:in bit;d:out bit);end test1;architecture test1_body of test1 isbegind=in1 when sel1=0 and sel2=0 else in2 when sel1=0 and sel2=1 else in3 when sel1=1 and se
11、l2=0 else in4;end test1_body;第18页/共61页2023/3/23 P.19(3)选择信号赋值选择信号赋值Select Signal Assignments输出随相应的选择条件被赋值Entity test1 isport(a,b:in bit;sel :in bit;c:out bit);end test1;architecture test1_body of test1 isbeginwith sel select c=a when 1,b when 0;end test1_body;第19页/共61页2023/3/23 P.20想要更多想要更多If I want
12、 more choice-It is easyEntity test1 isport(in1,in2,in3,in4:in bit;sel :in integer;out1:out bit);end test1;architecture test1_body of test1 isbeginwith sel select out1=in1 when 0,in2 when 1,in3 when 2,in4 when 3;end test1_body;第20页/共61页2023/3/23 P.21练习练习将图形转化为 VHDL第21页/共61页2023/3/23 P.22设计要求设计要求用 WHE
13、N-ELSE实现100010001other第22页/共61页2023/3/23 P.23示例示例Entity test1 isport(high,medium,low:in bit;highest_level3,highest_level2:out bit;highest_level1,highest_level0:out bit);end test1;architecture test1_body of test1 isbeginhighest_level3=1 when high=1 and medium=0 and low=0 else 0;highest_level2=1 when
14、high=0 and medium=1 and low=0 else 0;highest_level1=1 when high=0 and medium=0 and low=1 else 0;highest_level0=0 when high=1 and medium=0 and low=0 else 0 when high=0 and medium=1 and low=0 else 0 when high=0 and medium=0 and low=1 else 1;end test1_body;第23页/共61页2023/3/23 P.24仿真仿真第24页/共61页2023/3/23
15、P.25用用Process 语句语句设计组合电路设计组合电路第25页/共61页2023/3/23 P.26进程语句进程语句Process Statement规则 Process中语句顺序执行所有 Process 必须有敏感信号表 SENITIVITY LIST一旦敏感信号变了,触发Process运行除非有Wait语句第26页/共61页2023/3/23 P.27第27页/共61页2023/3/23 P.28模板模板 Process Statement用敏感信号表“SENSITIVITY LISTSENSITIVITY LIST”name:PROCESS(sensitivity_list)beg
16、in sequential statement#1 sequential statement#2 .sequential statement#NEND PROCESS name;通用写法Process()begin.end process敏感信号表顺序执行语句名称可选第28页/共61页2023/3/23 P.29举例举例Entity test1 isport(a,b,sel1,sel2:in bit;result:out bit);end test1;architecture test1_body of test1 isbeginprocess(sel1,sel2,a,b)beginif(se
17、l1=1)thenresult=a;elsif(sel2=1)thenresult=b;elseresult=0;end if;end process;end test1_body;输出随 sel1,sel2,a 或 b 变化而变化等一下:我可以用并行语句完成第29页/共61页2023/3/23 P.30Entity test1 isport(a,b,sel1,sel2:in bit;result:out bit);end test1;architecture test1_body of test1 isbeginresult=a when sel1=1 else b when sel2=1
18、else 0;end test1_body;Entity test1 isport(a,b,sel1,sel2:in bit;result:out bit);end test1;architecture test1_body of test1 isbeginprocess(sel1,sel2,a,b)beginif(sel1=1)thenresult=a;elsif(sel2=1)thenresult=b;elseresult=0;end if;end process;end test1_body;同样功能,不同实现方式Concurrent StatementProcess Statement
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EDA 技术 实用教程 深入 学习 VHDL
限制150内