




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 辅仁高中数学试卷
- 福建8年级下数学试卷
- 定南中学高考数学试卷
- 福建龙岩中学生数学试卷
- 复旦大学招生数学试卷
- 肝功能不全的急诊抢救措施
- 2025至2030唇蜜行业市场深度研究与战略咨询分析报告
- 基础心理学:了解人类行为与心理的基本原理
- 2025至2030乘用车语音识别行业市场深度研究与战略咨询分析报告
- 北京省考2024行测真题及答案
- DB23-T 3336-2022悬挂式单轨交通技术标准-(高清最新)
- 服刑人员心理健康教育课件
- 湖南省长郡中学“澄池”杯数学竞赛初赛试题(扫描版含答案)
- DB32-T 2665-2014机动车维修费用结算规范-(高清现行)
- 外协(外委)单位作业安全管理制度(附安全告知书)
- 消防系统施工总进度计划
- 【专项训练】初二数学-全等三角形的综合应用
- 2022年广东省中山市纪念中学三鑫双语学校小升初数学试卷
- (完整版)《市场营销学》说课课件
- JJG30-2012通用卡尺检定规程
- 建设项目使用林地恢复林业生产条件方案
评论
0/150
提交评论