窗口生成器
更新于 2015.06.01
设计
窗口生成器
版本
1.0
更改于
2015-05-19
源文件
IP-GUI
功能
生成窗口,输出数据中的最低色彩位宽窗口的左上角!
在流水线模式下,将会在输入使能后窗口宽度 / 2 + 1个周期后给出第一个输出,在请求响应模式下,在第一个数据能够输出前,将会对每一个输入请求给出一个响应,从而可以让你给出下一个输入数据。
文件
名字 | 功能 |
---|---|
WindowGenerator.v | 顶层文件 |
WindowGenerator_TB.sv | 测试平台 |
参数
名字 | 类型 | 范围 | 默认值 | 说明 |
---|---|---|---|---|
work_mode | 无符号 | 0为流水线模式,1为请求响应模式 | 0 | 工作模式 |
window_width | 无符号 | 2 - 15 | 3 | 窗口的宽度和高度。 |
color_width | 无符号 | 1 - 12 | 8 | 色彩位宽。 |
端口
名字 | 端口 | 类型 | 范围 | 默认值 | 说明 | clk | 输入 | 无符号 | 无 | 无 | Clock. |
---|---|---|---|---|---|
rst_n | 输入 | 无符号 | 无 | 无 | 复位,低有效。 |
in_enable | 输入 | 无符号 | 无 | 无 | 输入数据使能,在流水线模式下,它是另一个复位信号,在请求响应模式下,只有在它有效的时候in_data才会被真正地改变。 |
in_data | 输入 | 无符号 | color_width * window_width - 1 : 0 | 无 | 输入数据,必须和in_enable同步输入。 |
out_ready | output | 无符号 | 无 | 无 | 输出数据有效,在两种模式下,这个信号都会在out_data可以被读取的时候有效。 |
out_data | output | 无符号 | color_width * window_width * window_width - 1 : 0 | 无 | 输出数据,将会和out_ready同步输出。 |
input_ack | output | 无符号 | 无 | 无 | 输入响应,仅仅被用于请求响应模式,这个端口将在输入数据被接受时给出一个响应。 |
仿真
此模块的仿真仅仅支持512xN的图像,并且只支持灰度和二值模式!
同时仅仅支持3和5的窗口!
波形
流水线模式
![Pipline mode](http://src.dtysky.moe/image/f-i-l/3/9/2.png)
请求响应模式
![ReqAck mode](http://src.dtysky.moe/image/f-i-l/3/9/3.png)
原始图像
![原始图像](http://src.dtysky.moe/image/f-i-l/3/9/5.png)
结果图像
![Results](http://src.dtysky.moe/image/f-i-l/3/9/6.png)
左侧为请求响应模式下的HDL功能仿真结果,中间为流水线模式下的HDL功能仿真结果,右侧为软件仿真结果
PSNR
1-3 | 1-5 | 2-3 | 2-5 | Total |
---|---|---|---|---|
OK | OK | OK | OK | OK |
资源消耗
Slice LUTs* | Slice Registers |
---|---|
73 | 74 |
时序
最大的数据路径延迟为2.325ns,所以:
FMax = 430.10MHz
感谢
用于仿真的图像:
パセリ-COMITIA100