- 1、本文档共119页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
EDA硬件描述语言VHDL专题
练习:用D触发器构成4位移位寄存器,用生成语句 进行设计。 LIBRARY ieee; USE ieee.std_logic_1164.ALL; ENTITY shifter IS PORT( din,clk: IN std_logic; dout: OUT std_logic); END shifter; ARCHITECTURE a OF shifter IS COMPONENT dff PORT (D,clk: IN std_logic; Q: OUT std_logic); END COMPONENT; SIGNAL d: std_logic _vector (0 TO 4); BEGIN d(0)=din; G:For i IN 0 TO 3 GENERATE U:dff PORT MAP (d(i),clk,d(i+1)); END GENERATE G; dout=d(4); END a; 生成4个相同的D触发器 This is the end of VHDL! Thank you! 例: architecture abc of example is signal c :STD_LOGIC; begin PROCESS(a,b) begin a=‘1’; b=‘1’; c=a and b after 10 ns; end process; end abc; 注意信号定义的位置 6、变量赋值语句 格式: 变量:=表达式; 注意: 变量是局部量,只能在所定义的进程、过程、和函数中使用。 变量赋值是立即发生,不能加延时。 在进程中描述逻辑关系及算法时最好使用变量,以避免出错。 进程结束时,变量的结果只能由信号带出。 例: architecture abc of example is begin PROCESS(a,b) variable tmp:std_logic; begin tmp:=a and b; out=tmp; end process; end abc; 注意变量定义的位置 二、并行语句 并行语句与一般软件程序的最大区别就是在结构体中的执行都是同时进行的,即它们的执行顺序与语法的书写顺序无关。这种并行性是由硬件本身的并行性决定的,一旦电路接通电源,各部分就会按照事先设计好的方案同时工作。 并行语句主要有进程语句(PROCESS)、块语句( BLOCK )、并行信号赋值语句、生成语句( GENERATE )、元件例化语句。 1. 进程语句 进程语句是一段复合语句,由一段程序构成,各个进程之间是并行进行的,而进程的内部语句都是顺序执行的。一个结构体中可以包括多个进程语句,多个进程之间依靠信号(SIGNAL)来传递。 进程语句 PROCESS1 PROCESSn signal signal ARCHITECTURE 一个结构体可以有多个进程语句 进程和进程之间是并行的 进程和进程之间的数据交换通过信号完成 进程内部是顺序语句 进程语句的格式如下: [标号:]PROCESS(敏感信号表) [说明语句];---------定义一些局部变量 BEGIN [顺序语句]; END PROCESS [标号:] ; 敏感信号表 进程赖以启动的敏感表。对于表中列出的任何信号的改变,都将启动进程,执行进程内相应顺序语句. 一些VHDL综合器,综合后对应进程的硬件系统对进程中的所有输入的信号都是敏感的,不论在源程序的进程中是否把所有的信号都列人敏感表中. 为了使软件仿真与综合后的硬件仿真对应起来,应当将进程中的所有输入信号都列入敏感表中. LIBRARY ieee; USE ieee.std_logic_1164.all; ENTITY if_case IS PORT ( a, b, c, d : IN Std_Logic; sel : IN Std_Logic_Vector(1 downto 0); y,z: OUT Std_Logic); END if_case; ARCHITECTURE logic OF if_case IS BEGIN if_label: PROCESS(a, b, c, d, sel) BEGIN IF sel=00 THEN y = a; ELSIF sel=01 THEN y = b; ELSIF sel=10 THEN y =
您可能关注的文档
- dlbx3-3-1 地理信息系统及其应用 - 顺德华侨中学 网站首页.ppt
- DMC合成新过程开发.ppt
- DN06-科学方法论1.ppt
- DNA分子结构与模型建构.ppt
- DNA分子结构模型的发现.ppt
- DNA-CTMA_Initial_Project_Presentation_DNA__初稿.ppt
- DNA是主要的遗传物质 .ppt
- DNA技术的发展简史.ppt
- DNA是主要的遗传物质课件何.ppt
- DNA的平面结构图.ppt
- 【NIFD季报】基本面逆转,A股再现“井喷”——2024Q3股票市场-14页.doc
- 2024绿色化工产业深度研究-可持续燃油(SAF)-23页.doc
- 新能源专刊-25页.doc
- 2024共享善治AI智绘未来金融白皮书-75页.doc
- 2023年全球自然灾害评估报告-46页.doc
- 《2024H1微博大健康行业内容生态及社交热点白皮书》-99页.doc
- 2024纺织服装行业企业ESG研究报告(纯图版)-34页.doc
- 2024备战双十一:消费者行为与品牌前瞻布局-果集-2024.8-83页.doc
- 【NIFD季报】货币政策超预期,债市回调明显——2024Q3债券市场-35页.doc
- 2024国庆假期中国住宿业经营报告-29页.doc
文档评论(0)