在for循环中使用Assign

时间:2019-06-26 16:51:14

标签: verilog

我正在尝试在for循环内分配I / O向量,以节省空间。我不确定这是不可能的,还是遇到语法问题。

我尝试使用generate并仍然遇到问题

我当前的代码如下:

module Test_IO
(
     output [7:0] led,  
     input  [7:0] sw 
);

genvar i;
generate
for(i = 0;i < 8; i = i + 1)
{
     assign led<i> = sw<i>;
}
endgenerate

endmodule

我希望节省空间,而不必使用8个Assign语句,但是我一直收到以下错误:

ERROR:HDLCompiler:806 - 
"C:/Users/Danie/Desktop/Digilent/Projects/Test_IO/Test_IO.v" Line 31: 
Syntax error near "{".

2 个答案:

答案 0 :(得分:0)

我假设您正在使用verilog。试试下面的代码。您确实不需要genvar来完成您的工作。

module Test_IO
 (
 output [7:0] led,  
 input  [7:0] sw 
 );

 genvar i;
 generate
 for(i = 0;i < 8; i = i + 1)
    assign led[i] = sw[i];
 endgenerate

 endmodule

或者,您也可以尝试以下一种方法

module Test_IO
 (
 output reg [7:0] led,  
 input  [7:0] sw 
 );

 integer i;

 always@(*)
 begin
   for(i=0;i<8;i=i+1)
     led[i] = sw[i];
 end

 endmodule

答案 1 :(得分:0)

您的问题是语法。在verilog中,使用开始结束,而不是 {}

import requests, re
from bs4 import BeautifulSoup as soup
def scrape_page(d):
   return [(i.h2['id'].capitalize(), [c.a.text for c in i.find_all('li')]) for i in d.find_all('div', {'class':re.compile('section\s\w+\-SECTION')})]

s = soup(requests.get('https://wordassociations.net/en/words-associated-with/hello?button=Search').text, 'html.parser')
_start, _next = [scrape_page(s)], [i['href'] for i in s.find_all('a', {'class':'blue'}) if i.text == 'Next']
while _next:
   s = soup(requests.get(f'https://wordassociations.net{_next[0]}').text, 'html.parser')
   _start.append(scrape_page(s))
   _next = [i['href'] for i in s.find_all('a', {'class':'blue'}) if i.text == 'Next']

r = {i[0][0]:[c for _, b in i for c in b] for i in zip(*_start)} 

成为

{'Noun': ['Dolly', 'Goodbye', 'Kitty', 'Greeting', 'Adele', 'Darling', 'Richie', 'Bye', 'Lou', 'Walls', 'Gutter', 'Herman', 'Broadway', 'Sitter', 'Beatles', 'Say', 'Sweetheart', 'Tai', 'Sucker', 'Bram', 'Katy', 'Mom', 'Josephine', 'Musical', 'Lionel', 'Ernie', 'Dad', 'Ari', 'Sunshine', 'Arroyo', 'Angie', 'Welles', 'Mccartney', 'Starling', 'Why', 'Buckley', 'Mister', 'Router', 'Venus', 'Motown', 'Welcome', 'Glitter', 'Rodgers', 'Phone', 'Sailor', 'Mabel', 'Voice', 'Audition', 'Charley', 'Elle', 'Banning', 'Lyle', 'Baby', 'Susie', 'Stranger', 'Dirk', 'Prom', 'Pickering', 'Cabaret', 'Sesame', 'Levi', 'Thirteen', 'Dear', 'Ballard', 'Honey', 'Waving', 'Saying', 'Print', 'Daddy', 'Renie', 'Jerry', 'Telephone', 'Oh', 'Mama', 'Hey', 'Beloved', 'Python', 'Sitcom', 'Faye', 'Pop', 'Clapton', 'Waldo', 'Jimmie', 'Accent', 'Ellie', 'Spade', 'Melon', 'Lover', 'Ok', 'Be', 'Promo', 'Byte', 'Fascination', 'Adieu', 'Larry', 'Var', 'Chap', 'Poe', 'Vince', 'Kara', 'Tanya', 'Sammy'], 'Adjective': ['Gorgeous', 'Bye', 'Cute', 'Say', 'Nasty', 'Hearty', 'Broadway', 'Gaga', 'Def', 'Ep', 'Unreleased', 'Hoarse', 'Shouted', 'Waved'], 'Verb': ['Greet', 'Shout', 'Yell', 'Hail', 'Boom', 'Mumble', 'Wave', 'Dial', 'Phone', 'Say', 'Print', 'Exclaim', 'Cry', 'Remix', 'Spawn', 'Answer'], 'Adverb': ['Cheerfully', 'Pleasantly', 'Tentatively', 'Gaily', 'Sweetly', 'Warmly', 'Awkwardly', 'Politely', 'Casually']}

有时候,编译器要求在开始

之后使用:NAME 来命名generate循环。
genvar i;
generate
for(i = 0;i < 8; i = i + 1)
{
     assign led<i> = sw<i>;
}
endgenerate