在旧的VHDL设计中,组件有一个通用端口:
component adc_model is
generic( RADC_TYPE : adc_type );
port( clk : std_logic;
....之前的人已经命名了几十个常量:
constant CH0_RADC_TYPE : adc_type := I2C_ADC;
constant CH1_RADC_TYPE : adc_type := deltasigma_ADC;
constant CH2_RADC_TYPE : adc_type := SPI_ADC;
......以便他可以实例化该组件多个单元。
但现在我想通过使用for-generate语句来实现:
for i in 0 to 7 generate
begin
i_adc_model: adc_model
generic map(
RADC_TYPE => CHX_RADC_TYPE(i),
....现在我要做的是:
CHX_RADC_TYPE(00) <= CH0_RADC_TYPE;
CHX_RADC_TYPE(01) <= CH1_RADC_TYPE;
CHX_RADC_TYPE(02) <= CH2_RADC_TYPE;
.............我的问题是,有没有更聪明的方法来做这件事?
发布于 2016-09-23 14:46:07
由于泛型端口的值是一个常量,因此在声明常量时,为CHX_RADC_TYPE的不同元素(假设类型为adc_type_array的数组)赋值,如下所示:
constant CHX_RADC_TYPE : adc_type_array := (0 => CH0_RADC_TYPE,
1 => CH1_RADC_TYPE,
2 => CH2_RADC_TYPE,
...https://stackoverflow.com/questions/39653517
复制相似问题