微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 如何利用Verilog实现bresenham画直线算法?

如何利用Verilog实现bresenham画直线算法?

时间:10-02 整理:3721RD 点击:
bresenham画直线算法,在C和MALTAB上是比较容易实现,但FPGA硬件怎么实现呢?!求各位大虾帮帮忙!急。
几个关键问题不明白:
1.bresenham算法中的FOR循环,在Verilog中如何实现?
   如果用Verilog里的FOR循环,是说明在一个时钟内实现整个循环,但这样行吗?说实话,我真不明白一个时钟脉冲内如何有时间实现整个FOR循环(i增量可能很大);
2.如果不用Verilog里的FOR循环的话,用计数器计数然后用CASE语句展开的话,这个方法是不是不可行啊(因为i值会增大到比较大的数)?
  希望有大侠能提供个好办法,谢谢。
3.bresenham算法是取近似直线上点的光栅点来替代,这个光栅格的增量我不是很明白,每个光栅格单位多少?怎么将verilog程序输出的数据(比如说2009)来代表实际的度量含义?比如说2009毫米,2009微米。额,我是新手,这个问题我真的不是很明白。
诚心请教各位大侠,希望大侠帮帮忙,拜谢。

C里面的for 循环如果不嵌套的话,verilog里可以用简单的状态机和counter来实现阿,当然是时序逻辑实现,不存在你说的一个时钟跑完的事情。
3。这个问题不在verilog上面,是在你的算法上面,C描述没有做好,定点化没做完,是上不了rtl的。
自己下功夫先把要实现的东西想清楚,再写rtl吧

2# layow
恩,前两个问题我明白了!谢谢!自己还是做的太少啊,呵呵

2# layow
另外再谢谢这位大虾的告诫和提醒!真的十分感谢!~

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top