Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Языки описания аппаратуры (VHDL и др.)

Ответ:

Отправлено SAZH 04 февраля 2008 г. 10:21
В ответ на: Вроде как wire может иметь несколько драйверов, но ему нельзя (как регистру) присвоить значение :-( отправлено <font color=gray>ПЛИС</font> 04 февраля 2008 г. 00:32

Ну а как вы обрабатываете прерывания. Ставите в очередь. Обрабатываете флаг. Сбрасываете его.
Что можно придумать кроме арбитража. Неужели в процессоре что по другому.
module arbitraj
(
input clk,
output reg [1:0] request
);

reg [2:0] ct_a;
reg [3:0] ct_b;
reg b_trap;

wire a, b;

assign a = (ct_a == 3'd0);
assign b = (ct_b == 4'd0);

always @(posedge clk)
begin
ct_a <= ct_a + 1'b1;
ct_b <= ct_b + 1'b1;

if (a) begin
request <= 2'b01;
if (b) b_trap <= 1'b1; end
else if (b | b_trap) begin
request <= 2'b10;
b_trap <= 1'b0; end
else begin
request <= 2'b00;
b_trap <= 1'b0; end
end

endmodule


Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
вычтите из двух единицу:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru