版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、ENTITY function1 ISPORT (C, x, y: IN STD_LOGIC; s, p : OUT STD_LOGIC ) ;END function1 ;ARCHITECTURE abc OF function1 ISBEGINs = x XOR y XOR C ;p = (x AND y) OR (C AND x) OR (C AND y) ;END abc Draw the gate level diagram.Rewrite P and S using with-select constructCan you guess what this function is?
2、LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY 1_bit_notareg IS PORT ( clk: IN STD_LOGIC; - Clock/enable signal din: IN STD_LOGIC);-1-bit input dout: OUT STD_LOGIC) -1-bit output );END 1_bit_notareg;ARCHITECTURE RTL OF 1_bit_notareg ISBEGINPROCESS (din,clk) BEGINIF (clk=1) THEN dout=din;ELSE dout =
3、0;END IF;END PROCESS;END RTLLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY latch IS PORT ( clk: IN STD_LOGIC; - Clock/enable signal din: IN STD_LOGIC);-1-bit input dout: OUT STD_LOGIC) -1-bit output );END latch;ARCHITECTURE RTL OF latch ISBEGINPROCESS (din,clk) BEGINIF (clk=1) THEN dout=din;ELSE do
4、ut =0;END IF;END PROCESS;END RTLLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY flipflop IS PORT ( clk: IN STD_LOGIC; - Clock/enable signal din: IN STD_LOGIC);-1-bit input dout: OUT STD_LOGIC) -1-bit output );END flipflop;ARCHITECTURE RTL OF flipflop ISBEGINPROCESS (din,clk) BEGINIF (clkEVENT AND cl
5、k=1) THEN dout=din;END IF;END PROCESS;END RTLLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY 1_bit_reg IS PORT ( clr: IN STD_LOGIC; - asynchronous reset clk: IN STD_LOGIC; - Clock signal din: IN STD_LOGIC);-1-bit input dout: OUT STD_LOGIC) -1-bit output );END 1_bit_reg;ARCHITECTURE RTL OF 1_bit_reg
6、ISBEGINPROCESS (clr, clk) BEGIN IF (clr=1) THEN dout = 0; -active high clear ELSIF (clkEVENT AND clk=1) THEN dout=din; -positive edge trigger END IF;END PROCESS;END RTLLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY 1_bit_reg IS PORT ( clr: IN STD_LOGIC; - asynchronous reset clk: IN STD_LOGIC; - Clo
7、ck signal din: IN STD_LOGIC);-1-bit input dout: OUT STD_LOGIC) -1-bit output );END 1_bit_reg;ARCHITECTURE RTL OF 1_bit_reg ISBEGINPROCESS (clr, clk) BEGIN IF (clkEVENT AND clk=1) then IF (clr=0) THEN dout = 0; ELSE dout=din; END IF; END IF;END PROCESS;END RTLSignal Models a physical wire If not init
8、ialized, default value is the left-most value of its type Ports are signals “=“ is used for signal assignment “event” attribute detects change in signal (high to low or low to high) Some Predefined VHDL Data Types Bit:0 or 1 Boolean: FALSE or TRUE std_logic and std_logic_vector Integer: range -(2-31
9、-1) to +(2+31-1)LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY 4_bit_reg ISPORT ( clr: IN STD_LOGIC; - asynchronous reset clk: IN STD_LOGIC; - clock din: IN STD_LOGIC_VECTOR(3 DOWNTO 0);-4-bit input dout: OUT STD_LOGIC_VECTOR(3 DOWNTO 0) -4-bit output );END 4_bit_reg;ARCHITECTURE RTL OF 4_bit_reg I
10、SBEGINPROCESS (clr, clk) BEGIN IF (clr=0) THEN dout = 0; ELSIF (clkEVENT AND clk=1) THEN dout=din; END IF;END PROCESS;END RTLLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY 4_bit_reg IS PORT ( clr: IN STD_LOGIC; - asynchronous reset clk: IN STD_LOGIC; - Clock signal din: IN STD_LOGIC_VECTOR(3 DOWNTO
11、 0);-1-bit input dout: OUT STD_LOGIC_VECTOR(3 DOWNTO 0) -1-bit output );END 4_bit_reg;ARCHITECTURE RTL OF 4_bit_reg ISBEGINPROCESS (clr, clk) BEGIN IF (clkEVENT AND clk=1) then IF (clr=0) THEN dout = 0; ELSE dout=din; END IF; END IF;END PROCESS;END RTLLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY
12、32_bit_reg IS PORT ( clr: IN STD_LOGIC; - asynchronous reset clk: IN STD_LOGIC; - Clock signal din: IN STD_LOGIC_VECTOR(31 DOWNTO 0);-32-bit input dout: OUT STD_LOGIC_VECTOR(31 DOWNTO 0) -32-bit output );END 32_bit_reg;ARCHITECTURE RTL OF 32_bit_reg ISBEGINPROCESS (clr, clk) BEGIN IF (clr=0) THEN do
13、ut = 0; ELSIF (clkEVENT AND clk=1) THEN dout=din; END IF;END PROCESS;END RTL32_bit_regLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY 32_bit_reg IS PORT ( clr: IN STD_LOGIC; - asynchronous reset clk: IN STD_LOGIC; - Clock signal din: IN STD_LOGIC_VECTOR(31 DOWNTO 0);-1-bit input dout: OUT STD_LOGIC_
14、VECTOR(31 DOWNTO 0) -1-bit output );END 32_bit_reg;ARCHITECTURE RTL OF 32_bit_reg ISBEGINPROCESS (clr, clk) BEGIN IF (clkEVENT AND clk=1) then IF (clr=0) THEN dout = 0; ELSE dout=din; END IF; END IF;END PROCESS;END RTLSimple functionAnd its InverseLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.ST
15、D_LOGIC_UNSIGNED.ALL; -use CONV_INTEGERENTITY rc5_enc IS PORT ( clr: IN STD_LOGIC; - asynchronous reset clk: IN STD_LOGIC; - Clock signal din: IN STD_LOGIC_VECTOR(63 DOWNTO 0);-64-bit input dout: OUT STD_LOGIC_VECTOR(63 DOWNTO 0) -64-bit output );END rc5_enc;a_regb_reg+S2i_cntSkey ROMaddress532How a
16、re the addresses generated?ab_reg+S2i_cnt+1Skey ROMaddress532How are the addresses generated?a_regb_reg+S2i_cnt+S2i_cnt+1Skey ROMSkey ROMaddress532address532How are the addresses generated?ARCHITECTURE rtl OF rc5_enc IS -round counter SIGNAL i_cnt: STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL ab_xor: STD_LO
17、GIC_VECTOR(31 DOWNTO 0); SIGNAL a_rot: STD_LOGIC_VECTOR(31 DOWNTO 0); SIGNAL a: STD_LOGIC_VECTOR(31 DOWNTO 0); -register to store value A SIGNAL a_reg: STD_LOGIC_VECTOR(31 DOWNTO 0); SIGNAL ba_xor: STD_LOGIC_VECTOR(31 DOWNTO 0); SIGNAL b_rot: STD_LOGIC_VECTOR(31 DOWNTO 0); SIGNAL b: STD_LOGIC_VECTOR
18、(31 DOWNTO 0); -register to store value B SIGNAL b_reg: STD_LOGIC_VECTOR(31 DOWNTO 0); Skey ROM5-bit address32-bit dataa_regb_reg+S2i_cntSkey ROMaddress532How are the addresses generated?a_regb_reg+S2i_cnt+1Skey ROMaddress532How are the addresses generated?aa_regb_reg+S2i_cnt+S2i_cnt+1Skey ROMSkey R
19、OMaddress532address532How are the addresses generated?A=(A XOR B)B) + S2iBEGIN - A=(A XOR B)B) + S2 i; ab_xor = a_reg XOR b_reg; WITH b_reg(4 DOWNTO 0) SELECT a_rot=ab_xor(30 DOWNTO 0) & ab_xor(31) WHEN 00001, ab_xor WHEN OTHERS; a=a_rot + skey(CONV_INTEGER(i_cnt & 0); -S2 iWe discussed this
20、 in previous lecture and was part of your homework!B=(B XOR A)A) + S2i+1)ba_xor = b_reg XOR a; WITH a(4 DOWNTO 0) SELECT b_rot=ba_xor(30 DOWNTO 0) & ba_xor(31) WHEN 00001, . ba_xor WHEN OTHERS; b=b_rot+skey(CONV_INTEGER(i_cnt & 1);-S2 i+1Modify the model in exercise 2 homework 1 !- a_regPROC
21、ESS(clr, clk) BEGIN IF(clr=0) THEN a_reg = din(63 DOWNTO 32); ELSIF(clkEVENT AND clk=1) THEN a_reg=a; END IF;END PROCESS;CLRdin32a0clkCLRdin33a1clkCLRdin63a31clk- b_reg PROCESS(clr, clk) BEGIN IF(clr=0) THEN b_reg=din(31 DOWNTO 0); ELSIF(clkEVENT AND clk=1) THEN b_reg=b; END IF; END PROCESS; CLRdin0
22、b0clkCLRdin1b1clkCLRdin31b31clkPROCESS(clr, clk) BEGIN IF(clr=0) THEN i_cnt=0001; ELSIF(clkEVENT AND clk=1) THEN IF(i_cnt=1100) THEN i_cnt=0001; ELSE i_cnt=i_cnt+1; END IF; END IF;END PROCESS;4-bit counterclrclki_cntdout=a_reg & b_reg;END rtl;LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITY leftrot
23、ate IS PORT (a: in STD_LOGIC_VECTOR(31 DOWNTO 0); b: in STD_LOGIC_VECTOR(31 DOWNTO 0); skey: out STD_LOGIC_VECTOR(31 DOWNTO 0); o: out STD_LOGIC_VECTOR(31 DOWNTO 0);END leftrotate;ARCHITECTURE rtl OF leftrotate ISSIGNAL ab_xor: STD_LOGIC_VECTOR(31 DOWNTO 0);SIGNAL ab_rot: STD_LOGIC_VECTOR(31 DOWNTO
24、0);BEGINab_xor ab_rot ab_rot ab_rot ab_rot ab_rot ab_rot ab_rot ab_rot ab_rot ab_rot ab_rot ab_rot ab_rot ab_rot ab_rot ab_rotab_rotab_rotab_rotab_rotab_rotab_rotab_rotab_rotab_rotab_rotab_rotab_rotab_rotab_rotab_rotab_rot=ab_xor;END CASE;END PROCESS;O =ab_rot+skeyEND rtl;library IEEE;use IEEE.STD_L
25、OGIC_1164.ALL; entity syn_count4 isport (clk: in std_logic; reset: in std_logic; counter: out std_logic_vector(3 downto 0);end syn_count4;architecture do_it of synch_count4 isSignal i_cnt: unsigned (3 downto 0);BeginPROCESS(clr, clk) BEGIN IF(clr=0) THEN i_cnt=0011; ELSIF(clkEVENT AND clk=1) THEN IF
26、(i_cnt=1101) THEN i_cnt=0011; ELSE i_cnt=i_cnt+1; END IF; END IF;END PROCESS;End do_it;4-bit counterclrclkcounterlibrary IEEE;use IEEE.STD_LOGIC_1164.ALL; entity syn_count4 is port (clk: in std_logic; reset: in std_logic; counter: out std_logic_vector(3 downto 0);end syn_count4;architecture do_it of
27、 synch_count4 isSignal i_cnt: unsigned (3 downto 0);BeginPROCESS(clr, clk) BEGIN IF(clr=0) THEN i_cnt=”1011”; ELSIF (clkEVENT AND clk=1) THEN IF (_icnt=”0000) THEN i_cnt=“1011; ELSE i_cnt=i_cnt-1; END IF; END IF;END PROCESS;counter = std_logic_vector(i_cnt);End do_it;4-bit counterclrclkcounterLIBRAR
28、Y IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL; -use CONV_INTEGERENTITY 16x4ROM IS PORT (clk: IN STD_LOGIC; - Clock signaladdr: IN STD_LOGIC_VECTOR(3DOWNTO 0);-4-bit addressdata: OUT STD_LOGIC_VECTOR (3 DOWNTO 0); -4-bit outputEND 16x4ROM;ARCHITECTURE RTL OF 16x4ROM ISTYPE MARRAY
29、 IS ARRAY (0 TO 15) OF STD_LOGIC_VECTOR(3DOWNTO 0);BEGIN PROCESS(clk) BEGINIF(clkEVENT AND clk=1) THEN data = rom(CONV_INTEGER(addr); END IF;END PROCESS;END RTL;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL; -use CONV_INTEGERENTITY 16x4ROM IS PORT (clk: IN STD_LOGIC; - Clock signaladdr: IN STD_LOGIC_VECTOR(3DOWNTO 0);-4-bit addressdata: OUT STD_LOGIC_VECTOR (3 DOWNTO 0); -4-bit data output);END 16x4ROM;ARCHITECTURE RTL OF 16x4ROM ISTYPE MARRAY IS ARRAY (0 TO 15) OF STD_LOGIC_VECTOR(3DOWNTO 0);BEGIN PROCESS(clk) B
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 市场调查方法与技术(第5版) 课件 第十章 定量调查资料的(二)
- 光学知识复习中的实验研究方法
- 中考英语复习第12讲 用所给单词适当形式填空(课件)
- 某基金启动综合晚会 京剧 歌曲 杂技等节目串词
- 2024届黄山市重点中学高考语文押题试卷含解析
- 押广东深圳卷第6-10题(平行线求角、列方程、三角函数、四边形、函数图象)(解析版)-备战2024年中考数学
- 精.华面膜全球市场分析:规模、领先厂商及增长动力
- 历史开裂处的个人叙述城乡间的女性与当代文学中个人意识的悖论
- 重症肝炎感染的特征与抗微生物治疗策略课件
- 水平管内气液两相流流型数值模拟与实验研究
- 2024年云南省昆明市盘龙区人民检察院招聘合同制书记员22人历年高频考题难、易错点模拟试题(共500题)附带答案详解
- 线性代数智慧树知到期末考试答案章节答案2024年南京理工大学
- 2024年安徽水安建设集团股份限公司秋季校园招聘235人公开引进高层次人才和急需紧缺人才笔试参考题库(共500题)答案详解版
- 幼儿园教师表格培训
- 二面角问题求解方法大全
- 客至-(杜甫)ppt课件
- 房地产经纪机构备案申请表
- 第二章光化学烟雾.ppt
- 地质填图具体工作方法和技术要求内容
- 铁路助理值班员见习总结.doc
- 管状电机使用说明书.docx
评论
0/150
提交评论