update:6.19 根据公布解答进行修改
Tag: verilog
verilog语法基础
数字系统的设计采用自顶向下、由粗到细,逐步分解的设计方法,最顶层电路是指系统的整体要求,最下层是具体的逻辑电路的实现。
Verilog——任意模数计数器
任务 为实现篮球24s计时显示器,底层设计模块需要不同进制的计数器。调用之前设计的74LVC161,分别用反馈清零法与反馈置数法实现任意进制的计数器。 反馈清零法 程序设计 仿真 反馈置数法 程序设计 仿真
verilog仿真——篮球24秒计时显示器
任务 最终的工程需要调用之前设计的元件实现篮球24秒计时显示器 计时部分 思路 24进制,则利用任意模数计数器,分别实现如下 当个位为9时,十位的计数使能端有效 当十位为2与个位为4时,进行清零 程序设计 仿真 显示部分 思路 这个比较简单,只需将当前时间送至7段译码管74HC4511即可,现在可以整合为一个较完整的项目。 程序设计 仿真
Verilog仿真——双向寄存器74HC194
任务 实现双向寄存器74HC194的程序设计与仿真 时序电路的仿真 多使用行为级建模:always@( ) 与组合逻辑电路对高低电平敏感相比,时序电路对电平变化敏感 使用关键词posedge与negedge,分别代表上升沿敏感与下降沿敏感 通常不支持同时将电平敏感事件和边沿敏感事件列写在always@( )中 示例:D触发器 代码设计 仿真 重点是时钟信号的产生: 将CL首先设置为低电平,通过always语句每隔1个时间尺度timescale翻转1次 程序设计 时序电路采用<= 仿真
Verilog仿真——计数器74LVC161
任务 实现4位计数器74LVC161的程序设计与仿真 程序设计 Register is illegal in left-hand side of continuous assignment assign语句不可对寄存器类型变量赋值 因此将进位信号TC去掉reg类型标识符 仿真 预置为1111 清零 开始计数(时钟脉冲一直产生,因此只要开启计数即可:CEP&CET=1)
verilog仿真——超前进位全加器74HC283
任务 实现74HC138的程序设计与仿真 思路 如果只描述全加器的作用结果是比较容易的,难点在于将超前进位的特性描述出来.根据课本中的电路图,可以分两步进行: 描述超前进位电路carry-lookahead circuit 超前进位加法器调用超前进位电路 超前进位电路 程序设计 仿真 74HC238 程序设计 仿真
verilog仿真——数值比较器74HC85
任务 实现74HC85的程序设计与仿真 用74HC85连接成1个16位的数值比较器 74HC85 程序设计 仿真 16位数值比较器 串行接法 思路 将上一级的比较结果传递下去,级联最后一级得到最终结果. 同样将最初的输入端保留,以便更多数位级联 程序设计 仿真 并行接法 思路 考虑到芯片实际使用过程中的延迟问题,采取并行接法,同时比较4组数据,并把4组数据的比较结果传入最终结果,起到以空间换时间的效果 程序设计 仿真
verilog仿真——8选1数据选择器74HC151
任务 实现74HC151的程序设计与仿真 用两片74HC151连接成1个16选1的数据选择器 74HC151 思路 数据选择器介绍 参照芯片的引脚设计 程序设计 仿真 16选1数据选择器 思路 用两片实现,则1片代表高8位,1片代表低8位 当选择端最高位有效时,从高8位中的数据端读取;反之,从低8位中的数据端读取 程序设计 仿真
verilog仿真——7段显示译码器74HC4511
任务 实现74HC4511的程序设计与仿真 思路 根据芯片的真值表直接设计,输入与输出的对应关系。 将输入端口的各功能对应实现: //D[3:0] 为输入信号 //Y[6:0] 译码器输出编码 //LT_n:灯测试输入,低电平有效,所有输出置1,检查好坏 //BL_n:当灭灯输入;当LT_n无效时,低电平有效,所有输出置0,清晰显示 //LE:译码器锁存使能输入;当LT_n与BL_n皆无效时,高电平有效,则译码器显示不变化 对于低电平有效的信号,应该以一个下划线跟一个小写字母b 或n 表示。注意在同一个设计中要使用同一个小写字母表示低电平有效 这里采用XX_n 程序设计 仿真 错误 模块命名不能以数字开头