帧控制器2
更新于 2015.06.01
设计
帧控制器
版本
1.0
更改于
2015-05-25
源文件
IP-GUI
功能
用于控制Xilinx的FPGA的片上RAM,依靠行列计数值进行写入或者读出。
将会在输入使能乘法器延迟 + 2 + RAM读取延迟个周期后给出第一个输出。
文件
Name | Function |
---|---|
FrameController2.v | 顶层文件 |
FrameController2_TB.sv | 顶层文件 |
Multiplier12x12FR2.xci | Xilinx IP文件。 |
Multiplier12x12FR2_funcsim.v | 用于功能仿真的模型文件。 |
参数
名字 | 类型 | 范围 | 默认值 | 说明 |
---|---|---|---|---|
work_mode | 无符号 | 0为流水线模式,1为请求响应模式 | 0 | 模块的工作模式。 |
wr_mode | 无符号 | 0为写,1为读。 | 0 | 模块的读写模式。 |
data_width | 无符号 | 1 - 12 | 8 | 数据位宽。 |
im_width | 无符号 | 1 - 4096 | 320 | 图像宽度。 |
im_height | 无符号 | 1 - 4096 | 240 | 图像高度。 |
im_width_bits | 无符号 | 取决于图像宽度 | 9 | 图像宽度的位宽。 |
addr_width | 无符号 | 取决于图像的宽度和高度。 | 17 | 存储帧缓存的RAM的地址位宽。 |
ram_read_latency | 无符号 | 0 - 15,取决于RAM。 | 2 | RAM的读延迟,在Xilin器件中,典型为2。 |
mul_delay | 无符号 | 乘法器延迟。 | 3 | 乘法器的延迟,取决于配置。 |
端口
名字 | 端口 | 类型 | 范围 | 默认值 | 说明 |
---|---|---|---|---|---|
clk | 输入 | 无符号 | 无 | 无 | Clock. |
rst_n | 输入 | 无符号 | 无 | 无 | 复位,低有效。 |
in_count_x | input | 无符号 | im_width_bits - 1 : 0 | 无 | 图像宽度计数输入。 |
in_count_y | input | 无符号 | im_width_bits - 1 : 0 | 无 | 图像高度输入计数。 |
in_enable | 输入 | 无符号 | 无 | 无 | 输入数据使能,在流水线模式下,它是另一个复位信号,在请求响应模式下,只有在它有效的时候in_data才会被真正地改变。 |
in_data | 输入 | 无符号 | color_width * in_window_width * in_window_width - 1 : 0 | 无 | 输入数据,必须和in_enable同步输入。 |
out_ready | output | 无符号 | 无 | 无 | 输出数据有效,在两种模式下,这个信号都会在out_data可以被读取的时候有效。 |
out_data | output | 无符号 | color_width - 1 : 0 | 无 | 输出数据,将会和out_ready同步输出。 |
ram_addr | output | 无符号 | addr_width - 1 : 0 | 无 | 输出到RAM的地址。 |
子模块
名字 | 类型 | 说明 |
---|---|---|
Mul | Multiplier12x12FR2 | 12位无符号数和12位无符号数的乘法器,用于得出帧地址。你可以自己配置乘法器,随后改变配置参数中的延迟。你不能改变端口的配置! |
仿真
此模块的仿真仅仅支持512x512的图像,并且只支持灰度模式!
波形
流水线模式, 写入
流水线模式, 读取
请求响应模式,写入
请求响应模式,读出
结果图像
左侧为请求响应模式下的HDL功能仿真结果,中间为流水线模式下的HDL功能仿真结果,右侧为软件仿真结果
PSNR
1 | 2 | 3 | Total |
---|---|---|---|
1000000.00 | 1000000.00 | 1000000.00 | 1000000.00 |
资源消耗
Slice LUTs* | Slice Registers | DSP |
---|---|---|
38 | 64 | 1 |
时序
最大的数据路径延迟为2.485ns,所以:
FMax = 402.41MHz
感谢
用于仿真的图像:
月岡月穂-ゆらゆら
LM7-oxford eleKtricity
cotta-池