第11讲时序逻辑电路设计讲述.ppt
文本预览下载声明
思考: 如何依据JK触发器的工作原理, 或 JK触发器的真值表, 编写JK触发器的verilog程序? 【例7.29】 带异步清0/异步置1的JK触发器 问题:8位数据锁存器的专用芯片名称是? 思考:如何用VerilogHDL语言实现74LS373? 提示:先看看74LS373的芯片资料(百度) 输入控制信号有:三态允许控制端 OE(高电平有效) ,锁存允许端 LE (低电平有效) 真值表如下: 【例7.32】 8位数据锁存器(74LS373) module ttl373(le,oe,q,d); input le,oe; input[7:0] d; output reg[7:0] q; always @* //或写为always @(le,oe,d) begin if(~oe le) q=d; //或写为if((!oe) (le)) else if(~oe ~le) q=q; else q=8bz; end endmodule 思考:如何用VerilogHDL语言实现74LS175? 74LS175: module reg74LS175(d, cp, reset, q); input cp, rd; input[3:0] d; output[3:0] q; reg q; always @(posedge cp or negedge rd) if (~rd) q = 4b0; //复位 else q = d; //数据输出 endmodule 设计一个模200的二进制加法计数器 module count200(clock,out); input clock; output [7:0] out; reg [7:0] out; always @(posedge clock) begin if(count==200) out = 0; else out = out +1; end 偶数分频器 要求:(1)由50Mhz时钟分频得到25Mhz的时钟 (2)由50Mhz时钟分频得到12.5Mhz的时钟 (3)由50Mhz时钟分频得到5Mhz的时钟 (4)由50Mhz时钟分频得到1hz的时钟 (5)由50Mhz时钟分频得到4hz的时钟 (1)由50Mhz时钟分频得到25Mhz的时钟 (3)由50Mhz时钟分频得到12.5Mhz的时钟 module seg_cycle(clk50mhz, clk12mhz); input clk50mhz; output clk12mhz; //N(4)分频 reg clk12mhz; reg [1:0] count; always @(posedge clk50mhz) begin if(count==‘d1) // 计数到N/2-1(2)时候翻转 begin count= 0; clk12mhz=~ clk12mhz; end else count = count +1; end (3)由50Mhz时钟分频得到5Mhz的时钟 module seg_cycle(clk50mhz, clk5mhz); input clk50mhz; output clk5mhz; //N(10)分频 reg clk5mhz; reg [2:0] count; //模5计数器 always @(posedge clk50mhz) begin if(count==‘d4) // 计数到N/2-1(4)时候翻转 begin count= 0; clk5mhz=~ clk5mhz; end else count = count +1; end (4)由50Mhz时钟分频得到1hz的时钟 module seg_cycle(clk50mhz, clk1hz); input clk50mhz; output clk1hz; //N(50
显示全部