课件分析教案lecture_第1页
课件分析教案lecture_第2页
课件分析教案lecture_第3页
课件分析教案lecture_第4页
课件分析教案lecture_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论