![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
verilog 编程题
文章平均质量分 88
mu_guang_
生活是一本书,我想在书上留些什么
展开
-
总线通信协议-IIC
目录1. 简介1.1 特点1.2 接口1.3 工作模式2. 传输协议2.1 时序图2.2 数据帧格式2.3 模块实现2.4 模块测试3. 小结1. 简介IIC(Inter-Integrated Communication)总线是Philips公司开发的两线串行总线,由数据线SDA和时钟线SCL构成1.1 特点同步串行总线,支持多主设备,传输速率为400Kbps1.2 接口SDA:数据线SCL:时钟线SDA和SCL都是双向线路,都通过一个上拉电阻连接到正的电源电压,当总线空闲时都是高电平。原创 2021-01-14 22:41:08 · 493 阅读 · 0 评论 -
verilog编程题-取对数
目录1. 题目2. 代码2.1 DUT2.2 TB3. 仿真4. 小结1. 题目写一个组合逻辑代码,可以直接输出以2为底的对数值,向上取整。2. 代码这个代码主要是用来熟悉for循环的使用,取以2为底的对数,通过右移实现。2.1 DUTmodule log( input wire [31:0] in, //input wire clk, //input wire rst_n, output wire [7:0] out );// 方案一function integer clogb原创 2020-11-18 22:08:36 · 3790 阅读 · 0 评论 -
verilog编程题-约翰逊计数器
目录题目代码DUTTB仿真小结题目约翰逊(扭环形)计数器是基于移位寄存器的计数器,用N个寄存器表示2N个状态,请设计一个4位约翰逊计数器,和格雷码有点类似,相邻两个状态之间只有1bit是不同的。代码DUTmodule johnson_cnt( input wire clk, input wire rst_n, output reg [3:0] out ); always_ff @(posedge clk or negedge rst_n) begin : proc_out if(原创 2020-11-07 15:36:46 · 4275 阅读 · 3 评论 -
verilog编程题-急拉式环形计数器
目录题目代码DUTTB仿真小结题目写一个如下循环输出的环形计数器代码主要有一个循环移位计数器和一个状态翻转的flag,需要注意的是循环移位计数器是从8‘h02到8’h80这样移位的,因为总共循环周期是14而不是16。在我们的代码中通过提前使得tmp == 8’h01,接着移位赋值为8‘h02,故而完成功能。DUTmodule jerky_cnt( input wire clk, input wire rst_n, output wire [7:0] count ); reg原创 2020-11-02 15:56:40 · 683 阅读 · 0 评论 -
verilog编程题-计数器
目录题目代码DUTTB仿真小结题目编写一个0 1 2 3 3 2 1 0输出的循环计数器编写一个0 1 2 3 4 5 6 6 5 4 3 2 1 0输出的循环计数器代码DUT//function: count 0 1 2 3 3 2 1 0module Count( input wire clk, input wire rst_n, output wire [1:0] out ); reg [2:0] count; always_ff @(posedge clk or原创 2020-10-31 21:47:05 · 977 阅读 · 0 评论