rei1984 发表于 2020-9-18 11:53:46

EPM240 ,实际工程编译后用了 80% 的LE ,会不会出问题?


最近我在学 EPM240 的 verlog的编程。书上说 240 合计 240个LE 。 然后 如果 用了 80% 的LE 。实际编译虽然能通过。但是运行会出错?

我非常不同意这样的说法,原因是:

1.RTL 综合后,到门电路上的电路结构已经确定死了。哪怕我使用了 239 个LE。   应该工程跑起来应该也是正常的。


为什么 cpld的老鸟要说预留 20% ,甚至 30% 的LE ,程序才能正确运行???《==== 这种说法是错误的吗??


另外今天 编写程序用到了 80%+ 的LE 。还没有写tb 。 烧录到板子上,运行是不正常的。   和占用过多LE 有关吗?
图片如下:



请正在做cpld 的同仁帮忙看下我上面的问题

amigenius 发表于 2020-9-18 11:59:08

放他们的屁,我240全用,一样跑的非常欢快。只是接近用满,时序约束比较麻烦一点。

wye11083 发表于 2020-9-18 12:11:21

amigenius 发表于 2020-9-18 11:59
放他们的屁,我240全用,一样跑的非常欢快。只是接近用满,时序约束比较麻烦一点。 ...

是的,估计lz还不会做约束。另外国产fpga的时序约束非常奇葩,不能以常理看待(比如你预设10ns,到pr之后变成了15ns都有可能)。

rei1984 发表于 2020-9-18 12:40:59

wye11083 发表于 2020-9-18 12:11
是的,估计lz还不会做约束。另外国产fpga的时序约束非常奇葩,不能以常理看待(比如你预设10ns,到pr之后 ...

时序约束:

1.是编译后 去看 fmax > 50mhz吗?


2. 还是 时序约束 是 自己另外写一段 verilog的程序 ,类似于写 testbench。   

hxled123 发表于 2020-9-18 12:43:34

是可以,问题是你设计时用到100%,以后维护改进怎么弄

rei1984 发表于 2020-9-18 12:55:25

hxled123 发表于 2020-9-18 12:43
是可以,问题是你设计时用到100%,以后维护改进怎么弄

你好啊。 lz现在是学习阶段。   不用考虑维护的问题。



我开贴的一个疑问是 ,   特权书上写的   ,一片cpld (这里比如 EPM240) ,内部有240 LEs ,但是实际开发的时候只能用80% 左右。 否则程序无法正常运行?
毕竟特权是写书的, 应该是斟酌过的。   而我的脑子想的是 cpld 经过综合之后 门电路都已经100% 确定死了。 为什么 剩下的20%不能用。 这肯定是有原因的,只是我不清楚而已。     

今天写了一个iic的程序。  包含了3个文件。  编译已经通过了。(当然我知道 编译通过 对于 CPLD整个开发来说只是刚刚开始。)  但是实际烧录到板子上,现象时而正确,时而不正确。 所以 我就想问问大家,是不是 占用 LE 太多导致的(整个项目用了82% LEs)。


这就是我开这个帖子的疑问。


另外 上面的2位大神 回复说timerequest , 是个小软件。我每次都会去设置 sys Clk到 50mhz 。 然后编译完成后,去查看 Fmax 》 50mhz 就是ok的了。(这是我对timerequest 的最粗浅的应用。我认为其他信号 也是需要去设置 具体参数,然后通过编译回来看,是否满足自己项目的需求。)



学了 大约2周的cpld verilog , 小小有了一些积累。 还是挺好玩的东西

dukelec 发表于 2020-9-18 13:12:22

本帖最后由 dukelec 于 2020-9-18 13:25 编辑

要寫 sdc 約束文件

前仿真通過 + 約束時序滿足 + 編譯通過 = 軟件上 99.999% 沒問題(假設仿真自身足夠全面且沒問題)

佔用資源太滿 可能會導致 約束時序不滿足,或者綜合報錯

不寫 sdc,簡單的情況下,你看 fmax 能超過 50M 也可以代表 時序滿足(輸入時鐘 50M 的情況下)(不是專業做法)

懷疑你沒仿真

rifjft 发表于 2020-9-18 13:42:00

主要是看客户群吧,或者说工程师的经验。通常还需要看学习资料的,新手居多吧,资源余量多一点,出问题的概率就相对低一些……新手上路,很多事情不能用常理衡量{:lol:}

rei1984 发表于 2020-9-18 13:46:57

dukelec 发表于 2020-9-18 13:12
要寫 sdc 約束文件

前仿真通過 + 約束時序滿足 + 編譯通過 = 軟件上 99.999% 沒問題(假設仿真自身足夠全 ...

是的。test banch 还没写。debug 还是 需要 tb 来分析波形才能知道问题的出处。

看了你的回复。非常感谢,很有用。   

我以前是做 单片机程序的。后来学了python 。最近有个将要开发的 项目会用到cpld 。就在学习cpld 。

用开发 mcu的思路去 开发 cpld 是非常不对的。 我总想着 烧录到板子上看看对不对。 实际不应该是这样开发。

cpld 在学习中,我体会到 。 写完 verilog 语法编译通过,大约完成了项目的30% 。 然后开始编写 test banch 。大约需要花费 20%的时间。 最后是 用modelsim 查每个波形的 出错点, 回头在去改 verilog的源代码, 然后根据自己关心的哪些信号, 修改 testbanch 代码。 继续仿真。   反正整个项目   基本可以在 pc上完成。烧录到板子上验证可能只有1% 的工作量。因为差错的整个过程都是在modelsim上完成的。。。


cpld 和mcu的开发 是 2个完全不同的感觉。

mcu 比如最新的 stm32 嵌入式工程师, 可能连iic 波形都搞不清楚。或者 uart 波形都 没完全搞明白。就在调用库,去开发 程序了。   甚至搞51 单片机的。通过寄存器+ sample code 就能开发 一个 uart 的通讯程序。

---------------------------
而 当要做 cpld 工程师。 你必须清楚每一个系统时钟周期里面。 所有的信号线发生了 哪些具体变化。

比如最近我做的iic 接口 , 必须清楚data 数据包是 MSB 还是 LSB。    走在 SDA 上面的数据,必须是 先 从高位 发送, 最后发送最低位。

做UART 的接口的时候。 起始位 +data(8bit) + 奇偶校验 + stop(1-2bits), 这些作为cpld 的工程师必须 都深刻的刻画在脑袋里。   也就是比 搞单片机的更加底层。 更加能深刻的明白 芯片内部是怎么实现 UART 接口的。(而当片机工程师,可能理解的深度没有那么底层)



--------------------------------

dukelec 发表于 2020-9-18 14:00:01

本帖最后由 dukelec 于 2020-9-18 14:16 编辑

rei1984 发表于 2020-9-18 13:46
是的。test banch 还没写。debug 还是 需要 tb 来分析波形才能知道问题的出处。

看了你的回复。非常感 ...

做 CPLD/FPGA 比較好的做法是先實現功能,仿真通過,再根據所用資源情況,選廠家和器件,留至少 20% 余量(為日後修改做預留)。

Verilog 的跨平台比 C 好很多,C 寫的 STC 代碼不可能在 stm32 上運行,但 Verilog 不同廠家之間沒啥區別。(除了某些高級 IP 之外。)

會 python 的話,用 python 寫 test bench 比較方便。

dukelec 发表于 2020-9-18 14:02:00

rei1984 发表于 2020-9-18 13:46
是的。test banch 还没写。debug 还是 需要 tb 来分析波形才能知道问题的出处。

看了你的回复。非常感 ...

做 CPLD/FPGA 也可以跟 MCU 編程一樣,調用現成的 IP 核,同樣可以不關心細節。

wangwenjia 发表于 2020-9-18 16:11:38

跑个题
这型号真的可以换一个了

bailangcn 发表于 2020-9-18 16:44:34

wangwenjia 发表于 2020-9-18 16:11
跑个题
这型号真的可以换一个了

这型号学习资源多啊
而且非常经典,刚开始工作的时候,也有用过这个IC,
不过现在基本上不用CPLD或者FPGA了

rtems 发表于 2020-9-18 17:35:27

我有产品用到100%,240个全满{:lol:}

not_at_all 发表于 2020-9-18 17:59:16

LE占用率高大概就优化受到限制,不应该影响功能。

Arrowzhang 发表于 2020-9-18 23:16:21

我也用过239个{:lol:},没有问题,离职后两年还有人跟我要源代码

qinxg 发表于 2020-9-21 08:28:30

多仿真. 不要怕麻烦, 仿真文件是vhdl文件的好几倍长度都很正常.多看编译后的原理图文件, 知道vhdl代码对应怎样的原理图

xyz543 发表于 2020-9-21 12:26:56

近二十年前的某项产品,当选定 FPGA 后就设计到 70% 并完成设计及量产后,发现客户要求完全是无限度的,从开始贩售不到三年就被要求增加功能到全满,最后不得不再改款设计。 {:sweat:}
页: [1]
查看完整版本: EPM240 ,实际工程编译后用了 80% 的LE ,会不会出问题?