已阅读5页,还剩150页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
组成原理课程设计 何辉 目录 Verilog语言简介MIPS处理器简介MIPSprocesser实例分析实例仿真演示 Verilog简介 VerilogHDL语言的描述层次 开发流程 VerilogHDL程序结构 modulemodule name port list 声明各种变量 信号reg 寄存器wire 线网parameter 参数input 输入信号output 输出信号inout 输入输出信号function 函数task 任务 程序代码initialassignmentalwaysassignmentmoduleassignmentgateassignmentUDPassignmentcontinousassignmentendmodule 3 8译码器示例 moduledecoder3to8 din dout input 2 0 din output 7 0 dout reg 7 0 dout always din begincase din 3 b000 dout 8 b00000001 3 b001 dout 8 b00000010 3 b010 dout 8 b00000100 3 b011 dout 8 b00001000 3 b100 dout 8 b00010000 3 b101 dout 8 b00100000 3 b110 dout 8 b01000000 3 b111 dout 8 b10000000 endcaseendendmodule 层次化设计 模块化分模块 分层次地进行设计描述模块例化将已存在的VerilogHDL模块作为当前设计的一个组件位置映射法 信号名映射法以及二者的混合映射法 层次化设计 位置映射法模块名例化名 端口1信号名 端口2信号名 端口3信号名 modulecompare core result a b input 7 0 a b outputresult assignresult a b 1 0 endmodule modulecompare app0 result0 a0 b0 result1 a1 b1 input 7 0 a0 b0 a1 b1 outputresult0 result1 compare coreinst compare core0 result0 a0 b0 compare coreinst compare core1 result1 a1 b1 endmodule 描述形式 1结构描述形式 描述形式 门类型 输出 输入1 输入N 例如 nandna01 na out a b c 描述形式 2行为描述形式1 语句块begin end fork join之间 always aorb begin adder1 adder1为语句块说明语句c a b end 描述形式 1 语句块A串行begin end示例 reg 7 0 r begin 由一系列延迟产生的波形r 8 h35 语句1r 8 hE2 语句2r 8 h00 语句3r 8 hF7 语句4end 描述形式 1 语句块B并行fork join示例 reg 7 0 r1 r2 r3 r4 forkr1 h35 语句1r2 hE2 语句2r3 h00 语句3r4 hF7 语句4join 描述形式 2 过程结构initial模块always模块任务 task 模块函数 function 模块 描述形式 Ainitial模块面向仿真 不可综合initialbegin fork块内变量说明时序控制1行为语句1 时序控制n行为语句n end join 描述形式 initialbeginclk 0 ar 0 ai 0 br 0 bi 0 100 ar 20 ai 10 br 10 bi 10 end 描述形式 Balways模块always 敏感事件列表 begin fork块内变量说明时序控制1行为语句1 时序控制n行为语句n end join 描述形式 moduleand3 f a b c inputa b c outputf regf always aorborc beginf aendendmodule 描述形式 C时序控制延迟控制不可综合事件控制可综合 电平控制 边沿触发 D流控制assignL s R s 示例 modulemlshift2 a b inputa outputb assignb a 2 endmodule 描述形式 3 混合设计模式 modulehunhe demo A B C inputA B outputC wireT andA1 T A B assignC T endmodule Verilog简介 2 数据类型 连线Wire 组合逻辑信号寄存器Reg 寄存器类型信号 常量 常量 声明数据位数及数值Forexample 4 b0100 4位2进制数据为 0100 24 d4 数值 VerilogWire和Reg类型信号的取值通常有0or1 表示逻辑的真或假x 不确定z 高阻状态 操作类型 Verilog提供了一元二进制运算操作符算术运算 逻辑运算 比较 移位 条件运算符condition expr1 expr2条件为真返回expr1 为假返回expr2 程序结构 包含一个或多个模块modules每个模块都有自己输入和输出端口ports每个模块可以声明自己的变量variables 模块的主体描述包括初始化 用来初始化寄存器变量初值持续赋值 用于组合逻辑描述always 顺序逻辑或组合逻辑例化其他模块instances 模块调用 持续分配举例 半加器 modulehalf adder A B Sum Carry inputA B outputSum Carry assignSum A B assignCarry Aendmodule assign 持续赋值 输入变化时输出马上变化Wires只能用持续赋值方式赋值 Always语句 moduletwo one Selector A B Sel O inputA B Sel outputregO always A B Sel if Sel 0 O A elseO B endmodule Always语句 always A B Sel 敏感信号列表不是一个功能调用始终注意自己要描述的硬件的行为 用来告诉Verilog需要用什么样的门电路来实现 只有寄存器变量regvariables可以在Always语句里面赋值如果希望用always语句描述组合逻辑 一定小心不要把reg变量综合成一个寄存器 Always语句 reg变量赋值的方式 阻塞式赋值赋值语句按顺序执行 非阻塞式赋值 所有赋值同时执行 ASampleVerilogcode modulehalf adder A B Sum Carry inputA B outputSum Carry assignSum A B assignCarry Aendmodule modulehalf adder test bench wireA B S C Sel O regosc initialbeginosc 0 Endalwaysbegin 10osc osc EndassignA 1 assignB 0 assignSel osc half adderA1 A B S C two one SelectorS1 A B Sel O endmodule One bitFullAdder modulefull adder A B Cin Sum Cout inputA B Cin outputSum Cout assignSum Aendmodule Four bitAdder modulefour bit adder A B Cin Sum Cout input 3 0 A input 3 0 B inputCin output 3 0 Sum outputCout wireC0 C1 C2 full adderFA1 A 0 B 0 Cin Sum 0 C0 full adderFA2 A 1 B 1 C0 Sum 1 C1 full adderFA3 A 2 B 2 C1 Sum 2 C2 full adderFA4 A 3 B 3 C2 Sum 3 Cout endmodule Verilog寄存器和计数器描述 寄存器 寄存器类型是通过寄存器实现 不是存储器D寄存器至少两个输入 Dandclk输出Q每个clk的上升沿 Q D除clk上升沿的其他时刻保持数据 D寄存器 moduleDff D clk Q inputD clk outputregQ always posedgeclk beginQ D endendmodule 延迟 实际电路由于充放电有一定的延迟门电路的输入变化 输出的变化有一定的延迟 通常是ns级 A B output 延迟 AmorerealisticDflip flop moduleDff1 D clk Q Qbar inputD clk outputregQ Qbar initialbeginQ 0 Qbar 1 endalways posedgeclk begin 1Q D 1Qbar Q endendmodule 3位计数器 3位计数器 每个时钟上升沿加10 1 2 7 0 通过D寄存器及其他组合逻辑实现 Anysuggestions 需要几个D寄存器 如何控制D寄存器实现这个功能 设计思路 输出位可以一位一位处理最简单的 最后一位如何处理 只需要处理D寄存器的D输入端 clk连接到 trueclk 即可硬件设计 注意时钟信号 确保没有毛刺或其他问题 状态states 计数器有8个 states 0到7 每个时钟上升沿发生变化状态的值由当前Q值确定 下一个状态的值由当前状态确定 D触发器 如何从当前状态转换成下一个状态 给D端赋值D nextQ D触发器 关键问题 D的取值跟Q的值有关 D2 D1 D0是 Q2 Q1和Q0 的函数D0 Q0 其他两位 D1 Basedonthetruthtable 00 01 11 10 0 1 Q2Q1 Q0 So D1 Q1 Q0 Q1 Q0 Q1 Q0 D2 Basedonthetruthtable 00 01 11 10 0 1 Q2Q1 Q0 So D2 Q2 Q1 Q2 Q0 Q2 Q1 Q0 Load装载 如果我们需要对寄存器赋值计数器就需要 load 信号 L 输入 当load 1 下一个时钟 Q L 如何实现 在每个D输入端前使用2 1选择器 DL通过load信号来选择 另一个个状态表 Howtoimplementa counter whichwillcountas0 2 3 1 4 5 7 6 0 2 3 Verilog有限状态机 偶校验 设计一个偶检验电路一个输入X一个输出OutX可能在每个时钟下降沿发生变化一次 电路在每个时钟上升沿采样当读到所有的位包含偶数个1输出Out 1否则输出Out 0 偶校验 注意 输出的值跟所有过去的输入值有关一种方案 记录所有输入的值显然是个非常糟糕的方案 偶校验 较好的解决方案 总结过去的值 状态 states 知道当前的状态 输出的状态就可以确定给出当前的状态 下一个状态不依赖于之前的状态注意 状态都是2进制数值 状态数量远小于输入的组合 更好的电路 与计数器的不同 Counters也有状态Forexample 3 bitcountersare0 1 2 7Counters只有clk输入而且只被clk驱动 知道当前状态就可以确定下个状态 而这个偶校验的例子下一个状态还与输入X有关 状态 Findingoutwhatthestatesshouldbeisabitofart Problemsaredifferent sothesolutionsarealsodifferent Experiencewillhelp Whatthestatesoftheparitycheckingcircuitshouldbe 状态 本例的state是读取的所有为的偶检验状态 Twostates S0andS1 S0 这些位有奇数个1 S1 这些位有偶数个1 状态转换图 状态转换图每个状态上画一个圆圈画出从一个状态到另一个状态的箭头在箭头旁边 协商状态转换的条件 S0 S1 X 1 X 0 X 1 X 0 X 1 X 0 状态分配 需要给这些状态分配二进制数值 本例只需要1位LetS0 0 S1 1 下一个状态真值表 D Q X 输出逻辑 电路需要确定输出的逻辑 显然Out Q 另一个有限状态机例子顺序检测 一个输入X 一个输出O X可能在每个时钟下降沿变化 电路在每个时钟上升沿采样输入X 当检测到最后3位数据位101输出O为1 方案 如何记忆先前的数据 我们需要记忆什么样状态 方案 或许我们可以用3个Dffs如果Q2Q1Q0 101 输出O 1我们需要记录8个状态 有没有更好的设计 应该记录怎样的片段 4状态 S0 没有收到有效信息 初始状态S1 收到1 S2 收到10 S3 收到101 S0 S1 X 1 X 0 S2 S3 X 0 X 0 X 0 X 0 X 1 X 1 X 1 X 1 States赋值 S0 00S1 01S2 10S3 11 NextStateFunction D1 Q0 X Q1 Q0 X D0 X Clearly O Q1 Q0 组合电路和顺序电路 组合电路可以完全用真值表描述 顺序系统的行为依赖于系统当前状态以及输入 不能用真值表描述 有限状态机 Clockcycle 有限状态机 有限状态机是一系列状态的集合 并有两种功能 下状态功能和输出功能状态集合时内部存储单元所有变化的组合如果有n位的存储单元 则有2n可能状态下状态功能是给定输入和当前状态确定下一个状态的组合逻辑功能 11 10 200711 52 10AM 70 有限状态机 输出功能依据当前状态和输入信号输出一系列信号 有两类有限状态机Moore状态机 输出仅与当前状态有关Mealy状态机 输出与当前状态和输入都有关 11 10 200711 52 34AM 71 实现一个有限状态机 11 10 200711 55 38AM 72 Currentstate Implementtransitionfunctions Inputs Outputs Nextstate 智能交通控制 南北和东西路口的交通控制考虑只有绿灯和红灯每个方向的灯最少30s变化一次采用0 033hz时钟 11 10 200711 53 59AM 73 智能交通控制 输出信号有两个NSlite 该信号有效时 南北方向的灯为绿灯 否则为红灯 EWlite 该信号有效时 东西方向的灯为绿灯 否则为红灯 11 10 200711 54 14AM 74 智能交通控制 输入也有两个NScar 南北方向的道路上至少有一辆车EWcar 东西方向的道路上至少有一辆车 11 10 200711 54 22AM 75 智能交通控制 交通灯方向切换只有在另一个方向上有车等待时才发生 否则 该方向的灯持续绿灯 11 10 200711 54 32AM 76 智能交通控制 我们需要两个状态NSgreen 南北方向绿灯EWgreen 东西方向绿灯 11 10 200711 54 40AM 77 NextStateFunctionandOutputFunction 11 10 200711 54 47AM 78 状态声明 Inthiscase wecanassignNSgreentostate0andEWgreentostate1Thereforeweonlyneed1bitinthestateregister 11 10 200711 55 05AM 79 CombinationalLogicforNextStateFunction 11 10 200711 55 12AM 80 智能交通控制的实现 11 15 20072 38 31PM 81 创建有限状态机的四个步骤 Step1 状态图和状态表没有固定的过程和图表 与应用有关 选择刚上电开始的起始状态状态图必须能够用表格或真值表描述 11 15 20072 38 32PM 82 创建有限状态机的四个步骤 Step2 状态赋值每个状态分配一个唯一的二进制数值用分配的数值重写状态表Step3 下状态以及输出的逻辑描述Step4 实现 11 15 20072 38 32PM 83 有限状态机 状态在时钟上升沿更新下状态每个时钟计算一次 MIPSProcessor实例分析 CS EE3710 BasedonMIPS Infact it sbasedonthemulti cycleMIPSfromPattersonandHennessy8 bitversion8 bitdataandaddress32 bitinstructionformat8registersnumbered 0 7 0ishardwiredtothevalue0 CS EE3710 InstructionSet CS EE3710 InstructionEncoding CS EE3710 FibonacciC Code CS EE3710 FibonacciC Code Cycle1 f1 1 1 0 f2 0 1 1Cycle2 f1 0 1 1 f2 1 1 0Cycle3 f1 1 0 1 f2 1 0 1Cycle4 f1 1 1 2 f2 2 1 1Cycle5 f1 2 1 3 f2 3 1 2Cycle6 f1 3 2 5 f2 5 2 3 CS EE3710 FibonacciAssemblyCode Compute8thFibonaccinumber 8 d13or8 h0D Storethatnumberinmemorylocation255 CS EE3710 FibonacciMachineCode 101000 4 AssemblyCode MachineCode CS EE3710 Architecture 补充内容 MIPSProcessor RegistersinMIPS InMIPS thereare32Registers Weneedreaduptotworegisters andwritetouptooneregister ThinkregistersasDflip flops Eachregisterhas32Dffs Thecontrolsignalsare readReg1 readReg2 5bits Usedtospecifywhichregtoread writeReg 5 bits Usedtospecifywhichregtowrite Data ifwrite whatdatashouldbewrittenintothereg RegWrite whethertowriteornot Thisisforread Thedataisconnectedtoeveryregister UsewriteReg generatea LOAD signalfortheregisteryouwanttowriteto EveryregisterhasaLOADsignal Ifthatsignalis 1 newdatawillbeset Onlythetargetregister sLOADsignalis 1 Towritetoaregister 11 8 200710 04 17AM week11 5 ppt 98 ARAMExample RAM Controlsignals address Ifwrite whichlocationtowriteto Ifread whichlocationtoreadfrom Chipselect whethertousethischipornot Outputenable whethertoenableoutput outputsomevoltageorinhigh impedencestate Writeenable whethertoreadorwrite Din ifwrite whatdatashouldbewrittenintothelocationspecifiedbyaddress AssumethatthereisaRAMwithonly2addresslinesandtwobitdatalines Howmanybitscanithold Theprocessor Wenowknowallthepartsintheprocessor ALUPCRegisterfileAlsoRAMHowtoputthemtogether Howtomakethemexecuteaninstructionasweneed ALU Theexecutionofaninstruction FirstweneedtofetchtheinstructionattheaddressgivenbythecurrentPCfrominstructionmemoryThenweneedtodecodetheinstructionBasedontheinstruction weneedtodoaccordinglyForsequentialinstructions wethengothenextinstructionbyincreasingthePC Forjumpandbranchinstructions PCwillbechanged 11 18 20077 39 36PM week13 1 ppt 102 BasicMIPSImplementation WewillfocusondesignofabasicMIPSprocessorthatincludesasubsetofthecoreMIPSinstructionsetThearithmetic logicinstructionsadd sub and or andsltThememory referenceinstructionsloadwordandstorewordTheinstructionsbranchequalandjump 11 18 20077 39 36PM week13 1 ppt 103 MIPSImplementationOverview Foreveryinstruction thefirsttwostepsareidenticalFetchtheinstructionfromthememoryaccordingtothevalueoftheprogramcounterReadoneortworegisters usingfieldsofinstructionstoselecttheregisters Forloadword weneedtoreadonlyoneregisterMostotherinstructions exceptjump requirewereadtworegistersAfterthetwosteps theactionsrequireddependontheinstructionsHowever theactionsaresimilar 11 18 20077 39 38PM week13 1 ppt 104 InstructionFetchandPCIncrement Sinceforeveryinstruction thefirststepistofetchtheinstructionfrommemoryInaddition formostinstructions thenextinstructionwillbeatPC 4 11 18 20077 39 38PM week13 1 ppt 105 R typeInstructions Alsocalledarithmetic logicalinstructionsIncludingadd sub and or andsltEachonereadsfromtworegisters performsanarithmeticorlogicaloperationontheregisters andthenwritetheresulttoaregister 11 15 20075 02 08PM week 13 3 ppt 106 R typeInstructions Supposetheinstructionisadd t0 t1 t2 whatarethereadreg1 readreg2 andwritereg WhatisthevalueofRegWrite HowtocontroltheALUtodoadd DatapathonlyforR typeinstructions Answer 11 15 20075 02 10PM week 13 3 ppt 108 DataTransferInstructions Loadwordandstorewordinstructionshavethefollowinggeneralformlw rt offset value rs opcode 6bits rs 5bits rt 5bits offset 16bits sw rt offset value rs opcode 6bits rs 5bits rt 5bits offset 16bits Theyneedtocomputeamemoryaddressbyaddingthebaseregistertothesign extended16 bitoffset Load Forinstructionload t0 16 t1 whatshouldthecontrolsignalbe Datapathonlyforlw answer Datapathonlyforsw answer Datapathonlyforlwandsw answer 11 18 20077 39 42PM week13 1 ppt 113 BranchInstruction Beqhasthreeoperands tworegistersthatarecomparedforequalityanda16 bitoffsetusedtocomputethebranch targetaddressbeq rs rt offsetopcode 6bits rs 5bits rt 5bits offset 16bits Notethatthe16 bitoffsetisgivenintermsofinstructions notbytesandisrelativetoPC 4 11 18 20077 39 43PM week13 1 ppt 114 Designingaprocessoronlyforbeq answer MIPSProcessor实例分析 continued CS EE3710 Architecture CS EE3710 Architecture CS EE3710 AnotherView CS EE3710 ControlFSM CS EE3710 ConnectiontoExternalMemory CS EE3710 ExternalMemoryfromBook externalmemoryaccessedbyMIPSmoduleexmemory parameterWIDTH 8 inputclk inputmemwrite input WIDTH 1 0 adr writedata outputreg WIDTH 1 0 memdata reg 31 0 RAM 1 2 7 0 2 15 8 2 23 16 2 31 24 writedata endcase assignword RAM adr 2 always case adr 1 0 2 b00 memdata word 7 0 2 b01 memdata word 15 8 2 b10 memdata word 23 16 2 b11 memdata word 31 24 endcaseendmodule Notes EndianessisfixedhereWritesareonposedgeclkReadsareasynchronousThisisa32 bitwideRAMWith64locationsButwithan8 bitinterface CS EE3710 Exmem v moduleexmem parameterWIDTH 8 RAM ADDR BITS 8 inputclk en inputmemwrite input RAM ADDR BITS 1 0 adr input WIDTH 1 0 writedata outputreg WIDTH 1 0 memdata reg WIDTH 1 0 mips ram 2 RAM ADDR BITS 1 0 initial readmemb fib dat mips ram always posedgeclk if en beginif memwrite mips ram adr writedata memdata mips ram adr endendmodule ThisissynthesizedtoaBlockRAMontheSpartan3eFPGAIt s8 bitswideWith256locationsBothwritesandreadsareclocked CS EE3710 Read FirstTemplate CS EE3710 Write FirstTemplate CS EE3710 Recall OverallSystem Clock Clk Clk CS EE3710 Recall OverallSystem Clock Clk Clk So whataretheimplicationsofusingaRAMthathasbothclockedreadsandwritesinsteadofclockedwritesandasyncreads we llcomebacktothisquestion CS EE3710 mipsBlockDiagram CS EE3710 mips v simplifiedMIPSprocessormodulemips parameterWIDTH 8 REGBITS 3 inputclk reset input WIDTH 1 0 memdata outputmemread memwrite output WIDTH 1 0 adr writedata wire 31 0 instr wirezero alusrca memtoreg iord pcen regwrite regdst wire 1 0 aluop pcsource alusrcb wire 3 0 irwrite wire 2 0 alucont controllercont clk reset instr 31 26 zero memread memwrite alusrca memtoreg iord pcen regwrite regdst pcsource alusrcb aluop irwrite alucontrolac aluop instr 5 0 alucont datapath WIDTH REGBITS dp clk reset memdata alusrca memtoreg iord pcen regwrite regdst pcsource alusrcb irwrite alucont zero instr adr writedata endmodule CS EE3710 Controller StateCodes Usefulconstantstocompareagainst StateRegister CS EE3710 ControlFSM CS EE3710 NextStateLogic CS EE3710 OutputLogic Continuedfortheotherstates VerycommonwaytodealwithdefaultvaluesincombinationalAlwaysblocks CS EE3710 OutputLogic WhyANDthesetwo TwoplacestoupdatethePCpcwriteonjumppcwritecondonBEQ CS EE3710 ALUControl CS EE3710 ALU Invertbifsubtract addisa bsubisa b 1 subtractonsltthencheckifanswerisnegative CS EE3710 zerodetect CS EE3710 RegisterFile Whatisthissynthesizedinto CS EE3710 SynthesisReport CS EE3710 Datapath Fairlycomplex Notreally butitdoeshavelotsofregistersinstantiateddirectly Italsoinstantiatesmuxes InstructionRegister CS EE3710 Datapathcontinued Flopsandmuxes RFandALU CS EE
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年下学期高三数学专项突破之“导数工具灵活用”
- 人教版(新版)六年级下学期数学第四单元4.1.2 比例的基本性质同步练习-17测试卷(附答案)
- 青岛五四制数学一年级上第七单元第三课时7、6、5、4、3、2加几测试卷(附答案)
- 沪教版数学一年级上第三单元20以内数的排列测试卷(附答案)
- 2026年建筑中央空调清洗消毒合同
- (四川人教)数学一年级上第五单元6-10的认识和加减法-8和9的认识(2)测试卷(附答案)
- 2025年化工常用面试题及答案
- 水务公司试题带答案
- 运营管理类岗位试题带答案
- 大数据分析师基本考试题及答案
- 土料填筑单元工程施工质量验收表填写示例(表1.10 )
- 2025至2030年中国功能糖行业市场调研及未来发展趋势预测报告
- 医疗病例信息记录模板病历摘要生成版
- 2025年北京住院医师规范化培训考试(外科)历年参考题库含答案详解(5卷)
- 病案科人员配置标准
- 大学生职业规划大赛生涯发展展示
- (高清版)DB11∕T 2440-2025 学校食堂病媒生物防制规范
- 学堂在线 研究生学术与职业素养讲座 章节测试答案
- 早期膝骨关节炎诊疗指南
- CACA小细胞肺癌诊治指南(2025版)解读
- 新能源管理政策解读
评论
0/150
提交评论