1、第十一讲第十一讲 数字系统设计原则与设计实例数字系统设计原则与设计实例 西安邮电学院通信工程系最新最新Verilog课件课件 第十一讲第十一讲 数数字系统设计原则与设计实例字系统设计原则与设计实例第十一讲第十一讲 数字系统设计原则与设计实例数字系统设计原则与设计实例 西安邮电学院通信工程系硬件原则硬件原则v 按硬件原则,HDL的正确编写方法是:设计者要对所设计的硬件电路功能十分清楚。合理安排电路的数据流和控制逻辑,构思RTL级电路体系结构。掌握综合工具要求和性能。用适当的、综合工具能理解的HDL语言描述出来。v 目前纯行为级的综合还不成熟,RTL级综合仍是主流。v 在目前主流综合工具中,部分行
2、为描述语句可以综合,如c第十一讲第十一讲 数字系统设计原则与设计实例数字系统设计原则与设计实例 西安邮电学院通信工程系一种时钟域合并方法一种时钟域合并方法v 如图示时钟时序波形,时钟使能3M_EN、5M_EN分别使能20M_CLK部分时钟,使有效的时钟信号平均等效频率分别为3M_CLK、5M_CLK。使能的时钟信号第十一讲第十一讲 数字系统设计原则与设计实例数字系统设计原则与设计实例 西安邮电学院通信工程系同步系统复位的规划同步系统复位的规划v 为使系统工作稳定,并便于测试,所有触发器都应设置复位端。v 触发器的复位信号是一个异步逻辑输入端,对毛刺非常敏感。v 较好的全局复位方式是设置一个芯片
3、主复位引脚RESET,并用专门模块设计复位电路,给电路中每个触发器送复位信号。v 与全局时钟引脚类似,几乎所有FPGA器件都有专门的全局清零引脚和全局置位引脚。在一般情况下使用芯片的全局同步或异步清零/置位信号,可以简化设计、节省面积。v 如果必须从器件内产生清零或置位信号,则要按照“门控时钟”的设计原则去建立这些信号,确保复位信号中不会出现毛刺。第十一讲第十一讲 数字系统设计原则与设计实例数字系统设计原则与设计实例 西安邮电学院通信工程系复位电路复位电路1、用FPGA的PLL锁定输出LOCK作为电路复位rst_n;2、设计RESET同步电路。PLLclkresetclk_plllock复位同
4、步电路clkresetrst_n第十一讲第十一讲 数字系统设计原则与设计实例数字系统设计原则与设计实例 西安邮电学院通信工程系自顶向下系统设计原则自顶向下系统设计原则v 自顶向下的设计原则是首先定义好顶层功能,然后再用底层的具体实现去充实这些功能。它是设计复杂数字系统普遍采用的设计方法。v 自顶向下的设计方法是从一个写好的系统设计规范开始,通过系统设计、模块设计与仿真验证、系统功能仿真验证、系统实现与仿真验证几个阶段,逐步细化设计,直到实现系统设计规范要求。v 在自顶向下设计中,撰写完善的设计文档是与设计同样重要的。对于一个比较复杂的设计来说,系统和各模块之间关系较复杂,在设计文档中对整个设计
5、进行详细的描述,才能保证设计者能够在较短时间内掌握整个设计方案,顺利完成设计工作。第十一讲第十一讲 数字系统设计原则与设计实例数字系统设计原则与设计实例 西安邮电学院通信工程系自顶向下设计自顶向下设计系统设计规范v 系统概述v 系统目标(包括系统实现的功能定义及性能指标)v 系统设计依据(主要的工作原理,关键算法等)v 关键技术v 系统实现其它要求(包括硬件体系结构、数据流、控制流的特殊要求,系统实现价格、面积、功耗、封装等其它要求)v 系统验证及测试要求第十一讲第十一讲 数字系统设计原则与设计实例数字系统设计原则与设计实例 西安邮电学院通信工程系自顶向下设计自顶向下设计系统设计v 系统设计论
6、述。包括对系统详细的分析与设计策略、系统体系结构框图、层次结构框图、各个模块的划分和功能定义、系统时钟和复位规划。v 芯片与封装选择,包括芯片引脚功能和时序说明,输出驱动能力、输入输出电平。v 系统各模块输入输出引脚功能和时序说明。v 系统各模块的实现策略,如是否用IP;关键算法流程或时序设计。v 系统验证、测试方案与可测性设计。第十一讲第十一讲 数字系统设计原则与设计实例数字系统设计原则与设计实例 西安邮电学院通信工程系自顶向下设计自顶向下设计层次化与模块划分原则v 顶层设计:只包含功能模块、独立时钟模块、独立复位模块和输顶层设计:只包含功能模块、独立时钟模块、独立复位模块和输入输出管脚定义
7、,不含逻辑电路。入输出管脚定义,不含逻辑电路。v 模块划分应无跨层间信号互连。模块划分应无跨层间信号互连。顶层模块A模块B模块A.U1模块A.U2模块B.U1模块B.U2第十一讲第十一讲 数字系统设计原则与设计实例数字系统设计原则与设计实例 西安邮电学院通信工程系自顶向下设计自顶向下设计层次化与模块划分原则v 独立模块独立模块尽量加寄存器输出,便于时序调整。尽量加寄存器输出,便于时序调整。v 相关逻辑电路划在一个模块内,使模块间互连最少。相关逻辑电路划在一个模块内,使模块间互连最少。v 将相同优化目标的逻辑划在一个模块内,便于优化。如速度要求将相同优化目标的逻辑划在一个模块内,便于优化。如速度
8、要求一样的逻辑放在一个模块中,便于对模块设置速度约束。一样的逻辑放在一个模块中,便于对模块设置速度约束。v 时序要求不高的逻辑可放在一个模块。时序要求不高的逻辑可放在一个模块。v 异步输入输出接口和时钟域间接口划分为单独模块,并尽量小。异步输入输出接口和时钟域间接口划分为单独模块,并尽量小。v 存储器划分为独立模块。存储器划分为独立模块。v 模块规模要适当,便于验证和管理。模块规模要适当,便于验证和管理。第十一讲第十一讲 数字系统设计原则与设计实例数字系统设计原则与设计实例 西安邮电学院通信工程系自顶向下设计自顶向下设计模块设计v 模块的体系结构与电路设计模块的体系结构与电路设计v 模块中关键
9、路径设计及说明v 模块的测试方法与可测性设计v 模块的模块的HDL描述,功能仿真检查结果描述,功能仿真检查结果v 模块的综合约束条件(包括扇入、扇出,速度要求、面积要求等)v 模块的面积、速度和功耗估算第十一讲第十一讲 数字系统设计原则与设计实例数字系统设计原则与设计实例 西安邮电学院通信工程系组合逻辑设计规则组合逻辑设计规则v 设计无组合环:组合电路输出不能在没有通过同步延设计无组合环:组合电路输出不能在没有通过同步延时单元的情况下反馈回同一组合逻辑。时单元的情况下反馈回同一组合逻辑。DQDQ第十一讲第十一讲 数字系统设计原则与设计实例数字系统设计原则与设计实例 西安邮电学院通信工程系组合逻
10、辑设计规则组合逻辑设计规则v 不用组合逻辑产生延时,延时总是由时序电路产生。不用组合逻辑产生延时,延时总是由时序电路产生。v 不要用组合逻辑产生脉冲,用时序电路产生。不要用组合逻辑产生脉冲,用时序电路产生。DQ第十一讲第十一讲 数字系统设计原则与设计实例数字系统设计原则与设计实例 西安邮电学院通信工程系组合逻辑设计规则组合逻辑设计规则v 三态门要防止多驱动竞争(总线竞争)。三态门要防止多驱动竞争(总线竞争)。v 三态总线不要处于悬浮状态。三态总线不要处于悬浮状态。v 三态逻辑只用于芯片的双向端口。三态逻辑只用于芯片的双向端口。v FPGA内部总线使用多路选择器实现。内部总线使用多路选择器实现。
11、AmuxBmuxCmux第十一讲第十一讲 数字系统设计原则与设计实例数字系统设计原则与设计实例 西安邮电学院通信工程系同步逻辑设计规则同步逻辑设计规则v 多驱动在测试平台中常出现,但在设计中应禁止使用。多驱动在测试平台中常出现,但在设计中应禁止使用。v 例:例:always(posedge clk)if(rst)sig=4b0;else if(condition1)sig=express1;always(posedge clk)if(condition2)sig=express2;v 除非特殊情况,不建议在同一模块中上、下时钟沿混用。等效减除非特殊情况,不建议在同一模块中上、下时钟沿混用。等效
12、减少时钟周期,不利于时序分析。少时钟周期,不利于时序分析。多驱动第十一讲第十一讲 数字系统设计原则与设计实例数字系统设计原则与设计实例 西安邮电学院通信工程系同步逻辑设计规则同步逻辑设计规则v 不用不用if-else作为完整选择,容易出错。例:作为完整选择,容易出错。例:always(posedge clk)if(rst)sig=4b0;if(condition1)/else if sig=express1;v CaseCase语句不要遗漏语句不要遗漏defaultdefault,ifif语句条件要完备。语句条件要完备。v AlwaysAlways语句应使用完整的敏感量表,否则容易使仿真语句应
13、使用完整的敏感量表,否则容易使仿真与综合不一致,或产生非预期的锁存器。与综合不一致,或产生非预期的锁存器。第十一讲第十一讲 数字系统设计原则与设计实例数字系统设计原则与设计实例 西安邮电学院通信工程系同步逻辑设计规则同步逻辑设计规则v 不要混合使用同步和异步复位,综合可能出问题。不要混合使用同步和异步复位,综合可能出问题。always(posedge clk or posedge rst)if(rst|syn_rst)sig=4b0;else if(condition1)sig=express1;改为:改为:always(posedge clk or posedge rst)if(rst)si
14、g=4b0;if(syn_rst)sig=4b0;else if(condition1)sig=express1;第十一讲第十一讲 数字系统设计原则与设计实例数字系统设计原则与设计实例 西安邮电学院通信工程系同步逻辑设计规则同步逻辑设计规则v 状态机设计一定要有初始复位状态。状态机设计一定要有初始复位状态。v 较大状态机建议用较大状态机建议用one-hot编码方式。编码方式。v 未用状态一定要明确处理。未用状态一定要明确处理。v 建议使用单独的状态转移建议使用单独的状态转移always过程块,输入组合逻过程块,输入组合逻辑和输出组合逻辑辑和输出组合逻辑always过程块的设计方式。过程块的设计
15、方式。输 入 逻 辑(f)输 出 逻 辑(g)输 入 变 量(I)激 励(E)时 钟状 态 变 量(S)输 出 变 量(O)存 储 元 件虚 线 表 示 无 连 接第十一讲第十一讲 数字系统设计原则与设计实例数字系统设计原则与设计实例 西安邮电学院通信工程系同步逻辑设计规则同步逻辑设计规则v 资源共享。例:资源共享。例:always(a or b or c or d or sel)sum=sel?(a+b):(c+d);-always(a or b or c or d or sel)begin s1=sel?a:c;s2=sel?b:d;sum=s1+s2;endv 冗余逻辑。例:reg si
16、g1/reg sig1/*synthesis preserve synthesis preserve*/;/;reg sig2/reg sig2/*synthesis preserve synthesis preserve*/;/;always(posedge clk or posedge rst)if(rst)begin sig1=1b0;sig2=1b0;end else if(condition1)begin sig1=express1;sig2=express1;end第十一讲第十一讲 数字系统设计原则与设计实例数字系统设计原则与设计实例 西安邮电学院通信工程系自顶向下设计自顶向下设计
17、系统级仿真与实现v 系统最终完成的HDL设计描述。v 系统仿真激励文件、测试文件及功能仿真结果分析。v 系统级综合约束条件(包括器件扇出配置,关 键路径约束,输入输出约束,时钟约束,速度、面积和功耗约束等);得到综合后网表文件。v 系统布局布线约束条件及布局布线结果。v 系统静态时序分析和时序仿真结果分析。v 设计实现后系统电路面积、速度和功耗估算。v 最终产生FPGA的编程文件。v 验证本设计实现的系统满足系统设计规范要求。第十一讲第十一讲 数字系统设计原则与设计实例数字系统设计原则与设计实例 西安邮电学院通信工程系系统级常用约束系统级常用约束v I/OI/O驱动约束:电平值、驱动电流、集电
18、极开路、上拉电阻驱动约束:电平值、驱动电流、集电极开路、上拉电阻v I/OI/O驱动约束:驱动约束:T Tsusu,T Th h,T,Tcoco,T,Tpdpdv 定位约束(定位约束(location)location):管脚定位、逻辑单元定位。:管脚定位、逻辑单元定位。v 全局时钟约束:多个独立时钟、关联时钟全局时钟约束:多个独立时钟、关联时钟v 时序约束:多周期路径,伪路径切断,时序约束:多周期路径,伪路径切断,v 扇出约束:扇出约束:FPGAFPGA一般取一般取1212,1616,2424,3232等,取决与速度需求。等,取决与速度需求。v 修正保持时间违例修正保持时间违例第十一讲第十一
19、讲 数字系统设计原则与设计实例数字系统设计原则与设计实例 西安邮电学院通信工程系设计实例设计实例:自动交通控制系统自动交通控制系统系统设计规范:系统设计规范:v系统概述系统概述 设计一个具有主、支干道十字路口的交通灯自动控制芯片。v系统目标系统目标 当主干道与支干道均无车辆要求通行时,主干道应保持畅通,亮绿灯,支干道亮红灯。如果主干道无车,支干道有车,则允许支干道通行,主干道亮红灯,支干道亮绿灯。如果主干道和支干道均有车要求通行,则两者应交替通行,并要求主干道每次通行30秒,支干道每次通行20秒,并显示剩余时间。每次绿灯变红灯时,黄灯应先亮3秒钟,并显示绿灯和黄灯剩余时间。v系统设计依据系统设
20、计依据:主、支干道上有车时,车辆传感器输出为高电平。v系统实现要求系统实现要求:要求用FPGA实现该控制器。v系统验证及测试要求系统验证及测试要求:搭建模拟测试平台测试。第十一讲第十一讲 数字系统设计原则与设计实例数字系统设计原则与设计实例 西安邮电学院通信工程系系统设计系统设计设计分析v系统设计分析系统设计分析 根据自动交通控制系统设计规范,可对该系统的工作过程作如下分析:一般情况下,如果主干道和支干道均无车辆要求通行,应该保证主干道绿灯亮,支干道红灯亮,剩余时间按30秒循环显示。若支干道有车辆要求通行,主干道无车辆,则应允许支干道车辆通行;在支干道有车辆通行时,若主干道无车辆要求通行,则支
21、干道始终保持畅通,剩余时间按20秒循环显示;如果此时支干道已无车辆要求通行,或主干道有车辆要求通行,并且支干道通行时间已超过20秒钟,则应立刻准备使主干道通行。若主干道、支干道均有车辆要求通行,则应先保证主干道通行30秒钟后,允许支干道通行。在允许主干道通行前,应先使支干道的黄灯亮3秒钟,主干道红灯保持3秒钟后,变成主干道绿灯亮,支干道红灯亮。在允许支干道车辆通行前,应先使主干道黄灯亮3秒钟,支干道红灯保持3秒钟后,变成主干道红灯亮,支干道绿灯亮。据此工作过程,设计系统框图如图所示。第十一讲第十一讲 数字系统设计原则与设计实例数字系统设计原则与设计实例 西安邮电学院通信工程系系统设计系统设计模
22、块划分与结构框图v 系统结构框图系统结构框图Clock_cntTR_ctlDisp_ctlmredmgreenmyellowbgreenbyellowbreds_20ss_3ss_30scnt_okd_time6:0d_out7:0d_col1:0clkresetm_reqb_req如图示、系统分为三个模块如图示、系统分为三个模块:TR_ctl:交通灯控制。Clock_cnt:定时计数。Disp_ctl:剩余时间显示。输入输出信号:输入输出信号:clk:系统时钟reset:1,系统复位b_req:1,支干道通行请求m_req;1,主干道通行请求d_out7:0:显示数据输出d_col1:0;动
23、态显示LED选择mgreen:1,主干道绿灯亮myellow:1,主干道黄灯亮mred:1,主干道红灯亮bgreen:1,支干道绿灯亮byellow:1,支干道黄灯亮bred:1,支干道红灯亮第十一讲第十一讲 数字系统设计原则与设计实例数字系统设计原则与设计实例 西安邮电学院通信工程系系统设计系统设计顶层设计v 系统时钟和复位规划:本设计采用一个全局时钟clk和复位reset。v 芯片与封装选择:本设计用EP1C3T FPGA实现,144脚封装,输入输出为LVTTL电平。v 系统顶层模块设计与各模块输入输出信号如图示。v 系统各模块功能说明。TR_ctl:交通灯控制模块。根据主、支干道车辆通行
24、请求和通行规则,控制交通灯。控制定时计数模块启动,并接收定时到信号。Clock_cnt:定时计数模块。接收TR_ctl的定时启动控制,s_3s、s_20s、s_30s 分别为3秒、20秒、30秒计时初值加载和减法计数启动的控制脉冲,为1时启动相应计时。cnt_ok 是计时到指示脉冲,为1表示已减到0,计时时间到。d_time6:0为十进制计时剩余时间,其中d_time6:4 为十位数,d_time3:0为个位数。Disp_ctl:剩余时间显示控制模块,用于控制显示绿灯和黄灯的剩余时间。采用2个7段LED动态显示方式。第十一讲第十一讲 数字系统设计原则与设计实例数字系统设计原则与设计实例 西安邮
25、电学院通信工程系系统设计系统设计顶层模块设计VCCclkINPUTVCCresetINPUTVCCm_reqINPUTVCCb_reqINPUTmgreenOUTPUTmyellowOUTPUTmredOUTPUTbgreenOUTPUTbyellowOUTPUTbredOUTPUTd_out7.0OUTPUTd_col1.0OUTPUTclock_cntinstclkINPUTreset INPUTs_3s INPUTs_20s INPUTs_30s INPUTcnt_okOUTPUTd_time6.0OUTPUTI/OTypeTR_ctlinst1clkINPUTresetINPUTm_r
26、eqINPUTb_reqINPUTcnt_okINPUTs_3sOUTPUTs_20sOUTPUTs_30sOUTPUTmgreenOUTPUTmyellowOUTPUTmredOUTPUTbgreenOUTPUTbyellowOUTPUTI/O.Type.disp_ctlinst2clkINPUTresetINPUTd_time6.0INPUTd_col1.0OUTPUTd_out7.0OUTPUTI/OType第十一讲第十一讲 数字系统设计原则与设计实例数字系统设计原则与设计实例 西安邮电学院通信工程系系统设计系统设计系统测试方案v 系统验证、测试方案:采用quartus2的功能和时序仿真
27、分析,验证设计的正确性。在Mars-EP1C3-EDA实验平台上实现本设计,并测试其正确性。具体方案如下。(注:KEY1、KEY2是异步输入,需同步处理。)主干道LED显示灯支干道LED显示灯EP1C3LD1LD3LD7LD9KEY1KEY2d_out7:0d_col1剩余时间的二位7段LED显示KEY1、KEY2模仿主、支干道通行请求,按下表示无车通行。d_col0abcdefgdp第十一讲第十一讲 数字系统设计原则与设计实例数字系统设计原则与设计实例 西安邮电学院通信工程系系统设计系统设计实验板信号定义v 查阅实验板资料,确定相关实验板引脚信号分配如下:本设计信号名实验板信号名FPGA引脚
28、备注本设计信号名实验板信号名FPGA引脚备注d_out0display7p5低显dp段mgreenLD5p75低灯亮d_out1display6p4低显g段myellowLD3p79低灯亮d_out2display5p3低显f段mredLD1p85低灯亮d_out3display4p2低显e段bgreenLD11p74低灯亮d_out4display3p1低显d段byellowLD9p78低灯亮d_out5display2p143低显c段bredLD7p84低灯亮d_out6display1p141低显b段m_reqKEY1p107按下为低d_out7display0p142低显a段b_req
29、KEY2p106按下为低d_col1Dis_A1p27低显示clkCLK_40Mp1640M时钟d_col0Dis_A2p26低显示resetSYS_RSTp144低复位注:实验时,实验板上J1连(2,3),J4连接,J3断开。电源接FPGA扩展板。第十一讲第十一讲 数字系统设计原则与设计实例数字系统设计原则与设计实例 西安邮电学院通信工程系模块设计模块设计 TR_ctl模块设计v TR_ctl模块的算法状态机设计模块的算法状态机设计:状态S1:主干道绿灯支干道红灯状态S2:主干道黄灯支干道红灯状态S3:主干道红灯支干道绿灯状态S4:主干道红灯支干道黄灯启动s_3s=0;s_20s=0;s_3
30、0s=1;cnt_ok=1?b_req=1?s_30s=0s_3s=1s_30s=1s_20s=1s_3s=1cnt_ok=1?cnt_ok=1?cnt_ok=1?b_req=1&m_req=0?s_3s=0s_20s=0s_3s=0yynnyns_20s=1nnyys_30s=1yn第十一讲第十一讲 数字系统设计原则与设计实例数字系统设计原则与设计实例 西安邮电学院通信工程系模块设计模块设计 clock_cnt模块设计v clock_cntclock_cnt模块设计模块设计:该模块可以分为秒脉冲产生和初值可控的十进制计数器两部分,如下图所示。秒脉冲产生秒脉冲产生:对40M时钟进行计数,计数到
31、40,000,000时产生秒计数使能脉冲second_en。初值可控的十进制计数器:初值可控的十进制计数器:据不同的加载脉冲s_3s、s_20s、s_30s分别加载计数初值3、20、30秒。然后开始减法计数,减到0时,产生计数到脉冲cnt_ok。其中输出d_time6:4为十位数,d_time3:0为个位数。秒脉冲产生初值可控的十进制计数器s_3ss_20ss_30sclkd_time6:0cnt_oksecond_en第十一讲第十一讲 数字系统设计原则与设计实例数字系统设计原则与设计实例 西安邮电学院通信工程系模块设计模块设计 disp_ctl模块设计v disp_ctl模块设计:模块设计:
32、该模块可以分为LED动态显示控制、显示数据选择和LED7段显示译码三部分,如图所示。v LED动态显示控制动态显示控制:将时钟分频到50HZ,交替使d_col1和d_col0为0。v 显示数据选择显示数据选择:选择十位或个位显示,最大到70秒。v LED7段显示译码段显示译码:LED动态显示控制显示数据选择LED7段显示译码d_time6:4d_time3:0d_out7:0d_col1:0clk十进制数LED显示编码08b0000_001118b1001_111128b0010_010138b0000_110148b1001_100158b0100_100168b0100_000178b00
33、01_111188b0000_000198b0001_1001第十一讲第十一讲 数字系统设计原则与设计实例数字系统设计原则与设计实例 西安邮电学院通信工程系模块设计模块设计 TR_ctl的的HDL描述module TR_ctl(clk,reset,m_req,b_req,cnt_ok,s_3s,s_20s,s_30s,mgreen,myellow,mred,bgreen,byellow,bred);/模块端口说明input clk;input reset;input m_req;input b_req;input cnt_ok;output s_3s;reg s_3s;output s_20s
34、;reg s_20s;output s_30s;reg s_30s;output mgreen;reg mgreen;output myellow;reg myellow;output mred;reg mred;output bgreen;reg bgreen;output byellow;reg byellow;output bred;reg bred;/变量说明reg m_req_s0,b_req_s0,m_req_s,b_req_s;reg 1:0 current_state,next_state;/参数说明parameter S1=2b00,S2=2b01,/状态机编码 S3=2b1
35、0,S4=2b11;/输入同步电路always(negedge reset or posedge clk)if(!reset)begin m_req_s0=0;b_req_s0=0;m_req_s=0;b_req_s=0;endelse begin m_req_s0=m_req;b_req_s0=b_req;m_req_s=m_req_s0;b_req_s=b_req_s0;End第十一讲第十一讲 数字系统设计原则与设计实例数字系统设计原则与设计实例 西安邮电学院通信工程系模块设计模块设计 TR_ctl的的HDL描述续1/状态机组合逻辑always(cnt_ok or m_req_s or b
36、_req_s or current_state)begin case(current_state)S1:begin /主干道绿,支干道红 mgreen=0;myellow=1;mred=1;bgreen=1;byellow=1;bred=0;s_3s=0;s_20s=0;s_30s=0;if(cnt_ok=1)/计时时间到 if(b_req_s=0)begin /支干道有车.s_3s=1;next_state=S2;end else begin /支干道无车.s_30s=1;next_state=S1;end else /计时未到 next_state=S1;end S2:begin/主干道黄
37、,支干道红 mgreen=1;myellow=0;mred=1;bgreen=1;byellow=1;bred=0;s_3s=0;s_20s=0;s_30s=0;if(cnt_ok=1)begin /计时时间到 s_20s=1;next_state=S3;end else next_state=S2;end第十一讲第十一讲 数字系统设计原则与设计实例数字系统设计原则与设计实例 西安邮电学院通信工程系模块设计模块设计 TR_ctl的的HDL描述续2 S3:begin/支干道绿,主干道红 mgreen=1;myellow=1;mred=0;bgreen=0;byellow=1;bred=1;s_3
38、s=0;s_20s=0;s_30s=0;if(cnt_ok=1)/支干道有车,主干道无车 if(b_req_s=0&m_req_s=1)begin s_20s=1;next_state=S3;end else begin s_3s=1;next_state=S4;end else next_state=S3;end S4:begin /支干道黄,主干道红 mgreen=1;myellow=1;mred=0;bgreen=1;byellow=0;bred=1;s_3s=0;s_20s=0;s_30s=0;if(cnt_ok=1)begin s_30s=1;next_state=S1;end el
39、se next_state=S4;end endcaseend/状态机状态转移逻辑always(negedge reset or posedge clk)if(!reset)current_state=S1;else current_state=next_state;endmodule第十一讲第十一讲 数字系统设计原则与设计实例数字系统设计原则与设计实例 西安邮电学院通信工程系模块设计模块设计 clock_cnt的的HDL描述 module clock_cnt(clk,reset,s_3s,s_20s,s_30s,cnt_ok,d_time);/端口说明input clk;input rese
40、t;input s_3s;input s_20s;input s_30s;output cnt_ok;output 6:0 d_time;/变量说明reg 25:0 cnt_clk;reg 2:0 cnt_10;reg 3:0 cnt_1;reg second_en;/秒脉冲发生器always(negedge reset or posedge clk)if(!reset)begin cnt_clk=26d0;second_en=0;endelse if(cnt_clk!=26d40_000_000)begin/分频26d40_000_000 cnt_clk=cnt_clk+1;second_e
41、n=0;endelse begin cnt_clk=26d0;second_en=1;end /初值可控的十进制减法计数器 always(negedge reset or posedge clk)if(!reset)begin cnt_10=3d0;cnt_1=4d1;endelse if(second_en=1)begin if(s_3s)begin cnt_10=0;cnt_1=3;end else if(s_20s)begin cnt_10=2;cnt_1=0;end else if(s_30s)begin cnt_10=3;cnt_1=0;end else if(cnt_1=0)beg
42、in cnt_10=cnt_10-1;cnt_1=9;end else cnt_1=cnt_1-1;endassign cnt_ok=(cnt_10=0&cnt_1=1)?second_en:1b0;/计时到信号assign d_time=cnt_10,cnt_1;/计数输出endmodule第十一讲第十一讲 数字系统设计原则与设计实例数字系统设计原则与设计实例 西安邮电学院通信工程系模块设计模块设计 disp_ctl的的HDL描述 module disp_ctl(clk,reset,d_time,d_col,d_out);/端口说明input clk;input reset;input 6:
43、0 d_time;output 1:0 d_col;reg 1:0 d_col;output 7:0 d_out;reg 7:0 d_out;/变量说明reg 18:0 cnt_disp;wire 3:0 LED_data;/LED动态显示控制always(negedge reset or posedge clk)if(!reset)begin cnt_disp=19d0;d_col=2b01;endelse if(cnt_disp!=19d400_000)/显示延时19d400_000 cnt_disp=cnt_disp+1;else begin cnt_disp=19d0;d_col时设置
44、分设置秒设置。在设置工作模式时,被设置相应数字按1秒速率闪烁,其它数字不变。在设置工作模式时,按UP键一次,被设置相应数字增加1,加到最大值后再加返回0,如小时加到23后再加就返回0,分和秒加到59后再加返回0。v 系统设计依据:外部输入时钟为40MHZ。v 系统实现要求:要求用Mars-EP1C3-EDA实验平台。芯片与封装选择:本设计用EP1C3T FPGA实现,144脚封装,输入输出为LVTTL电平。第十一讲第十一讲 数字系统设计原则与设计实例数字系统设计原则与设计实例 西安邮电学院通信工程系FPGA管脚分配管脚分配本 设 计 信号名实验板信号名FPGA引脚备注本设计信号名实验板信号名F
45、PGA引脚备注d_out0display7p5低显dp段d_col2Dis_A6P10低显示d_out1display6p4低显g段d_col3Dis_A5P7低显示d_out2display5p3低显f段d_col4Dis_A4P6低显示d_out3display4p2低显e段d_col5Dis_A3P11低显示d_out4display3p1低显d段d_col6Dis_A2P26低显示d_out5display2p143低显c段d_col7Dis_A1P27低显示d_out6display1p141低显b段setKEY1p107按下为低d_out7display0p142低显a段upKEY2p106按下为低d_col0Dis_A8P31低显示clkCLK_40Mp1640M时钟d_col1Dis_A7P28低显示resetSYS_RSTp144低复位第十一讲第十一讲 数字系统设计原则与设计实例数字系统设计原则与设计实例 西安邮电学院通信工程系实验板实验板第十一讲第十一讲 数字系统设计原则与设计实例数字系统设计原则与设计实例 西安邮电学院通信工程系此课件下载可自行编辑修改,仅供参考!此课件下载可自行编辑修改,仅供参考!感谢您的支持,我们努力做得更好!谢谢感谢您的支持,我们努力做得更好!谢谢